Теория распараллеливания и синхронизация. Демьянович Ю.К - 74 стр.

UptoLike

Замечание 1. Приведенная программа правильна, но допуска-
ет улучшение: будет меньше пересылок, если сначала обновить
newgrid ак это здесь и было сделано), а затем обновить grid
тем же приемом, и эту последовательность постоянно повторять
(на нечетных шагах обновлять newgrid, а на четных grid).
Замечание 2. Быстрее описанного метода сходится метод верх-
ней релаксации; однако, здесь на вопросах ускорения сходимости
останавливаться не будем.
§16 Замечание о синхронном выполнении
До сих пор допускалась возможность, что вычислител ьные модули
(ВМ) рассматриваемой вычислительной системы (ВС) имеют раз-
личные типы и работают различными скоростями (система гетеро-
генная); таким образом, процессы могли идти с разной скоростью.
В случае, когда все ВМ работают синхронно, выполняют одну
и ту же последовательность команд, а в каждый момент времени
одну и ту же операцию, то многие приведенные ранее пр ограм -
мы упрощаются. Например, программа вычисления всех частич-
ных сумм массива (см. §13) принимает вид
int a[n], s[n];
process Sum[i = 0 to n 1] {
s[i] = a[i]; # инициализация элементов массива s
while (d < n) {
if
(i d) >= 0
# одновление s
s[i] = old[i d] + s[i];
d = d + d; # удваивание расстояния
}
}
Здесь программные барьеры не нужны, ибо процессы выполняют
одни и те же команды, точно так же не нужны дополнительные
переменные. Параллельные инструкции в этой ситуации становятся
неделимыми.
Рассматриваемые ВС называются синхронными мультипроцес-
сорными (SIMD-машинами); они привлекательны по следующим
75