[GCC-XML] Xrtti.h

Doug Gregor dgregor at cs.indiana.edu
Fri Apr 27 13:51:40 EDT 2007


>> This is a great discussion so far.  I'm actually also working on a
>> similar tool to automate C++ serialization which uses GCCXML as its
>> first step.  My approach is different in a few ways though:
>>
>> 1. It uses a visual tool.
>> 2. It's intended for the high performance computing (HPC) community.
>> 3. As a result of 2, the serialization is to MPI, not sockets.
>>
>> We've encountered most of the issues you guys have discussed in the
>> email, and I think with the visual tool we've solved all of them.   
>> The
>> tool allows the user to select a datatype from their program and then
>> gives them a treeview of the fields in that datatype.  Then they just
>> check off what they want to serialize and click generate.  The  
>> code then
>> gets generated to mirror MPI's normal Send, Recv, etc., calls so  
>> that it
>> looks like you're still using MPI calls but you're actually using the
>> code generated by the tool.
>>
>> If you guys are interested, we'll be submitting a paper on the  
>> complete
>> tool to ASE 2007 in early June.  I can post a link to the paper  
>> and the
>> tool's website when it's all ready.

I missed Wesley's original message, so I'll reply here...

We tackled many issues regarding serialization for MPI in the  
creation of the Boost.MPI library [1]. Our approach to serialization  
was to use the Boost Serialization library [2], a C++-only library  
that can serialize to a variety of different formats. The Boost  
Serialization library requires users to manually specify a  
"serialize" function, although we would greatly benefit from a tool  
that could automatically generate this serialize function from source  
code.

On the MPI side... Boost.MPI allows one to send/receive any C++ data  
type, performing (de-)serialization automatically via the Boost  
Serialization library when necessary. Serialization either maps down  
to a series of MPI_Pack/MPI_Unpack calls or, when possible,   
generates derived MPI data types to let the MPI implementation  
serialize on-the-fly. We had a paper in EuroPVM/MPI last year  
describing the techniques we use to do this efficiently in C++ [3];  
the extended version is under review at the moment, but I'll be happy  
to send a preprint to anyone interested in this approach to  
serialization for MPI.

	- Doug


[1] Boost.MPI. http://www.generic-programming.org/~dgregor/boost.mpi/ 
doc/
[2] Boost.Serialization. http://www.boost.org/libs/serialization/doc/
[3] Prabhanjan Kambadur, Douglas Gregor, Andrew Lumsdaine, and Amey  
Dharurkar. Modernizing the C++ Interface to MPI. In Proceedings of  
the 13th European PVM/MPI Users' Group Meeting, LNCS, Bonn, Germany,  
pages 266--274, September 2006. Springer. 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/gccxml/attachments/20070427/e011c3f8/attachment-0002.html>


More information about the gccxml mailing list