- 98 -
• самостоятельно принимать решение об окончании итераций.
При этом предлагается совершенно исключить этап обратной
рассылки признака окончания итераций, а этап сбора невязок заменить
на несколько “лишних” итераций, причем их число фиксировано и, как
показано ниже, невелико.
Приведем описание децентрализованного алгоритма принятия
решения об окончании итераций.
Рассмотрим сеть, состоящую из N*M (на рис. 28 N=4, M=8) про-
цессоров, соединенных в решетку. Пусть каждый процессор на каждой
итерации сообщает своим “соседям”, сошлись у него и у тех процессо-
ров, информация от которых к нему уже поступила, итерации или нет.
Это можно делать с минимальными потерями времени, объединяя при
передаче массив соответствующих признаков вместе с новыми значе-
ниями в граничных точках.
При таком подходе процессор P
22
(рис. 28) узнает о том, что у
процессора P
00
итерации сошлись, только через R тактов (R=4) после
того, как это в действительности произошло (будем для разнообразия
использовать термин “такт” как синоним слова “итерация”).
Предположим, что в P
00
итерации сошлись. Тогда P
01
, получив
эту информацию на такте t
0
, на такте t
1
должен передать ее процессо-
рам P
02
и P
11
вместе с данными о себе, включив после соответствующе-
го преобразования в матрицу
G
признаков состояния всех процессо-
ров сети. В свою очередь, он получает от соседей такие же матрицы
G
, отражающие их представления о состоянии системы. Матрица
G
содержит N*M чисел от -D до D+1, в начальном состоянии она содер-
жит только нулевые значения. Если в процессе расчета оказывается,
что G
ij
=D+1, то это означает, что итерации в P
ij
уже сошлись и све-
дения об этом распространились по всем процессорам сети. Если
D
≥
G
ij
≥
0, то либо итерации в P
ij
еще не сошлись, либо еще не все про-
цессоры знают, что итерации в P
ij
уже сошлись. Элемент матрицы G
ij
первый раз принимает значение 1 в момент, когда в соответствующем
ему транспьютере P
ij
сойдутся итерации. Далее это значение на каж-
дом такте передается соседним по графу транспьютерам, одновре-
менно увеличиваясь на 1, что позволяет интерпретировать его, как зна-
чение времени, прошедшего с момента получения решения. Оно заме-
чательно тем, что течет одинаково для
всех
транспьютеров, в которых
оно отлично от нуля. Именно это свойство обеспечивает синхронность
принятия решения об окончании итераций.
Возможен третий вариант: -D
≤
G
ij
<0. Рассмотрим случай, когда
в P
00
только что включилась скважина, а вся остальная область со-
держит ровный фон, итерации только начались. Очевидно, что во всех
P
ij
, кроме содержащего источник, первая же итерация сойдется, но че-
рез несколько тактов, когда возмущение достигнет краев расчетной
области P
00
, условие окончания итераций может нарушиться и в P
01
, и