Is OpenACC compatible with MPI shared window arrays?


Just curious if OpenACC is compatible with MPI shared window arrays (shared within the node).

That is, if I have a shared MPI array using MPI_Win_allocate_shared(), can I use that array in a data enter clause? Will it simple copy the full array to that GPU or is there a way (or will there be a way) to distribute the array across GPUs like the MPI array?

  • Ron

Any answers for this?

Hi Ron,

Having not used “MPI_Win_allocate_shared” myself, nor having seen it used in any user code that I’ve looked at, I’m not sure.

My instinct is that if you have access to the local base pointer to the shared memory, then it should work fine within an OpenACC data construct. Though the device copy of would not be shared by the ranks.

I’d probably lock the shared memory when it’s in use on the device to avoid any synchronization issues with other MPI ranks.