Параллельные вычисления. Баканов В.М. - 97 стр.

UptoLike

Составители: 

- 97 -
программ (требуется лишь некотораяпеределка’) и сохраняется опыт про-
граммирования. Недостатки подхода базируются на этих же положениях
для разработки эффективной параллельной программы необходимо учиты-
вать внутреннюю структуру алгоритма, а базовый (исходно последователь-
ный) язык обычно не содержит даже механизмов, с помощью которых воз-
можно реализовать это.
Естественно, на поверхности лежит
попытка реализовать параллелизм в
циклах (гнездах циклов) в Fortran-программах (см. ранее подраздел 3.2).
Возможность реализовалась использованием дополнительных ключевых слов
ParDO (отечественная система M-10), ParDO/ParEND (система параллельного
сборочного программирования ИНЯ, (
*
).
Методподсказоккомпилятору с целью дополнить его функциональность
средствами распараллеливания реализован, например, в системе HPF (Hight
Performance Fortran, 1995). В HPF-системе традиционный Fortran дополнен
специальными директивами, записываемыми в форме комментариев (т.е. не
воспринимаемых обычным компиляторомметод решения проблемы пере-
носимости!). С возможностью использовать HPF-программ на последова-
тельных и параллельных машинах без изменений были связаны
серьезные
надежды разработчиков, сменившиеся в дальнейшем здоровым скептициз-
мом (несмотря на это, в 1997 г. был разработан проект стандарта HPF2, рас-
ширявший возможности программиста в смысле директив распараллелива-
ния, [6]).
История развития HPF тесно связана с таковой языка Fortran’90. Именно в
этом языке появились прототипы языковых конструкций, которые позволили
компилятору эффективно генерировать параллельный код.
Этот язык не яв-
ляется в прямом смысле параллельным, его создатели ставили себе более
общие цели - создать машинно-независимый инструмент обработки число-
вых научных данных. Основные возможности параллелизации в Fortran’90
связаны с циклами (операциям над массивами, именно на эти действия при-
ходится большее время выполнения научно-технических задач и именно их
целесообразно распараллеливать в первую очередь). Мощным средством ра-
боты с массивами в Fortran’90 является возможность использования их в
арифметических операциях подобно обычным скалярам. Многие встроенные
операции в языке Fortran’90 можно применить и к массивам, получая при
этом массив такой же формы, каждый элемент которого будет иметь значе-
ние, равное результату заданной операции
над элементами массивов. Воз-
можно выделять секции в массивах и оперировать с ними как с новыми мас-
сивами и др., причем порядок, в котором совершаются поэлементные опера-
ции, стандартом не устанавливается. Это дает возможность компилятору
*
В.Э.Малышкин. Основы параллельных вычислений. // Учебное пособие, часть 2. ЦИТ
СГГА. –Новосибирск, 2003.
                                         - 97 -


программ (требуется лишь некоторая ‘переделка’) и сохраняется опыт про-
граммирования. Недостатки подхода базируются на этих же положениях –
для разработки эффективной параллельной программы необходимо учиты-
вать внутреннюю структуру алгоритма, а базовый (исходно последователь-
ный) язык обычно не содержит даже механизмов, с помощью которых воз-
можно реализовать это.
  Естественно, на поверхности лежит попытка реализовать параллелизм в
циклах (гнездах циклов) в Fortran-программах (см. ранее подраздел 3.2).
Возможность реализовалась использованием дополнительных ключевых слов
ParDO (отечественная система M-10), ParDO/ParEND (система параллельного
сборочного программирования ИНЯ, (*).
  Метод ‘подсказок’ компилятору с целью дополнить его функциональность
средствами распараллеливания реализован, например, в системе HPF (Hight
Performance Fortran, 1995). В HPF-системе традиционный Fortran дополнен
специальными директивами, записываемыми в форме комментариев (т.е. не
воспринимаемых обычным компилятором – метод решения проблемы пере-
носимости!). С возможностью использовать HPF-программ на последова-
тельных и параллельных машинах без изменений были связаны серьезные
надежды разработчиков, сменившиеся в дальнейшем здоровым скептициз-
мом (несмотря на это, в 1997 г. был разработан проект стандарта HPF2, рас-
ширявший возможности программиста в смысле директив распараллелива-
ния, [6]).
  История развития HPF тесно связана с таковой языка Fortran’90. Именно в
этом языке появились прототипы языковых конструкций, которые позволили
компилятору эффективно генерировать параллельный код. Этот язык не яв-
ляется в прямом смысле параллельным, его создатели ставили себе более
общие цели - создать машинно-независимый инструмент обработки число-
вых научных данных. Основные возможности параллелизации в Fortran’90
связаны с циклами (операциям над массивами, именно на эти действия при-
ходится большее время выполнения научно-технических задач и именно их
целесообразно распараллеливать в первую очередь). Мощным средством ра-
боты с массивами в Fortran’90 является возможность использования их в
арифметических операциях подобно обычным скалярам. Многие встроенные
операции в языке Fortran’90 можно применить и к массивам, получая при
этом массив такой же формы, каждый элемент которого будет иметь значе-
ние, равное результату заданной операции над элементами массивов. Воз-
можно выделять секции в массивах и оперировать с ними как с новыми мас-
сивами и др., причем порядок, в котором совершаются поэлементные опера-
ции, стандартом не устанавливается. Это дает возможность компилятору

*
    В.Э.Малышкин. Основы параллельных вычислений. // Учебное пособие, часть 2. ЦИТ
    СГГА. –Новосибирск, 2003.