2

В одной из моих университетских работ я заметил вопрос «Особенности контроля и параллелизма данных в FORTRAN 90?»Особенности управления и параллелизма данных в Fortran 90?

Теперь, согласно моему пониманию, встроенные операции с массивами в Fortran 90 являются примером параллелизма данных, поскольку Fortran имеет возможность выполнять операции, такие как сложение, умножение, на элементах массива с помощью простого кода: c = a + b ....

Но каковы функции параллелизма управления в fortran 90? И вопрос стоил 8 знаков, поэтому я предполагаю, что только операция с массивом для параллелизма данных не будет делать, должно быть что-то еще ....

Помогите пожалуйста!

+0

Возможно, инструкция 'WHERE'/конструкция? –

+0

Я так не думаю ... Контролируемый параллелизм означает выполнение нескольких инструкций/задач одновременно, правильно? в где утверждение, что не происходит. –

+1

Я бы посчитал назначение массива 'where' и' forall' среди функций параллелизма данных. То, что они подразумевают под «контрольным параллелизмом», я не знаю. –

ответ

1

Я не думаю, что Fortran 90 имеет какой-либо параллелизм управления, встроенный в язык. («Контрольный параллелизм» означает, что два полностью разных фрагмента кода могут выполняться параллельно. Обычно это происходит под названием «параллелизм задач».) Более современные Fortrans don't obviously offer this как часть языка.

Это технически не имеет встроенного параллелизма данных; это «просто» упрощает компилятор, который хочет реализовать параллелизм данных, чтобы определить его, где программист воспользовался операциями массива и разрезания. Но это так и для упрощения кодирования, и для более простого анализа компилятором.

Мы, очевидно, не думаем о пред F90, например, «скалярном» Fortran, как о параллелизме данных. Компиляторы Scalara Fortran для суперкомпьютеров уже давно имеют возможность обнаруживать операции на уровне массива, тщательно анализируя циклы. Очевидно, что скалярные языки Fortran не имеют встроенного параллелизма данных, но компиляторы суперкомпьютеров находят и используют его (не так легко, как компиляторы суперкомпьютеров F90).

Итак, урок состоит в том, что актуализация параллелизма данных является свойством конкретного компилятора, а не языка.

Но чего не хватает для хорошего параллелизма данных. Вам также нужна возможность говорить о макете памяти. Это тоже не в Fortran 90.

Существует множество расширений для Fortran, которые предлагают оба из них, часто как прагмы или специальные комментарии, поэтому остальная часть программы выглядит как ваниль Fortran, то есть скалярный или F90. Параллельность задач обычно доступна через расширения OpenMP, предлагаемые многими компиляторами.

+0

«Более современные Фортранс явно не предлагают это как часть языка»? – IanH

+0

@IanH: Извините, если это неясно. Я знаю стандарт F90 и работал с различными компиляторами суперкомпьютеров, но это было довольно долго. Я не знаю более современных Фортрансов (например,, 2008); оглядываясь на google в Википедии, нет никаких доказательств того, что я вижу, что более современные Fortrans предлагают эти дополнительные функции. (Если у вас есть такие доказательства, не стесняйтесь прокомментировать или добавить свой собственный ответ). –

+1

Параллельная модель исполнения была основной функцией Fortran 2008. – IanH

 Смежные вопросы

  • Нет связанных вопросов^_^