Коммуникационное ядро
1. Обмен граничных значений.CALL P_BEXCHANGE (A, NDIMS, STRIDE, BLKLEN, BDIM, OVERLAP, DATATYPE, COMM, PERIOD, IERROR)
A - массив,
NDIMS - количество размерностей,
STRIDE - размерности массива,
BLKLEN - размеры блоков,
BDIM - распределенная размерность,
OVERLAP - ширина границ,
DATATYPE - тип данных (REAL или DOUBLE PRECISION),
COMM - коммуникатор,
PERIOD - периодичность распределенной размерности,
IERROR - код ошибки
2. Транспонирование.
CALL P_TRANSPOSE (NDIMS, A, DIMA, WIDTHA, B, DIMB, WIDTHB, STRIDE, BLKLEN, OVERLAP, DATATYPE, COMM, DIAG, IERROR)
NDIMS - кличество размерностей,
A - входной массив,
DIMA - распределенная размерность входного массива,
WIDTHA - размеры блоков, которыми распределен входной массив,
B - выходной массив,
DIMB - распределенная размерность выходного массива,
WIDTHB - размеры блоков, которыми распределен выходной массив,
STRIDE и BLKLEN - параметры, определяющие размерности массивов,
OVERLAP - ширина перекрытий блоков выходного массива,
DATATYPE - тип данных,
COMM - коммуникатор,
DIAG - логическая переменная, определяющая транспонируется ли диагональный блок,
IERROR - код ошибки
Асинхронный вариант вызова процедур.
CALL P_*_INIT (...)
CALL P_*_START (...)
CALL P_*_END (...)
CALL P_*_FREE (...)
Next:Производительность модели Up: Содержание Previous: Решение уравнения Гельмгольца
Валерий Глухов, Институт вычислительной математии РАН, gluhoff@inm.ras.ru