- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Collegues,
I've developed parallel code that implements both OpenMP + MPI hybrid parallelization and allocates a shared RMA window by calling MPI_Win_allocate_shared function to store the data shared among multiple OpenMP threads executed withing several MPI processes.
Is there any chance to synchronize access to the shared RMA window by the number of OpenMP threads executed within multiple MPI processes.?
Is there any pattern for hybrid OpenMP + MPI programming ?
Thanks for your replies in advance.
Cheers, Arthur.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you explain in more detail how you're trying to control your synchronization?
I personally would not use MPI_Win_allocate_shared along with OpenMP. MPI_Win_allocate_shared is intended as a means of local shared memory similar to threading, but without having to implement threading. At the point that threading is implemented, I'd aim for having a single rank per node, and use threading within that rank to fully utilize the node.
Is it doable? Absolutely. But MPI mostly expects you to control access to shared memory much more directly than OpenMP requires. So it's going to take more effort.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Arthur,
I am moving your question to Intel MPI forum for experts on MPI internals, as it does not relate to the open source runtime library.
Regards,
Andrey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you explain in more detail how you're trying to control your synchronization?
I personally would not use MPI_Win_allocate_shared along with OpenMP. MPI_Win_allocate_shared is intended as a means of local shared memory similar to threading, but without having to implement threading. At the point that threading is implemented, I'd aim for having a single rank per node, and use threading within that rank to fully utilize the node.
Is it doable? Absolutely. But MPI mostly expects you to control access to shared memory much more directly than OpenMP requires. So it's going to take more effort.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your reply. Can you explain me how to implement global shared memory using MPI and not using MPI_Win_allocate_shared at the same time ? Thanks for your reply in advance.
Cheers, Arthur.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please see Mark's reply on your other thread at https://software.intel.com/en-us/forums/intel-clusters-and-hpc-technology/topic/607531#comment-1859049.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for reply.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you provide an example of using MPI_Send/MPI_Recv instead to maintain a shared memory between processes on different nodes ?
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page