Я не думаю, что Fortran 90 имеет какой-либо параллелизм управления, встроенный в язык. («Контрольный параллелизм» означает, что два полностью разных фрагмента кода могут выполняться параллельно. Обычно это происходит под названием «параллелизм задач».) Более современные Fortrans don't obviously offer this как часть языка.
Это технически не имеет встроенного параллелизма данных; это «просто» упрощает компилятор, который хочет реализовать параллелизм данных, чтобы определить его, где программист воспользовался операциями массива и разрезания. Но это так и для упрощения кодирования, и для более простого анализа компилятором.
Мы, очевидно, не думаем о пред F90, например, «скалярном» Fortran, как о параллелизме данных. Компиляторы Scalara Fortran для суперкомпьютеров уже давно имеют возможность обнаруживать операции на уровне массива, тщательно анализируя циклы. Очевидно, что скалярные языки Fortran не имеют встроенного параллелизма данных, но компиляторы суперкомпьютеров находят и используют его (не так легко, как компиляторы суперкомпьютеров F90).
Итак, урок состоит в том, что актуализация параллелизма данных является свойством конкретного компилятора, а не языка.
Но чего не хватает для хорошего параллелизма данных. Вам также нужна возможность говорить о макете памяти. Это тоже не в Fortran 90.
Существует множество расширений для Fortran, которые предлагают оба из них, часто как прагмы или специальные комментарии, поэтому остальная часть программы выглядит как ваниль Fortran, то есть скалярный или F90. Параллельность задач обычно доступна через расширения OpenMP, предлагаемые многими компиляторами.
Возможно, инструкция 'WHERE'/конструкция? –
Я так не думаю ... Контролируемый параллелизм означает выполнение нескольких инструкций/задач одновременно, правильно? в где утверждение, что не происходит. –
Я бы посчитал назначение массива 'where' и' forall' среди функций параллелизма данных. То, что они подразумевают под «контрольным параллелизмом», я не знаю. –