Since it is necessary to know the address of data on remote nodes, SHMEM is not suitable for communication between different binaries, as it difficult to bootstrap SHMEM without knowledge of a valid address on each node.
Because SHMEM uses put/get semantics instead of send/receive semantics, it puts the onus of managing communication on the application. For some applications, this is not a problem, but applications that require send/receive semantics must fabricate that on top of put/get, which is a chore.
Finally, since SHMEM currently exists only on SGI/Cray platforms and as part of HPVM, it cannot be considered a widely-available API and should not be used for applications that will need to run on platforms other than those.
Go to the first, previous, next, last section, table of contents.