How about just finding the max length for the names and reading all the names into fixed length char*s.... and just using the available routines to send them across the wire.

We don't need to over think this... we are sending some strings across the wire once per simulation......


On Wed, Feb 13, 2013 at 2:30 PM, Roy Stogner <> wrote:

On Wed, 13 Feb 2013, Roy Stogner wrote:

On Wed, 13 Feb 2013, Kirk, Benjamin (JSC-EG311) wrote:

Communicator::set_union std::map<T1,T2> &data) …

at line 1824 of parallel_implementation.h

You can broadcast the parallelized boundary names simply by calling
this guy, and implementing whatever may be needed for your

Can this work?

After some thought, I can answer my own question: "yes, but not quite
yet".  For containers which aren't contiguous blocks of memory, we
have to pack things up into contiguous blocks for MPI already.  Rather
than having separate types of code to do this for fixed-width and
variable-width types, we could easily just use the variable-width case
all the time, with some simple compile-time metaprogramming tricks to
define "pack", "unpack", etc. for any objects which already have a
Parallel::StandardType<T> specialization.

But "not quite yet" might be an understatement; even if this
conversation suckers me into doing the pair/string packing quickly,
getting it to work with the originally fixed-size-only APIs would be a
longer-term challenge.
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
Libmesh-devel mailing list