Re: [mpich-discuss] beginner for remote mem access (sufeng)
Hi Pavan, Thanks a lot! Now I make sense for MPI_Win_fence. for hybrid RMA issue, did you mean in each rank, remote get the data into a shared memory, then threads in each rank load it by thread-level operation? Thank you! Sufeng On Fri, Jul 5, 2013 at 10:36 AM, Pavan Balaji <[email protected]> wrote:
On 07/05/2013 10:28 AM, Sufeng Niu wrote:
1. MPI_Win_fence is not similar to MPI_Barrier in some cases. The MPICH implementation can turn some calls into no-ops and others into MPI_Reduce_scatter. I am not quite sure about "turn some calls into no-ops and others into MPI_Reduce_scatter" Could you please give an example if possible? Another thing is if a process create a window for other process, but the data access is available after some operations. Should I use MPI_Win_fence or MPI_Barrier to sync? or other methods?
MPI_WIN_FENCE will make sure that all PUT/GET/ACCUMULATE operations are complete locally and remotely. This is probably what you need.
MPI_BARRIER is useless in this case since PUT/GET/ACCUMULATE can be nonblocking.
2.
Regarding "use MPI window as thread level", I really don't understand your thinking at all. MPI RMA is not shared memory nor is MPI a threading model. Sorry for uncleared statements, right now I would like to do multithreads and MPI hybrid programming. let me give an example: I have 3 processes, each one has 8 threads. thread 0 in process 0 creates a RMA window. if I would like all other threads to access it, should I use thread 0 in process 1, thread 0 in process 2 to MPI_Get the data from window, then use shared memory for internal threads to load the data? i am not sure what is the proper way for RMA in hybrid model.
All threads within the OS process are part of the same MPI rank. Any of them can access the window as the same rank.
-- Pavan
-- Pavan Balaji http://www.mcs.anl.gov/~balaji
-- Best Regards, Sufeng Niu ECASP lab, ECE department, Illinois Institute of Technology Tel: 312-731-7219
participants (1)
-
Sufeng Niu