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

Reply via email to