Языки и системы, разработанные международными коллективами и признанные в качестве стандартных
MPI (Message Passing Interface)
Система ориентирована на архитектуру с распределенной памятью и представляет собой набор библиотечных интерфейсов.
Используется механизм задач (процессов) и передачи сообщений (обмен данными). Исходная программа разбивается на задачи (подзадачи), которые могут выполняться параллельно на разных процессорных узлах, и связь между задачами осуществляется с помощью передачи сообщений.
Предшественники: PVM, P4, PARMACS, Expersss и др.
Библиотечные процедуры MPI могут использоваться в программах на языках Фортран и Си. Разработаны версии: 1.0, 1.1, 1.2, 1.3 и 2.0. Версия 2.0 содержит средства, обеспечивающие использование системы в программах на Фортране 90 и Си++.
Опубликованы версии 2.1. (сентябрь 2008) и 2.2. (сентябрь 2009). Развитие системы продолжается. Обсуждается проект версии 3.0.
Информация:
Информация на русском языке:
- Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - Санкт-Петербург: БХВ-Петербург, 2002 стр. 275-299.
- Воеводин Вл.В. Технологии параллельного программирования. Message Passing Interface.
- Раздел по MPI на сервере parallel.ru.
OpenMP
Система ориентирована на архитектуру с общей (разделяемой) памятью.
Программа представляется состоящей из последовательных и параллельных областей. В параллельной области порождается бригада (набор) нитей, которые выполняются на разных процессорах. Внутри параллельной области могут находиться параллельные конструкции (параллельные циклы и параллельные секции); имеются средства синхронизации (используется модель fork/join).
Предшественники: Проекты PCF (Parallel Computing Forum) и X3H5 ANSI.
Разработаны стандартные спецификации для Фортрана (версия 1.0 - 1997 г., версия 2.0 - 2000 г.) и для Си/Си++ (версия 1.0 - 1998 г. и версия 2.0 - 2001 г.). Версия 2.5 (2005 г.) - комбинированная для Фортрана и Си/Си++. Последняя официальная версия 3.0 (май 2008). Спецификации для Фортрана (март 2009) и Си/Си++ (ноябрь 2008). Развитие системы продолжается.
В языки введены директивы, специфицирующие параллельные области и параллельные конструкции, новые классы переменных, введены средства спецификации синхронизации, набор процедур run-time поддержки и переменные среды. Для Фортрана директивы оформляются в виде комментария, начинающегося с символов !$OMP, *$OMP или C$OMP.
Информация:
Информация на русском языке:
- Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - Санкт-Петербург: БХВ-Петербург, 2002, стр. 225-235.
- Раздел по OpenMP на сервере parallel.ru.
- Кузьминский М. OpenMP: средства распараллеливания для многопроцессорных систем. //Открытые системы, 1998, N3.
- Горелик А.М. "Программирование на современном Фортране". Изд. "Финансы и статистика", 2006.
- А.С.Антонов. "Параллельное программирование с использованием технологии OpenMP: Учебное пособие".-М.: Изд-во МГУ, 2009. - 77 с.
HPF (High Performance Fortran)
Система ориентирована на модель параллелизма по данным и предназначена для любой архитектуры. HPF содержит директивы для описания способов разбиения массивов данных и распределения их между параллельно работающими процессорами, а также некоторые средства для явного указания параллельности. HPF - язык высокого уровня. На программиста возлагается в основном ответственность за распределение данных, а представление программы в виде системы взаимодействующих процессов осуществляется компилятором. Для повышения эффективности имеется возможность описать явный интерфейс с процедурами, использующими средства более низкого уровня.
HPF (версия 1.0) является расширением Фортрана 90, HPF-2 (версия 2.0) - расширением Фортрана 95.
Директивы HPF имеют вид комментария, который начинается с символов !HPF$, *HPF$ или CHPF$.
Предшественники: Fortran D, Fortran Vienna и др.
Информация:
- Официальные описания версий и другие публикации, а также информация о различных реализациях, приложениях, использующих HPF, и другая полезная информация
- Раздел по HPF на сервере parallel.ru.
- Горелик А.М. "Программирование на современном Фортране". Изд. "Финансы и статистика", 2006.
© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ