Ok, thanks for the answers, I think that I was mixing up a few of libMesh's concepts - for example, I thought that the default mesh class was parallelized (from looking at MeshBase's inheritance graph), and that the SerialMesh was a specific type. I should've looked more on the documentation. Oh, and thanks for the Knuth quote, had forgotten about it :) .
On 10/03/16 15:37, Cody Permann wrote: > Thiago, > Just to be clear, SerialMesh is read on rank 0 _only_ and distributed > in full to all of the other ranks over MPI. That's exactly what you want. > > Roy and Ben's answers are helpful if you are really planning on > scaling up and you are running out of memory and I'm talking well into > the tens of millions of elements but I'd suggest you focus on solving > your problem before you over-optimize. SerialMesh is plenty scalable > on thousands of cores. We routinely use it because it is always faster > than ParallelMesh. Yes you read that right, faster, because it > requires less communication. It's a tool for reducing memory not > increasing speed. > > > pasted1 > > Hope that helps, > Cody > > > > On Thu, Mar 10, 2016 at 7:08 AM Thiago Milanetto Schlittler > <thiago...@gmail.com <mailto:thiago...@gmail.com>> wrote: > > On 10/03/16 14:15, Kirk, Benjamin (JSC-EG311) wrote: > >> On Mar 10, 2016, at 6:59 AM, Thiago Milanetto Schlittler > <thiago...@gmail.com <mailto:thiago...@gmail.com>> wrote: > >> > >> In my code, I have a situation where each processor needs a > full > >> copy of a rather small mesh. > > One option would be to have each processor create a serial mesh > bound to the communicator comm_self and then everyone reads the > same mesh from disk. The IO step there will be a big hit on the > file system, but if that holds together otherwise this might just > work for you. How many cores and what size mesh are you expecting? > That's what I'm doing ATM, a communicator split followed by each > processor reading the mesh file. > > For now, the code I'm using reads this mesh from a file, but in the > future I'll need to build it from another mesh, distributed > through all > the processors - that's why I wanted to use an "internal" function, > instead of writing a file and then reading it. > > I'm still in the development step of the code, so I only have some > test > cases for now. The lab's cluster has a limit of 156 cores per job, and > the biggest test mesh that I have has ~7000 tetrahedrons (which is > rather small). We'd like to keep the code scalable to bigger clusters, > though. > > > ------------------------------------------------------------------------------ > Transform Data into Opportunity. > Accelerate data analysis in your applications with > Intel Data Analytics Acceleration Library. > Click to learn more. > http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 > _______________________________________________ > Libmesh-users mailing list > Libmesh-users@lists.sourceforge.net > <mailto:Libmesh-users@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/libmesh-users > ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140 _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users