Введение

Расширение параллельного программирования Fortran

Coarray Fortran (CAF), ранее известное как F, возникло в 1990-х годах как расширение Fortran 95/2003 для параллельной обработки, разработанное Робертом Нумричем и Джоном Ридом. Стандарт Fortran 2008 (ISO/IEC 1539 1:2010) теперь включает коаррей (пишется без дефиса), что было решено на заседании Комитета по стандарту Fortran ISO в мае 2005 года; синтаксис в стандарте Fortran 2008 незначительно отличается от первоначального предложения CAF. Программа CAF интерпретируется так, как если бы она была многократно скопирована, и все копии выполнялись асинхронно. Каждая копия имеет свой собственный набор объектов данных и называется образом. Синтаксис массивов Fortran расширен дополнительными замыкающими индексами в квадратных скобках для компактного представления ссылок на данные, распределенные по образам. Расширение CAF было реализовано в некоторых компиляторах Fortran, например, в компиляторах Cray (начиная с версии 3.1). С момента включения коаррей в стандарт Fortran 2008 количество реализаций растет. Первым компилятором с открытым исходным кодом, реализовавшим коаррей в соответствии со стандартом Fortran 2008 для архитектур Linux, является G95. В настоящее время GNU Fortran обеспечивает широкую поддержку функций coarray Fortran в одно- и многообразовой конфигурации (последняя основана на библиотеке OpenCoarrays). Другая реализация коаррей и связанных с ними параллельных расширений из Fortran 2008 доступна в компиляторе OpenUH (ответвление от Open64), разработанном в Университете Хьюстона.

Реализация в компиляторах

CAF часто реализуется поверх библиотеки интерфейса передачи сообщений (MPI) для обеспечения переносимости. Некоторые реализации, такие как те, что доступны в компиляторах GNU Fortran и OpenUH, могут работать поверх других низкоуровневых слоев (например, GASNet), разработанных для поддержки языков с разделяемым глобальным адресным пространством.