Параллельные вычисления. Баканов В.М. - 124 стр.

UptoLike

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

- 124 -
Ok: (k=1..kMAX).
OA: (Oi; Ok). ! определение двумерных областей
OB: (Ok; Oj).
OC: (Oi; Oj).
VARIABLE a DEFINED ON OA DOUBLE. ! определение переменных на областях
VARIABLE b DEFINED ON OB DOUBLE.
VARIABLE c DEFINED ON OC DOUBLE.
OUTPUT c(FILE='MMmatrix.out') ON OC. ! операция вывода результирующей матрицы [C]
DOMAIN PARAMETERS iMAX=500. ! определение констант
DOMAIN PARAMETERS jMAX=1000.
DOMAIN PARAMETERS kMAX=1000.
FOR OA ASSUME a=(i-1)+(k-1). ! коллективная операция для задания
FOR OB ASSUME b=(k-1)
×
(j-1). ! начальных значений элементам a[i][k] и b[k][j] матриц
COMPUTE Pmatrix(a ON OA, b ON OB RESULT c ON OC). ! вызов процедуры Pmatrix
END PART. ! конец основного раздела
PART Pmatrix. ! начало раздела Pmatrix
a,b RESULT c ! a,b - входные параметры, с - выходной
! тело процедуры Pmatrix
BEGIN
DOMAIN
PARAMETERS iMAX=500.
DOMAIN PARAMETERS jMAX=1000.
DOMAIN PARAMETERS kMAX=
1000.
Oi: (i=1..iMAX).
Oj: (j=1..jMAX).
Ok: (k=1..kMAX).
OA: (Oi; Ok).
OB: (Ok; Oj).
OC: (Oi; Oj).
VARIABLE a DEFINED ON OA DOUBLE.
VARIABLE b DEFINED ON OB DOUBLE.
VARIABLE c DEFINED ON OC DOUBLE.
DISTRIBUTION INDEX i=1..12, k=1. ! описание топологии многопроцессорной системы
FOR OC ASSUME c=SUM((Ok)a[i,k]
×
b[k,j]). ! коллективная операция
b
aс
kj
kMAXk
1k
ikij
×=
=
=
END PART. ! конец раздела Pmatpix
                                                - 124 -

 Ok: (k=1..kMAX).
 OA: (Oi; Ok). ! определение двумерных областей
 OB: (Ok; Oj).
 OC: (Oi; Oj).
 VARIABLE a DEFINED ON OA DOUBLE. ! определение переменных на областях
 VARIABLE b DEFINED ON OB DOUBLE.
 VARIABLE c DEFINED ON OC DOUBLE.
 OUTPUT c(FILE='MMmatrix.out') ON OC. ! операция вывода результирующей матрицы [C]
 DOMAIN PARAMETERS iMAX=500. ! определение констант
 DOMAIN PARAMETERS jMAX=1000.
 DOMAIN PARAMETERS kMAX=1000.
 FOR OA ASSUME a=(i-1)+(k-1). ! коллективная операция для задания
 FOR OB ASSUME b=(k-1) × (j-1). ! начальных значений элементам a[i][k] и b[k][j] матриц
 COMPUTE Pmatrix(a ON OA, b ON OB RESULT c ON OC). ! вызов процедуры Pmatrix
END PART. ! конец основного раздела

PART Pmatrix. ! начало раздела Pmatrix
  a,b RESULT c ! a,b - входные параметры, с - выходной
! тело процедуры Pmatrix
BEGIN
  DOMAIN PARAMETERS iMAX=500.
 DOMAIN PARAMETERS jMAX=1000.
 DOMAIN PARAMETERS kMAX=1000.
 Oi: (i=1..iMAX).
 Oj: (j=1..jMAX).
 Ok: (k=1..kMAX).
 OA: (Oi; Ok).
 OB: (Ok; Oj).
 OC: (Oi; Oj).
 VARIABLE a DEFINED ON OA DOUBLE.
 VARIABLE b DEFINED ON OB DOUBLE.
 VARIABLE c DEFINED ON OC DOUBLE.
 DISTRIBUTION INDEX i=1..12, k=1. ! описание топологии многопроцессорной системы
                                                                          k = kMAX
 FOR OC ASSUME c=SUM((Ok)a[i,k] × b[k,j]). ! коллективная операция с ij =      ∑ a ik × bkj
                                                                             k =1
END PART. ! конец раздела Pmatpix