On Apr 18, 2012, at 3:15 AM, Peter Sels wrote:

> I suppose with C++ MPI it's possible to enforce more strict type
> checking using template or so.)

Not really, unfortunately.  :-(

The idea is to be able to send *anything* through the (void*) choice buffer 
designation -- that includes even sending a pointer address if you want to.  We 
also wouldn't want to restrict the choice buffer to known/pre-defined data 
types, because then you couldn't send user-defined structs and the like.  The 
Forum also explicitly rejected enforcing hierarchy (a la Java, where every 
sendable item must be derived from a common ancestor).

For example, it may actually be *useful* to send a pointer address via 
MPI_SEND.  Granted, a pointer address is usually only valid locally, but:

- maybe you're sending a pointer address to a shared memory location, and it 
could be valid in another remote process
- maybe you're sending a pointer address so that it can be echoed back to you 
later (e.g., as a context)
- ...

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to