Лекции по параллельным вычислениям. Гергель В.П - 27 стр.

UptoLike

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

27
мера рассмотрим несколько фрагментов вычислений в виде блок-схем, пока-
занных на рисунке 2.1, а, б, в.
Поскольку в системе команд векторно-конвейерных компьютеров обычно
есть векторные команды, в которых аргументы могут быть как скалярами, так и
векторами, векторизация фрагментов, показанных на рис. 2.1, а и б, не вызовет
проблем. В то же время фрагмент, показанный на рис. 2.1, в, невозможно век-
торизовать, поскольку вычисление i-го элемента массива A не может начаться ,
пока не будет вычислен предыдущий элемент. В данном примере имеет место
зависимость между операциями, которая будет препятствовать векторизации.
Это надо иметь в виду при выполнении программы на компьютере векторно-
конвейерной архитектуры.
а) б) в)
Рис. 2.1 Примеры векторизуемых и невекторизуемых алгоритмов
В качестве примера предположим, что половина некоторой программы
это сугубо последовательные вычисления, которые нельзя векторизовать. То-
гда, даже в случае мгновенного выполнения второй половины программы за
счет идеальной векторизации, ускорения работы всей программы более чем в
два раза мы не получим. Подробно вопросы достижимого ускорения, опреде-
ляемого законом Амдала, будут рассмотрены в лекции 4.
i<n
i<n
С(i)=A(i)+B
i=1
i=i+1
С(i)=A(i)+B(i)
i=1
i=i+1
i<n
A(i)=A(i-1)+B(i)
i=1
i=i+1
i<n