Фортран и параллельность
Новый стандарт языка Фортран (Фортран 2008) содержит средства поддержки параллельного программирования (coarrays), ориентированные на архитектуру с распределенной памятью и на архитектуру с общей памятью.
Некоторые средства параллельного программирования были введены в стандарт языка еще в Фортране 90. Необходимость их введения была вызвана появлением в компьютерах аппаратных средств векторной обработки. В Фортране 95 средства параллельности получили дальнейшее развитие.
В Фортран ранее были введены следующие черты:
- Возможность работы с массивами и секциями массивов как с целыми объектами на поэлементной основе.
- Условное присваивание массиву под управлением логической маски (оператор WHERE и конструкция WHERE END WHERE).
- Встроенные поэлементные процедуры, аргументами которых могут быть как скаляры, так и массивы.
- Большой набор встроенных процедур для работы с массивами; cреди них часто используемые математические функции.
- Оператор и конструкция FORALL, которые позволяют специфицировать параллельный цикл (начиная с Фортрана 95).
- Спецификация PURE для функции без побочного эффекта (начиная с Фортрана 95).
Помимо указанных выше средств поддержки параллельности, в современных стандартах Фортрана имеются и другие черты, косвенно влияющие на параллельность. Разработанные системы параллельного программирования (OpenMP, HPF, MPI, Coarrays и др.) являются фактически расширениями современного Фортрана, они существенно используют новые возможности языка.
Кроме того, современный Фортран (в отличие от предшественников) позволяет разрабатывать программы лучше структурированные, более наглядные; такие программы легче распараллелить. В то же время многие архаизмы могут серьезно затруднить или сделать невозможной распараллеливание программы. Таким образом, программа, написанная на современном Фортране и не использующая устаревшие черты, лучше поддается распараллеливанию, чем программа, написанная на Фортране 77.
© Лаборатория Параллельных информационных технологий, НИВЦ МГУ