Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2005-11-22 23:57:47


Ian McCulloch <ianmcc_at_[hidden]> writes:

> The 'usual' way (if there is such a thing; datatypes seem to be not used
> much in MPI) of constructing datatypes is using offsetof(), or just knowing
> what the layout is for compiler X, and constructing the datatype by hand.
> I don't know what mechanism Dave is thinking of to construct the datatype,
> it sounds unlikely that it could be done via a usual serialization
> function

Actually yes, it can. It's based on an innovation by Michael Gauckler
and it's both fiendishly clever and blindingly obvious once you see
it. He's writing a paper on it.

> (but maybe if you could do member pointer arithmetic to replace
> offsetof() ?). I don't understand the restriction to PODs with no pointers
> though, as pointers are no problem - at least in principle - you just
> recursively follow the pointer when constructing the typemap.

IIUC, you just can't get the same acceleration for arrays of such types.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk