Здавалка
Главная | Обратная связь

Координаты декартова сдвига



Если топология это декартова структура, то MPI_SENDRECV часто используется вдоль какой-нибудь координаты, чтобы произвести сдвиг данных. На вход функции MPI_SENDRECV нужно подавать ранг источника для приёма и ранг приёмника для передачи. Вызов функции MPI_Cart_shift определяет эти аргументы.

MPI_Cart_shift(comm, direction, disp, rank_source, rank_dest)

IN comm -коммуникатор с декартовой структурой

IN direction -координата сдвига (integer)

IN disp -смещение (> 0: сдвиг вперёд, < 0: сдвиг назад) (integer)

OUTrank_source -ранг процесса источника (integer)

OUTrank_source -ранг процесса источника (integer)

direction определяет координату значение которой изменяется сдвигом. Координаты нумеруются от 0 до ndims-1, где ndimsколичество размерностей. В зависимости от периодичности декартовой группы по выделенной координате MPI_Cart_shift даёт циклический или конечный сдвиг. В случае конечного сдвига, в rank_source или rank_dest может быть возвращено значение MPI_PROC_NULL, которые отмечают, что источник или приёмник при сдвиге выходят за допустимые пределы.

 

Пример: На основе группы из 8 процессов создали декартову топологию: {2,4}, определим смещение disp =1

  1. Решетка процессов не периодичная, direction=0 задает сдвиг по строкам (вдоль столбцов)

0 1 2 3 0 проц. получает от проц. -1 и отправляет проц. 4

1 проц. получает от проц. -1 и отправляет проц. 5 4 5 6 7

Rank_source 4 rank_dest

1 ----- -1 5

2 ----- -1 6

3 ----- -1 7

4 ----- 0 -1

5 ----- 1 -1

6 ----- 2 -1

7 ----- 3 -1

  1. Решетка процессов периодичная, direction=0 задает сдвиг по строкам (вдоль столбцов)

0 1 2 3 0 проц. получает от проц. 4 и отправляет проц. 4

1 проц. получает от проц. 5 и отправляет проц. 5 4 5 6 7

Rank_source 4 rank_dest

1 ----- 5 5

2 ----- 6 6

3 ----- 7 7

4 ----- 0 0

5 ----- 1 1

6 ----- 2 2

7 ----- 3 3

  1. Решетка процессов не периодичная, direction=1 задает сдвиг по столбцам (вдоль строк)

0 1 2 3 0 проц. получает от проц. -1 и отправляет проц. 1

1 проц. получает от проц. 0 и отправляет проц. 2 4 5 6 7







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.