Проблемы параллельных вычислений. Часть 3.

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

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

Значительно более «скалярный» подход реализовал в своих машинах С. Крей. По существу, его машины являются традиционно трехадресными регистровыми, аналогичными машинам фирмы CDC, разработанным под его руководством. Для обработки векторов введены «длинные регистры», т. е. регистры, содержащие до 64 слов.

Различие между архитектурами ЭВМ Cray-1 и Cyber-205 лучше всего проиллюстрировать на примере векторного выражения, запрограммированного в Cray-1 в виде цикла. 6 каждом поколении цикла вычисляются очередные 64 последовательных элемента вектора-результата. Вычисления производятся полностью на регистрах. Промежуточные результаты отсылаются не в память, а в один из восьми 64-словных векторных регистров.

При этом если в машине Cyber-205 каждая следующая операция начинается после завершения предыдущей, то в машине Cray-1, так же как во всех скалярных ЭВМ, происходит «заглядывание вперед» и наложение операций. В результате машина Cray-1 оказывается избавленной от многих недостатков машины Cyber-205. Программист со значительно меньшими ограничениями может организовать параллельную работу нескольких векторных устройств.

Если, например, написана следующая программа:

Действия с векторами

где R1—R8 — адреса векторных регистров, то в ней все три операции выполняются параллельно с небольшим сдвигом.

Таким образом, С. Крей векторные операции реализовал более успешно. Однако в его машинах, так же как в Cyber-205, проблема векторизации выражений и условной обработки элементов массива остается нерешенной. «Более скалярный» метод обработки массивов и значительно более тщательная с точки зрения получения предельной скорости реализация скалярных вычислений позволила ему создать весьма успешную архитектуру. Более того, предложенный им метод векторизации скалярной архитектуры становится общепринятым. Этот же метод реализовала фирма IBM в серии, японские фирмы Fujutsu (серия FACOM VP), Hitachi (HITAC S-810 и др.) и NEC (суперЭВМ типа SX).

Наибольшее внимание уделено скалярным вычислениям в машинах, построенных по архитектуре фирмы FPS.

Хотя эти машины числятся как векторные приставки к универсальным машинам (в основном для DEC и IBM), по существу, они сами являются универсальными, самостоятельно решающими большие численные задачи, написанные на языке ФОРТРАН. При разработке этих машин большое внимание было уделено скалярным вычислениям. По существу, только в машинах этой фирмы успешно реализуется явное распараллеливание скалярных вычислений, что обеспечило им большой коммерческий успех.