Hi all. I am relatively new to MPI, and so this
covered somewhere else, but I can’t seem to find any links to tutorials
mentioning any specifics, so perhaps someone here can help.
In C, I have a 3D array that I have dynamically
access like Array[x][y][z]. I was hoping to calculate a subsection for
processor to work on, of size nx in the x dimension, ny in the y
dimension, and the full Z dimension. Starting at Array[sx][sy] and
Array[ex][ey][z] where ey-sy=ny.
What is the best way to do this? I am able to
neighboring processors and assign a sub-section of the XY dimensions to
processor, however I am having problems with sharing the border
the arrays with the other processors. I don’t really want to have to do
MPI_Send for each of the 0..Z slices’s border information. I’d kind
of like to process all of the Z, then share the full “face” of the
border information with the neighbor processor. For example, if process
the right neighbor of process zero, I’d want process zero to send
right most face) to processor 1’s left-most face..assuming the X-Y
was your screen, and the Z dimension extended into the screen.
If anyone has any information that talks about
how to use
the MPI data types, or some other method, or wants to talk about how
be done, I’m all ears.
I know it is hard to talk about without
pictures, so if you
all like, I can post a picture explaning what I want to do. Thanks!