From: Vijay S. M. <vi...@gm...> - 2008-10-29 19:26:08
|
John, Thanks for the quick reply ! I was just reading about MPI File Read functions (http://www-unix.mcs.anl.gov/mpi/www/) and I'm thinking that this is possible without too much of a hassle. If we can make the mesh readers take the stringstream as input instead of IFstream, there is absolutely nothing that needs to change. Based on the attributes, the partition can be ascertained and each processor needs to read only those elements and nodes. But, I guess it is easier said than done ! I will look into the MeshCommunication class and see if that will provide a quick fix for my problems. I'll keep you updated if I get enough time to try out the previous option. Cheers, Vijay On Wed, Oct 29, 2008 at 2:16 PM, John Peterson <jwp...@gm...> wrote: > On Wed, Oct 29, 2008 at 2:10 PM, Vijay S. Mahadevan <vi...@gm...> wrote: > >> 1) My question then is whether it is difficult to make the reading >> parallel so that all the processors get the mesh points, elements and >> mesh_data ? But then how would this translate when you partition the >> mesh using ParMetis ? > > Unless you do it "right" reading in parallel can still be a > bottleneck. One good way to do it seems to be to read from N > different mesh files in parallel. This is the approach taken by the > NemesisIO code, which is still under development. There was some talk > about parallel IO using the VTK stuff as well, but I don't know much > about the details. > >> 2) Or if it is easier to read just using Processor 0, as the comment >> suggests, how exactly would you broadcast this information to all the >> other processors ? What am I missing here ? > > I think you are talking about MeshCommunication::broadcast. This > should get done for you automatically in cases where it needs to be > done. > > -- > John > |