Коммуникационное ядро

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
Next:Производительность модели Up: Содержание Previous: Решение уравнения Гельмгольца

Валерий Глухов, Институт вычислительной математии РАН, gluhoff@inm.ras.ru