НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ "УТВЕРЖДАЮ" Декан АВТФ, профессор __________В.В. Губарев "___"___________2005г. РАБОЧАЯ ПРОГРАММА Дисциплины " Программное обеспечение высокопроизводительных систем и сетей" для направления 552800 - «Информатика и вычислительная техника» (магистры). Магистерская программа 552813 - “Сети ЭВМ и телекоммуникации” Факультет автоматики и вычислительной техники, дневное отделение. Кафедра сетевых информационных технологий Курс -, семестр –. Лекции - / - часа Индивидуальная работа - / часа Самостоятельная работа - / часов Всего - / часов экзамен / зачет Новосибирск, 2005 г. Программное обеспечение высокопроизводительных систем и сетей. Задачи изучения дисциплины ориентированы на получение основных сведений по вопросам организации параллельных вычислений: модели вычислений, технологии параллельного программирования, практикум по разработке параллельных программ. 1.Требования к курсу Содержание курса соответствует ТРЕБОВАНИЯМ К ОБЯЗАТЕЛЬНОМУ МИНИМУМУ СОДЕРЖАНИЯ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ ПОДГОТОВКИ МАГИСТРА ПО НАПРАВЛЕНИЮ «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА». 2. Содержание курса Семестр ____. Лекции (____часа) Введение. Предмет и содержание курса. Основные определения и терминология. Роль и значение высокопроизводительных вычислений в современном мире. Две парадигмы программирования и две модели программирования: последовательная и параллельная. Параллелизм данных, параллелизм задач. Формальные модели параллельных вычислений. Крупноблочный параллелизм: модели Карпа-Миллера, Котова-Нариньяни, Хоора, сети Петри. Мелкозернистый параллелизм: клеточные автоматы, нейронные и клеточно-нейронные сети, алгоритмы параллельных подстановок. Архитектура параллельных ЭВМ. Классификация. Векторно-конвейерные, векторнопараллельные системы, мультипроцессорные системы. Кластерные системы. Локальные и глобальные сети ЭВМ. Понятие метакомпьютинга. Способы организации метакомпьютеров из различных вычислительных ресурсов. Параллельное программирование. Параллельно-последовательное, параллельное и асинхронное программирование. Автоматизация распараллеливания программ. Показатели качества параллельных алгоритмов и программ. Закон Амдала. Сравнительные характеристики операционных систем (ОС). Организация сетевой ОС, протоколы, их классификация, методы реализации. Организация распределенной ОС. Сопоставление ОС семейства Win 32 и Unix - подобных ОС. Программное обеспечение параллельных суперкомпьютеров. Основы операционной системы UNIX. Удаленная работа в сети Internet. Компиляторы для Linux. Системы управления заданиями (Codine, PBS и др.). Системы параллельного программирования. Системы с передачей сообщений - MPI, параллельная виртуальная машина - PVM. Организация MPICH. Обмен данными в MPI. Программирование с использованием PVM. Сравнение возможностей PVM и MPI. Системы параллельного программирования.Системы с эмуляцией общей памяти (Linda, Pirhana). Система программирования OpenMP. Сравнение возможностей систем с передачей сообщений и систем с эмуляцией общей памяти. Расширение ядер ОС для создания ОС рапределенной обработки данных. Языки параллельного программирования. Процедурные, функциональные, логические языки. Сравнительный анализ языков параллельного программирования. Общие сведения о высокопроизводительном FORTRAN’е (HPF). Директивы HPF. Параллельное и распределенное программирование с использованием С++. Профилирование и отладка параллельных программ. Предоставляемые возможности. Графический интерфейс. Литература (основная). 1. Воеводин Вл. В. Курс лекций «Параллельная обработка данных» On-line вариант: http://parallel.ru/vvv/ . 2. «Networks, Routers & Transputers» Редакторы: M.D. May, P.W. Thompson, P.H. Welch. Издательство: IOS Press. On-line вариант:http://wotug.ukc.ac.uk/parallel/books/ios/nrat/. 3. Ян Фостер. «Designing and Building Parallel Programs». Издательство - AddisonWesley. On-line вариант: http://www-unix.mcs.anl.gov/dbpp/text/book.html. 4. Комолкин А.В., Немнюгин С.А. «Программирование для высокопроизводительных ЭВМ» Курс лекций учебно-научного центра информационных и вычислительных ресурсов. (Санкт-Петербург). On-line вариант: http://www.hpc.nw.ru/KOI/COURSES/HPC/index.html 5. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - С.-П. - "БХВ Петербург", 2002. - 608с. 6. Немнюгин С.А., Стесик О.Л. «Параллельное программирование для многопроцессорных вычислительных систем», "БХВ - Петербург", 2002. - 400с. 7. Корнеев В.Д. «Параллельное программирование в MPI», Новосибирск: Изд-во СО РАН, 2000. - 213с. 8. Камерон Хьюз, Трейси Хьюз. Параллельное и распределенное программирование с использованием С++. Издательство "Вильямс", 2004. - 672 с. 9. Богачев К.Ю. «Основы параллельного программирования», Издательство "Бином. Лаборатория знаний", 2003. - 342 с. 10. Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования. Издательство "Вильямс", 2003. - 512 с. 11. Тетенбаум Э. Архитектура компьютеров. СПб.: Питер, 2002. 704с. 12. Евстигнеев А.Е. Введение в параллельные архитектуры ЭВМ. Новосибирск: изд-во НГУ, 1994. 13. Тоффоли Т., Марголус Н. Машины клеточных автоматов. - М.: Мир, 1991. 14. Хоар Ч. Взаимодействующие последовательные процессы. М.: Мир. 1989. 15. Карп Р.М., Миллер Р.Е. Параллельные схемы программ // Кибернетический сборник, вып. 13, М.: Мир. 1976. С. 5-61. 16. Котов В.Е. Формальные модели параллельных вычислений. Препринт 165, ВЦ СО АН СССР, 1979. 17. Котов В.Е. Сети Петри.- М.: Наука, 1984. 18. Операционные системы / Д. Бэкон, Т. Харрис. – СПб.: Питер, Киев: Издательская группа BHV, 2004. – 800 с. Интернет-порталы параллельного программирования. http://parallel.ru/ крупнейший российский портал по параллельным вычислениям. http://www.gnu.org/ - сайт содержит программное обеспечение, распространяемое под GNU - лицензией. Для всего представленного программого обеспечения представлена подробная документация. http://www.linux.org/ . http://www.citforum.ru/ . http://www.csse.monash.edu.au/~rajkumar/cluster/index.html - сайт содержит большое количество хорошо систематизированных ссылок по кластерным вычислениям. http://www.beowulf.org/ . http://www.cs.rit.edu/~ncs/parallel.html . http://www.hpc.nw.ru/COURSES/index.html - учебные курсы по высокопроизводительным вычислениям УНЦ ИВР. http://www.software.unn.ac.ru/ccam/ - Центр компьютерного моделирования Нижний Новгород. http://ssd2-new.sscc.ru/mvs1000/init_stud/Korneev/Preambh.htm - МО ВВС ИВМ и МГ СО РАН. http://www.top500.org/ Литература (дополнительная). 1. Корнеев В.В., Кисилев А.В. Современные микропроцессоры. - «Нолидж», 1998. – 240 с. 2. Корнеев В.В. Параллельные вычислительные системы. М.: Москва, 1999. 3. Хокни Р., Джесхоуп. Параллельные ЭВМ: Архитектура, программирование и алгоритмы. М.: Радио и связь, 1986. 4. D. Sima, T. Fountain, P. Kacsuk. Advanced computer architectures. New York: Addison Wesley Longman Inc. 1997. 5. B.Wilkinson. Computer Architecture. Design and performance. Printice Hall International (UK). 1991. 375p. 6. Cellular Automata, A Parallel Model. Cluwer Academic Publishers, 1999. 7. Achasova S., Bandman O., Markova V. and Piskunov S. Parallel Substitution Algorithm. Theory and Application. - Singapore:World Scientific, 1994. 8. Питерсон Дж. Сети Петри и моделирование систем.- М.: Мир, 1984. 10. Евреинов Э.В., Косарев Ю.Г. Однородные универсальные вычислительные системы высокой производительности.- Новосибирск: Наука. Сибирское отделение, 1966. 11. Волохов В.М., Покатович Г.А. Основные классы современных параллельных компьютеров SMP, MPP. http://parallel.ru/info/education/chg99.html. 12. В. Воеводин, А. Капитонова. Классификация архитектур вычислительных систем. http://parallel.ru/computers/taxonomy/. 13. Средства создания и проектирования параллельных программ: http://www.cs.utexas.edu/users/code/, http://www.netlib.org/hence/index.html. 14. Системы поддержки параллельного программирования: ftp://www.keldysh.ru/dvm-distr/doc_usr315/dvmUSRrhtm.tar.gz, ftp://www.keldysh.ru/dvmdistr/doc_sys315/dvmSYSrhtm.tar.gz. 15. Средства профилирования и отладки параллельных программ: http://www.etnus.com/ 16. Библиотеки параллельного программирования: MP-MPICH (http://www.lfbs.rwth-aachen.de/content/mp-mpich), MPICH (http://wwwunix.mcs.anl.gov/mpi/mpich/), MPI-FM (http://www-csag.ucsd.edu/projects/hpvm.html), HPVM (http://www-csag.ucsd.edu/projects/hpvm.html), BIP-MPI (http://lhpca.univlyon1.fr/mpibip.html), ScaLAPACK (http://www.netlib.org/scalapack), ARCH (ftp://ftp.tc.cornell.edu/pub/ARCH/). 17. Системы управления кластерами: OpenPBS (http://www.openpbs.org/), PBSPro (http://www.pbspro.com/), Sun Grid Engine (Codine) (http://www.sun.com/software/gridware/ds-gridware/) 18. Крюков В. А. Операционные системы распределенных вычислительных систем (распределенные ОС) - http://parallel.ru/krukov/ . 19. G. Amdahl. Validity of the single-processor approach to achieving large-scale computing capabilities. // Proc. 1967 AFIPS Conf., AFIPS Press. - 1967. - V. 30. - P. 483. 20. High Performance Fortran Language Specification. High Performance Fortran Forum. - Version 2.0. 1997. http://dacnet.rice.edu/Depts/CRPC/HPFF/versions/hpf2/hpf-v20 . 21. The OpenMP Application Program Interface (API). http://www.openmp.org . Программу курса составил Пискунов С.В., к.т.н., доцент каф. СИТ НГТУ, зав. лаб. "Параллельных алгоритмов и структур" ИВММГ СО РАН.