Помощь в написании студенческих работ
Антистрессовый сервис

Гибридная модель параллельного программирования DVM/OpenMP

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Разработанный язык и компилятор используются на факультете ВМиК МГУ при проведении практикума по технологиям параллельного программирования, а также служат базой для распараллеливающего компилятора с языка Фортран, создаваемого в рамках программы Союзного государства «ТРИАДА», и системы автоматизации распараллеливания Фортран-программ, создаваемой в рамках программы № 14 Президиума РАН. В 1994… Читать ещё >

Гибридная модель параллельного программирования DVM/OpenMP (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • Актуальность темы
  • Цель и задачи работы.
  • Основные результаты работы
  • Ирактинеская1ценность работы.6″
  • Апробацияфаботы
  • Краткое содержание работы
  • Глава 1. Модели? и языки параллельного программирования- для SMP-кластеров
    • 1. 1. Модель передачи ¡-сообщений- MPI.10s 1.2*. Мо дел б параллелизма по управлению.' OperiMP'
  • Г. З. Рибриднаяшодель МР1/ОрепМР!-.18'
    • 1. 4. Модель параллелизма по данным. HPF.22'
    • 1. 5. Модель параллелизма по данным и управлению. DVM
    • 1. 6. Язык Go-Array Eortram (CAF)
    • 1. '.Выводы-.3L
  • Глава 2. Гибридная модель параллельного? программирования
  • DVM/OpenMP и язык Fortran-DVM/OpenMP
    • 2. 1 Гибридная модель параллельного: программирования?- DVM/OpenMP
      • 2. 2. Язык Fortran-DVM/OpenMP-.40″
        • 2. 2. 1. Описание виртуальногомассива узлов."
      • 2. 2. ^2 Распределение данных. Директива1 DISTRIBUTE. 42'
    • 212. 3-Локализация данных. Директива AblGN
      • 2. 2. 4. Распределение витков? параллельного" цикла., Директива' PARALLEL ON
      • 2. 2. 5. Удаленные данные типа SHADOW
    • 2. '.2!6-Удаленные данные: типа ACROSS
      • 2. 2. 7. Удаленные данныетипа-1ШМОТЕ
      • 2. 2. 8. Удаленные данные типа REDWCM0N
      • 2. 2. 9. Размноженные по узлам данные.:. 50s
      • 2. 2. 10. Распределение витков* цикла между нитями внутри узла. Директивы DO и
      • 2. 2. 11. Распределение витковфаспределенного параллельного цикла между нитями
      • 2. 2. 12. Работа с удаленными данными типа ACROSS внутри узла
      • 2. 2. 13. -Работа с данными типа REDUCTION внутри узла
      • 2. 2. 14. Пример параллельной программы в моделях MPI/OpenMP и
  • DVM/OpenMP
    • 2. 3. Преимущества разработанной гибридной модели перед моделями OpenMP, MPI, DVM и MPI/OpenMP
      • 2. 3. 1. Достоинства модели DVM/OpenMP по сравнению с моделью ОрепМР
      • 2. 3. 2. Достоинства модели DVM/OpenMP по сравнению с моделью MPI
      • 2. 3. 3. Достоинства модели DVM/OpenMP по сравнению с моделью DVM
      • 2. 3. 4. Достоинства модели DVM/OpenMP по сравнению с моделью MPI/OpenMP
  • Глава 3. Компилятор с языка Fortran-DVM/OpenMP
    • 3. 1. Основные функции компилятора Fortran-DVM/OpenMP
    • 3. 2. Схема функционирования компилятора
    • 3. 3. Инструментация Fortran-DVM/OpenMP программ
      • 3. 3. 1. Передача статической информации о программе
      • 3. 3. 2. Схема инструментации программы
      • 3. 3. 3. Инструментация ОрепМР-директив
    • 3. 3. 4 Инструментация совмещенных ОрепМР-директив
      • 3. 3. 5. Инструментация операторов языка Fortran
      • 3. 3. 6. Управлению степенью подробности инструментации
      • 3. 3. 7. Отличия разработанной инструментации по сравнению с инструментацией, используемой в DVM-системе
  • Глава 4. Использование' языка Fortran-DVM/OpenMP для программирования реальных
  • приложений
    • 4. 1. Тесты NAS (ВТ, LU, SP)
    • 4. 2. Задача CONVD — расчет солнечной конвекции
    • 4. 3. Особенности распараллеливания программ, использующих пакет «РЕАКТОР»
      • 4. 3. 1. Нестационарная задача DF3D6T
      • 4. 3. 2. Задача KinXYZ
    • 4. 4. Наиболее часто встречаемые ошибки, возникающие при распараллеливании программ в модели DVM/ ОрепМР

Актуальность темы

.

Последние годы связаны с резким изменением направления развития процессоров — появлением многоядерных и многопоточных процессоров. Их эффективное использование требует повсеместного перехода с последовательных программ на параллельные программы. Для высокопроизводительных вычислений на кластерах и многопроцессорных ЭВМ с массовым параллелизмом (МРР) теперь требуется более глубокое распараллеливание, обеспечивающее, по крайней мере, два уровня параллелизма — уже привычный параллелизм между узлами кластера и дополнительный параллелизм между ядрами в узле. В настоящее время такой двухуровневый параллелизм наиболее легко и естественно выражать посредством использования между узлами модели передачи сообщений MPI, а внутри узлов — модели общей памяти Pthreads, или более высокоуровневой и более подходящей для вычислительных программ модели ОрепМР. Однако, необходимость более глубокого распараллеливания и использования гибридной модели MPI/OpenMP, т. е. двух разных моделей программирования и соответствующих им разных инструментальных средств еще более усложняет и без того нелегкую работу по созданию параллельных программ. Поэтому проблема автоматизации создания параллельных программ становится в настоящее время чрезвычайно актуальной.

В 1994 году в ИПМ им. М. В. Келдыша РАН была предложена новая модель (DVM-модель) параллельного программирования, позволившая существенно автоматизировать разработку MPI-программ для кластеров. Однако широкое распространение SMP-кластеров (кластеров, использующих в качестве узлов мультипроцессоры) требовало расширения DVM-модели для более эффективного использования их двухуровневого параллелизма.

Цель и задачи работы.

Целью данной работы являлась разработка гибридной модели DVM/OpenMP, которая позволит упростить создание программ" для параллельных систем на базе многоядерных процессоров.

В соответствии с этой целью были определены следующие задачи:

1. Исследовать существующие подходы к разработке параллельных программ. Оценить применимость и эффективность этих подходов для параллельных систем на базе многоядерных процессоров.

2. Разработать основные принципы объединения моделей DVM и ОрепМР, язык Fortran-DVM/OpenMP и компилятор с него, преобразующий входную программу в совокупность программ на I языке Fortran ОрепМР, выполняющихся на каждом узле кластера и взаимодействующих посредством библиотеки MPI.

3. Оценить применимость и эффективность, разработанного языка и компилятора.

Основные результаты работы.

В работе были достигнуты следующие основные результаты:

1. Предложена новая модель и новый язык параллельного программирования — гибридная модель DVM/OpenMP и язык Fortran-DVM/OpenMP, позволяющие разрабатывать эффективные, переносимые программы для SMP-кластеров и высокопроизводительных систем с многоуровневым параллелизмом.

2. Разработан. компилятор, преобразующий параллельные программы на языке Fortran-DVM/OpenMP* в программы на стандартном языке Fortran ОрепМР, выполняющиеся в узлах SMP-кластера и взаимодействующие между собой посредством MPI.

3. Проведено исследование характеристик разработанных на языке Fortran-DVM/OpenMP реальных приложений (тесты NAS и др.), подтвердившее применимость языка и эффективность его отображения на 8МР-кластеры.

Перечисленные результаты обладают научной новизной.

Практическая ценность работы.

Разработанный язык Рог1гап-ОУМ/ОрепМР и компилятор используются для создания программ, способных эффективно выполняться на последовательных ЭВМ, мультипроцессорных ЭВМ с общей памятью, кластерах и БМР-кластерах.

Разработанный язык и компилятор используются на факультете ВМиК МГУ при проведении практикума по технологиям параллельного программирования, а также служат базой для распараллеливающего компилятора с языка Фортран, создаваемого в рамках программы Союзного государства «ТРИАДА», и системы автоматизации распараллеливания Фортран-программ, создаваемой в рамках программы № 14 Президиума РАН.

Апробация работы.

Основные результаты работы опубликованы [17−19]. Результаты работы обсуждались на следующих конференциях и семинарах:

1. Всероссийская научная конференция «Научный сервис в сети Интернет: технологии параллельного программирования», г. Новороссийск, сентябрь 2006 г.

2. Первая Всероссийская научная конференция «Методьъ и средства обработки информации», г. Москва, октябрь 2003 г.

3. Второй Международный научно-практический семинар «Высокопроизводительные параллельные вычисления на кластерных системах», г. Нижний Новгород, ноябрь 2002.

4. Всероссийская научная конференция «Научный сервис в сети ИНТЕРНЕТ», г. Новороссийск, сентябрь 2002 г.

5. Международный семинар «Супервычисления и математическое моделирование», г. Саров, июнь 2002 г.

Краткое содержание работы.

В первой главе приводится обзор и анализ подходов к моделям и языкам параллельного программирования. Обосновывается необходимость использования модели ОрепМР в многоядерных узлах кластеров и перспективность предлагаемой гибридной модели программирования DVM/OpenMP, получающейся путем объединения моделей DVM и ОрепМР.

Вторая глава посвящена описанию гибридной модели параллельного программирования DVM/OpenMP и языка, Fortran-DVM/OpenMP. Изложены основные принципы объединения моделей DVM и ОрепМР, отмечены основные достоинства новой модели по сравнению с моделью* MPI/OpenMP. Приведено краткое описание языка Fortran-DVM/OpenMP и примеры программ на этом языке.

В третьей главе представлен компилятор с языка Fortran-DVM/OpenMP. Приводится схема функционирования компилятора, описываются его отличия от компилятора с языка Fortran-DVM.

Четвертая глава содержит информацию об использовании языка Fortran-DVM/OpenMP для программирования реальных приложений. Описываются особенности программирования тестов NAS (ВТ, LU, SP), задачи расчета солнечной конвекции, а также двух программ из пакета «РЕАКТОР». Приводятся, характеристики эффективности выполнения параллельных программ.

В заключении перечисляются основные результаты работы.

Заключение

.

Последние годы связаны с резким? изменением направления развития процессоров — появлениеммногоядерных и многопоточных процессоров. Для высокопроизводительных вычислений на кластерах теперь требуется более глубокое распараллеливание, обеспечивающее, по крайней мере, два уровня параллелизма — уже привычный параллелизм между узлами кластера* и дополнительный параллелизм между ядрами в узле. В настоящее время такой двухуровневый параллелизм наиболее, легко, и эффективно выражать посредством использования между узлами модели передачи сообщений MPI, а внутри узлов — модели OpenMP. Однако, использование двух разных моделей программирования и соответствующих им разных инструментальных средств еще более усложняет и без того нелегкую работу по созданию параллельных программ.

Требуется предоставить программисту более удобную модель программирования и соответствующие инструментальные средства.

В диссертационной работе были достигнуты следующие основные результаты:

1. Предложена новая модель и новый язык параллельного программирования — гибридная модель DVM/OpenMP и язык Fortran-DVM/OpenMP, позволяющие разрабатывать эффективные, переносимые программы для SMP-кластеров и высокопроизводительных систем с многоуровневым параллелизмом.

2. Разработан компилятор, преобразующий параллельные программы на языке Fortran-DVM/OpenMP в программы на стандартном языке Fortran OpenMP, выполняющиеся в узлах SMP-кластера и взаимодействующие между собой посредством MPI.

3. Проведено исследование характеристик разработанных на языке Fortran-DVM/OpenMP реальных приложений (тесты NAS и др.), подтвердившее применимость языка и эффективность его отображения на SMP-кластеры.

Показать весь текст

Список литературы

  1. Message-Passing 1. terface Forum, Document for a Standard Message-Passing Interface, 1994: Version 1.0) (http://www.unix.mcs.anl.gov/mpi/) —
  2. High Performance Fortran Forum. High Performance Fortran Language Specification, version 2.0, Rice University, Houston, Tex.,. January 1997. (http://hpff.rice.edu/versions/hpf2/index.htm)
  3. OpenMP Consortium: OpenMP Fortran Application Program Interface, Version 1.0- October 1997. (http://www.openmp.org/)
  4. OpenMP С and С++ Application Program Interface. Version 1.0 October 1998. (http://www.openmp.org/)
  5. Jack Dongarra, Dennis Gannon, Geoffrey Fox, Ken Kennedy. The Impact of Multicore on Computational, Science Software- CTWatch Quarterly The Promise and Perils of the Coming Revolution and Its Impacts, Volume 3,
  6. Number 1, February, 2007, pages 3−10 (http://www.ctwatch.Org/quarterly/l
  7. John L.Manferdelli. The Many-Core Inflection Point lor Mass Market Computer Systems. CTWatch Quarterly The Promise and Perils of the Coming Revolution and Its Impacts, Volume 3, Number 1, February, 2007, pages 11−17 (http ://www.ctwatch.org/quarterly/)
  8. Portable Operating System Interface. ANSI/IEEE POSIX 1003.1−199 510: Dave Turek. High Performance Computing and the Implications of Multi-core Architectures. CTWatch Quarterly The Promise and Perils of the Coming
  9. Revolution and Its Impacts, Volume 3, Number 1, February, 2007, pages 31−33 nittp://www.ctwatch.org/quarterly/>
  10. Robert Alverson, David Callahan, Daniel Cummings, Brian Koblenz, Allan Porterfield, and Burton Smith. The Tera computer system- In Proceedings of the 1990 International Conference on Supercomputing, pages 1−6.
  11. Leasure, В., Ed. PCF Fortran: Language Definition, version 3d. The Parallel Computing Forum, Champaign, Aug, 1990.
  12. Fortran DVM — язык разработки- мобильных параллельных программ / Н. А. Коновалов, В. А. Крюков, G.H. Михайлов и др. // Программирование. 1995.-№ 1 -С. 49−54. •
  13. Н.А., Крюков В. А., Сазанов ЮЛ. C-DVM язык разработки мобильных параллельных программ // Программирование. — 1999. — № 1. -С. 54−65. .16- DVM-система. (http://www.keldvsh.ru/dvm/)
  14. В.А., Коновалов Н:А., Крюков В. А. Расширение языка ОрепМР Fortran для распределенных систем // Вопросы атомной науки и техники. Серия математическое моделирование физических- процессов. — 2002. — Вып.4. С.65−70.
  15. Разработка параллельных программ для решения больших вычислительных задач на SMP-кластерах. / В. А. Бахтин, Н. А. Коновалов,
  16. В.А. Крюков*и др. // Труды Первой Всероссийской научной конференции «Методы и средства обработки информации». М., 2003. — С. 191−196.
  17. Крюков В^А. Разработка параллельных программ для вычислительных кластеров и сетей. // Информационные технологии и вычислительные системы. 2003 — № 1−2. — С. 42−60.
  18. Ken Kennedy, Charles Koelbel, Hans Zima. The Rise and Fall of High Performance Fortran: An Historical Object Lesson. Proceedings of the third ACM SIGPLAN conference on History of programming languages 2007, San Diego, California, 2007. Pages: 7−1 7−22.
  19. Ray Barriuso and Allan Knies. SHMEM user’s guide for C. Technical report, Gray Research Inc., June 1994.
  20. Robert W. Numerich and John Reid. Co-array fortran for parallel programming. SIGPLAN Fortran Forum, 17(2):1−31, 1998
  21. William W. Carlson, Jesse M. Draper, David E. Culler, Kathy Yelick, Eugene Brooks, and Karen Warren. Introduction to UPC and language specification. Technical Report CCS-TR-99−157,Center for Computer Sciences, Bowie, MD, May 1999.
  22. Cray Inc., Seattle, WA. Chapel Specification, 0.4 edition, February 2005. (http://chapel.cs.washington.edu).
  23. Sun Microsystems, Inc., Burlington, Massachusets. The Fortress Language Specification, Version 0.707, July 2005.
  24. OpenMP Consortium: OpenMP Application Program Interface- Version 2.5, May 2005. (http://www.openmp.org/mp-documents/spec25.pdf)
  25. Описание языка Fortran-DVM/OpenMP. Версия 2.0, 2006 (http://www.keldysh.ru/dvm/omp/)
  26. Система поддержки выполнения параллельных программ (библиотека Lib-DVM)http://www.keldysh.ru/dvm/dvmhtml 107/rus/sys/libdvm/rtsIDr0.html)
  27. Sage++: An object-oriented toolkit and class library for building fortran and С++ restructuring tools / F. Bodin, P. Beckman, D. Gannon et al. // Proceedings. OONSKI '94. Oregon: 1994
  28. Intel Corporation. / Intel Thread Checker, (http: / / w w w. intel .com/support/performancetools/threadchecker)
  29. Sun Studio Thread Analyzer. (http://developers.sun.com/sunstudio/downloads/tha/)
  30. Steven Cameron Woo, Moriyoshi Ohara, Evan Torrie, Jaswinder Pal Singh, and Anoop Gupta. The SPLASH-2 Programs: Characterization and Methodological Considerations. In Proceedings of the 22nd International
  31. Symposium on Computer Architecture, pages 24−36, Santa Margherita Ligure, Italy, June 1995. fftp://wwwflash.stanford.edu/pub/splash2/splash2 isca95.ps.Z).
  32. James Rose. Intel Tools Make Threading' Easier on Multiple Processors. Intel Software Network. July 14, 2007. (http://softwarecommunity.intel.com/articles/eng/2664.htm)
  33. B.A., Удовиченко, P.B. Отладка DVM программ // Препринт ИПМ им. М.В.Келдыша-РАН. — 1999. -№ 56.
  34. Bernd Mohr, Allen D. Malony, Hans-Christian Hoppe, Frank Schiimbach, Grant Haab, Jay Hoeflinger, Sanjiv Shah. A Performance Monitoring Interface for OpenMP: (http://www.research.ibm.com/actc/proiects/pdf/EWQMP02-POMP.pdf)
  35. Интерфейс инструментации Fortran DVM/OpenMP-программ. Версия1 1.2.2, 2007 г. (http://www.keldvsh.ru/dvm/omp/QpenMPInstr.doc)
  36. A.Voronkov, V.Arzhanov. REACTOR Program System for Neutron-Physical Calculations. Proc. International Topical Meeting: Advances in Mathematics, Computations, and Reactor Physics, USA, Vol5, April 28 — May 2, 1991
Заполнить форму текущей работой