Составители:
Замечание 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
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »
