On Wed, 13 Feb 2013, Cody Permann wrote:
So I'd be happy to work on this unless someone else wants to
volunteer. Clearly we'll need a pack this data up since the strings
will be variable length as we send this over the wire. I might need
a little guidance as to where or how this can be done. I looked at
the mesh_broadcast routine and can't immediately see where all of
the boundary_info data is sent. I'm missing something here...
The trick is that boundary info is packed up along with the elements
and nodes it applies to. See parallel_elem.C and parallel_node.C for
the implementation. We don't want every processor to know about every
boundary id, only for every id on its own part of the boundary.
I don't think this'll be what we want to do for those maps you added,
though. Those ought to be serialized, right? It would save a little
memory but add a lot of communication if we tried to have each rank
only store labels corresponding to boundary ids that had some support
on that rank's partition.
I'd love to add Parallel::pack/unpack/etc. implementations for
std::pair and std::string. Then you'd be able to broadcast each whole
map with a single function call. I'm not sure when I'd find time to
get to it, though, so if you definitely want it before March you'll
have to do it mostly yourself; ping me with any questions.
---
Roy
------------------------------------------------------------------------------
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.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel