- changed status to open
- removed comment
used shared memory on a node to share EOS table
the attached patch has processes on the same node share the memory to store the EOS table. It required a patch to the flesh to detect the shared memory support functions in the OS.
Keyword: EOS_Omni
Comments (5)
-
reporter -
- removed comment
doBcast is not defined reliably; it relies on a process id, which may be the same on different nodes. Using MPI_Hostname may be a better way. Carpet already collects host names and converts them to integers; you may be able to query this.
I don't think it is legal to use different sizes on different processes in MPI_Bcase. I would assume that the sender still sends all data, but the receiver ignores some of it, and the data remain stuck in a buffer. MPI_Alltoallv may be necessary.
I still worry that the shared memory segments are created in the code, but are never deleted. If I recall correctly, the operating system does not delete them automatically when a process ends. The command "icps" lists all such segments -- please check whether you have a memory leak.
-
- changed status to open
- assigned issue to
- removed comment
-
reporter - removed comment
All of Erik's comments are correct, the current patch is broken and full of bugs. Getting this right is a bit of a hassle due to the rather odd semantics of SYSV IPC constructs and the desire to have a clean implementation. Not terribly high priority to anyone as far as I know so don't expect this to happen soon.
-
reporter - changed status to resolved
- removed comment
The benefit of this seems small right now and it greatly adds to the complexity of the code. Shelfed for now. Re-open with cleaner code if required.
- Log in to comment