Quick question about MeshCommunication::allgather()... it looks like it is doing an all-to-all broadcast.. is that true?

We utilize this in the output system when we're trying to output a ParallelMesh using a serial format (like Exodus).  In that case we really don't need the mesh on _every_ processor.... only on processor 0.

It would be better to use something like MeshCommunication::localize_to_one() to bring the mesh down to processor 0 and output it then get rid of the remote elements again (like what MeshSerializer does, but not all-to-all).

Does that make sense to you guys?

I understand that we shouldn't really be using a serial output format with ParallelMesh... but there are times when it's going to happen so no reason to be so wasteful ;-)