174
(подразумевается возможность распределения не
по всем процессорам);
NPROW, NPCOL
– число строк и столбцов в сетке процессоров.
Важно также уметь оценить верхние значения величин NP и NQ для
правильного описания размерностей локальных массивов. Можно
использовать, например, такие формулы:
NROW = (M-1)/NPROW+MB
NCOL = (N-1)/NPCOL+NB
Дескриптор для данного типа матриц – это массив целого типа из 9
элементов. Он может быть заполнен либо непосредственно с помощью
операторов присваивания, либо с помощью специальной подпрограммы из
библиотеки PTOOLS. Описание назначения полей дескриптора и
присваиваемых им значений приводится в следующей таблице.
Таблица 14.2. Дескриптор для заполненных матриц.
DESC(1) = 1
тип дескриптора;
DESC(2) = ICTXT
контекст ансамбля процессоров;
DESC(3) = M
число строк исходной матрицы;
DESC(4) = N
число столбцов исходной матрицы;
DESC(5) = MB
размер блока по строкам;
DESC(6) = NB
размер блока по столбцам;
DESC(7) = RSRC
номер строки в сетке процессоров, начиная с которой
распределяется матрица (обычно 0);
DESC(8) = CSRC
номер столбца в сетке процессоров, начиная с
которого распределяется матрица (обычно 0);
DESC(9) = NROW
число строк в локальной матрице (leading dimension).
Вызов подпрограммы из PTOOLS, выполняющей аналогичное
действие по формированию дескрипторов, имеет вид:
CALL DESCINIT(DESC, M, N, MB, NB, RSRC, CSRC, ICTXT, NROW,INFO)
Параметр INFO – статус возврата. Если INFO = 0, то подпрограмма
выполнилась успешно; INFO = -I означает, что I-й параметр некорректен.
В расчетных формулах при решении задач линейной алгебры, как
правило, фигурируют выражения, содержащие матричные элементы,
идентифицируемые их глобальными индексами (I,J
)
. После распределения
матрицы по процессорам, а точнее, при заполнении локальных матриц на