Нужна ли транспонирование для MPI SCATTER 3D-массива правильным образом? - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть вопрос о рассеянии данных с использованием функции рассеяния MPI.

Я хотел бы точным образом разбросать данные, но я не знаю, возможно ли это по рассеянию MPI или мне нужно преобразоватьданные, а затем разброс.

Например, у меня есть размер массива (х, у, г) 4,8,2 (так что есть два 2D-массива).Теперь я хочу разбить его на 4 процесса, каждый размер будет 4,2,2.

Данные разбросаны следующим образом:

MPI scatter

Однако мне нужны данные разброса следующим образом:

Is it posible

Программа написана на фортране.

Функция разброса в моей программе выглядит так:

CALL MPI_Scatter(TRANSPONSE_LOCAL_YZ(:,:,:), x_proc*y*z_proc, MPI_INT, TRANSPONSE_YZ(:,s:f,:), x_proc*y*z_proc, MPI_INT, 0, MPI_COMM_WORLD, MPI_STATUS, MPI_err)
...