Ralph Castain wrote:

I have two examples so far:

1. using a ramdisk, /tmp was set to 10MB. OMPI was run on a single node, 2ppn, with btl=openib,sm,self. The program started, but segfaulted on the first MPI_Send. No warnings were printed.

Interesting. So far as I can tell, the actual memory consumption (total number of allocations in the mmapped segment) for 2 local processes should be a little more than half a Mbyte. The bulk of that would be from fragments (chunks). There are btl_sm_free_list_num=8 per process, each of btl_sm_max_frag_size=32K. So, that's 8x2x32K=512Kbyte. Actually, a little bit more. Anyhow, that accounts for most of the allocations, I think. Maybe if you're sending a lot of data, more gets allocated at MPI_Send time. I don't know.

While only < 1 Mbyte is needed, however, mpool_sm_min_size=128M will be mapped.

It doesn't make sense that this case would fail, but the next case should run. Are you sure this is related to the SM backing file?

2. again with a ramdisk, /tmp was reportedly set to 16MB (unverified - some uncertainty, could be have been much larger). OMPI was run on multiple nodes, 16ppn, with btl=openib,sm,self. The program ran to completion without errors or warning. I don't know the communication pattern - could be no local comm was performed, though that sounds doubtful.

Reply via email to