Shaun Jackman wrote:

Eugene Loh wrote:

What's the rest? I said the shared-memory area is much smaller, but I was confused about which OMPI release I was using. So, the shared-memory area was 128 Mbyte and it was getting mapped in once for each process, and so it was counted doubly.

If there are eight processes running on one host, does each process allocate one 128 Mbyte shared memory buffer and map in the other seven 128 Mbyte buffers allocated by the other processes?

No. The total size for one, single shared file is computed and the lowest rank on the node creates the file and mmaps it in. Then, the other processes mmap the same file in.

The code is set up to have different "memory pools". E.g., look at https://svn.open-mpi.org/source/xref/ompi-trunk/ompi/mca/btl/sm/btl_sm.c#sm_btl_first_time_init . So, conceivably you could have different buffers on the same node. But in practice it's just one buffer and, in any case, they're always created by the lowest rank. E.g., https://svn.open-mpi.org/source/xref/ompi-trunk/ompi/mca/common/sm/common_sm_mmap.c#143 .

Reply via email to