В тестовых примерах и примерах по использованию подпрограмм комплекса приняты следующие стандартные обозначения величин, задающих параметры исходной задачи и выбранный способ распараллеливания (указаны в алфавитном порядке).
Имя | Определение |
---|---|
CSRC - | Номер столбца решетки процессов, в который распределяется первый столбец исходной глобальной матрицы |
DESCA - | Дескриптор исходной глобальной матрицы A системы уравнений |
DESCB - | Дескриптор исходной глобальной матрицы (вектора) правых частей B |
ICTXT - | Контекст BLACS'а, связанный с выбранной решеткой процессов (внутренний параметр комплекса; служит для обеспечения согласованной работы подпрограмм комплекса и устанавливается пользователем обращением к соответствующей подпрограмме BLACS'а в начале решения задачи) |
M - | Число строк исходной глобальной матрицы A |
MB - | Число строк в блоке, на которые делится исходная матрица A |
MXLLDA - | Максимальная ведущая локальная размерность локальной части матрицы A среди всех локальных частей на всех процессах решетки |
MXLLDB - | Максимальная ведущая локальная размерность локальной части матрицы (вектора) B среди всех локальных частей на всех процессах решетки |
MXLOCC - | Максимальное число столбцов в локальных частях матрицы A, которые принадлежат процессам в столбцах решетки процессов |
MXLOCR - | Максимальное число строк в локальных частях матрицы A, которые принадлежат процессам в строках решетки процессов |
MXRHSC - | Максимальное число столбцов в локальных частях матрицы (вектора) B, которые принадлежат процессам в столбцах решетки процессов (если B - вектор, то MXRHSC = 1) |
MYCOL - | Координата (номер) столбца вызываемого процесса в решетке процессов |
MYROW - | Координата (номер) строки вызываемого процесса в решетке процессов |
N - | Число столбцов исходной глобальной матрицы системы уравнений A и число строк глобальной матрицы (вектора) B |
NB - | Число столбцов в блоке, на которые делится исходная матрица A |
NBRHS - | Число столбцов в блоке, на которые делится глобальная матрица (вектор) B (если B - вектор, то NBRHS = 1) |
NPCOL - | Число столбцов в решетке процессов |
NPROW - | Число строк в решетке процессов |
NRHS - | Число столбцов исходной глобальной матрицы (вектора) B (если B - вектор, то NRHS = 1) |
RSRC - | Номер строки решетки процессов, в которую распределяется первая строка исходной глобальной матрицы |
Опишем далее некоторые упрощения и ограничения, которые были сделаны при подготовке примеров использования подпрограмм комплекса, для того чтобы упростить пользователю освоение правил работы с этими подпрограммами.
1. В примерах предполагается, что RSRC = CSRC = 0, что означает, что обе исходные матрицы A и B распределяются по решетке процессов, начиная с процесса (0, 0). На самом деле, любой из процессов решетки может быть выбран в качестве начального при распределении матриц.
2. В примерах предполагается, что система уравнений решается при использовании всей исходной распределенной матрицы A (хотя подпрограммы допускают, чтобы решалась система с матрицей, являющейся подматрицей sub (A) исходной матрицы A). При указанном предположении параметры, задающие первый элемент подматрицы A (и B), полагаются равными 1, т.е. IA = JA = IB = JB = 1. См. раздел документации "Описания параметров подпрограмм, связанных с глобальными массивами".
3. При распределении исходных матриц A и B по решетке процессов используется подпрограмма MATINIT, которая заносит с помощью операторов присваивания в соответствующие локальные массивы на каждом из процессов решетки распределенные на него элементы исходных матриц.
4. В примерах предполагается, что ведущая локальная размерность локальных частей матрицы A и ведущая локальная размерность локальных частей матрицы (вектора) B являются теми же самыми (одинаковыми) для всех процессов, принадлежащих к одним и тем же строкам решетки процессов (т.е. имеющих одинаковые координаты строк решетки). Переменная MXLLDA равна максимальной ведущей локальной размерности для матрицы A (обозначаемой LLD_A) из всех строк решетки процессов. Точно так же переменная MXLLDB равна максимальной локальной ведущей размерности для матрицы B (обозначаемой LLD_B) из всех строк решетки процессов. Однако в общем случае локальные ведущие размерности локальных частей матриц могут отличаться друг от друга для всех процессов решетки.
5. В примерах рассматриваются исходные матрицы A и B небольших размеров. При этом размеры блоков, на которые разбиваются эти матрицы, выбираются небольшими. Например, в тесте к подпрограмме, решающей систему с плотной матрицей ( PDGESV.f ), MB = NB = 2. Однако это не является самым лучшим размером блоков для практических задач. Для достижения лучшей производительности более подходящим размером блоков может быть MB = NB = 16, MB = NB = 32 или MB = NB = 64.