[petsc-dev] DMplex reader / viewers
Tim Tautges (ANL)
tautges at mcs.anl.gov
Wed Jan 22 13:06:00 CST 2014
Ok, message received. Later.
- tim
On 01/22/2014 01:00 PM, Matthew Knepley wrote:
> On Wed, Jan 22, 2014 at 12:59 PM, Tim Tautges (ANL) <tautges at mcs.anl.gov <mailto:tautges at mcs.anl.gov>> wrote:
>
> That's funny, I was thinking the same about DMPlex. :)
>
>
> Maybe you can think that on the moab-dev list.
>
> Matt
>
> - tim
>
>
> On 01/22/2014 12:45 PM, Matthew Knepley wrote:
>
> Tim,
>
> I do not consider MOAB a real alternative here.
>
> Matt
>
> On Wed, Jan 22, 2014 at 12:18 PM, Tim Tautges (ANL) <tautges at mcs.anl.gov <mailto:tautges at mcs.anl.gov>
> <mailto:tautges at mcs.anl.gov <mailto:tautges at mcs.anl.gov>>> wrote:
>
>
>
> On 01/21/2014 05:58 PM, Gorman, Gerard J wrote:
>
>
>
> I am not sure if Exodus has a good solution here. As far as I understand, exodus is inherently
> sequential, even
> when implemented with HDF5 instead of netcdf. I would also worry about third party support for
> exodus
> files using
> HDF5 as their storage format. Exodus has an parallel extension called nemesis, but I can?t
> figure out
> how how
> their concept of ghost point and cells works. The documentation on this point is really unclear.
>
>
>
> I have to admit I was kind of hoping that ExodusII folks would have come on a bit more on the parallel
> IO front (I’m
> assuming those guys also run large simulations…). That said, I see this as a two stage process: first
> integrate with
> DMPlex as that should give the high level abstraction for read/write to file; secondly extend the family of
> readers/writers. At least this way there will be some agility and interoperability between different
> formats, and it
> will not be too disruptive to the application codes when a different formats adopted.
>
>
> My impression is that the ExodusII people are working within the context of code frameworks more than disk file
> formats to do this, e.g. in Trilinos and Sierra. I don't think the ExoII file format by itself is very
> conducive to
> representing parallel, which is why Nemesis writes an annotation (though, I haven't followed ExoII developments
> closely since they went open source several years back).
>
>
>
>
> b. Do ?poor man? parallel I/O where each CPU does its own I/O, and possibly create interface
> matching
> files ? la
> nemesis or SILO. Maybe, we can save enough information on the parallel layout in order to
> easily write an
> un-partitionner as a post-processor.
>
>
> I am pretty sure that if we are writing everything in slabs to a HDF5 container we do not have to worry
> too much
> about the parallel layout although some clear optimisations are possible. In the worst case it is a
> three stage
> process of where we perform a parallel read of the connectivity, scatter/gather for continuous
> numbering, parallel
> repartitioning and subsequent parallel read of remaining data. Importantly, it is at least scalable.
>
>
> We've seen fragmentation with unstructured meshes being a problem too, and you won't escape that even with
> renumbering (though reading then migrating would address that, at the cost of some additional communication and
> possibly reading to figure out where things need to go).
>
>
>
>
> Depending on the degree of direct interaction/automation in those interactions between the mesh and
> Petsc, there
> are other options as well. One that we're developing, based on the MOAB library, can read/write
> (in serial)
> ExodusII, and also supports parallel read/write using its own HDF5-based format. Parallel I/O
> robustness
> has been
> iffy above ~16k procs and 32M-64M hex/tet elements, but for smaller problems it should work. We're
> in the
> process
> of developing direct support for going between a mesh defined with fields (called tags in MOAB) and
> petsc
> vectors.
> MOAB has pretty solid support for things like computing sharing and ghosting between procs and
> exchanging/reducing
> field values on those entities. Viz is supported either by compiling a VTK/Paraview plugin that
> pulls the
> mesh/fields through MOAB or by translating to VTK (also supported directly from MOAB); Visit also has a
> plugin you
> can enable. See http://trac.mcs.anl.gov/____projects/ITAPS/wiki/MOAB
> <http://trac.mcs.anl.gov/__projects/ITAPS/wiki/MOAB>
>
> <http://trac.mcs.anl.gov/__projects/ITAPS/wiki/MOAB
> <http://trac.mcs.anl.gov/projects/ITAPS/wiki/MOAB>> for details of MOAB; the petsc integration stuff
> is on a bitbucket branch of petsc owned by Vijay Mahadevan.
>
>
> Another reason this could be of great interest is that MOAB supports (according to the docs) geometric
> topology
> which
> could be used when adapting the mesh on a curved surface for example - another item on my which list.
>
>
> Yes, MOAB's file format can handle definitions of groupings (and relations between the groups) necessary to
> represent geometric topology. What you use for the shape evaluation of those geometric surfaces is another
> question
> though. If you're wanting to do that using a reconstructed continuous patch, MOAB has some code to do that
> too,
> though it's not as good as the latest stuff in that area (from Jiao at Stony Brook).
>
>
>
> Is it
>
> integrated to PETSc via the plex or does this essentially replace the functionality of the plex?
>
>
> It's not via plex, but I'm pretty sure all the mesh-related functionality available through plex is available
> through different API functions in MOAB.
>
>
> Why does it break
>
> down for more than 16k procs?
>
>
> It's a combination of things:
> - maximizing generality means we're using more than just 2 or 3 tables, because in addition to nodes and
> elements,
> we need groupings, whose membership determines whether a group is resident on a given processor, etc, and that
> strongly affects scaling
> - that same generality causes us to hit an MPI/IO bug on IBM (though we haven't checked on Q yet to see if
> that's
> been addressed, it might have been); we've worked with ANL I/O guys off and on on this, and hope to get
> back to that
> on Q soon
> - we do single file parallel I/O, without any 2-phase (communicate down to I/O nodes then do I/O), and that
> hits
> HDF5 pretty hard; we're working with hdfgroup to explore that
>
> We haven't done any benchmarking on a Lustre system yet, but I expect that to do worse than IBM, because of
> the many
> tables thing (my impression is that Lustre doesn't handle frequent metadata reads well)
>
>
> is it just a case that Lustre gets hammered? What magic sauce is used by high order FEM
>
> codes such as nek500 that can run on ~1m cores?
>
>
> Those codes go for a much more restricted I/O data case, which allows them to specialize and do their own
> implementation of parallel I/O. So, Nek5000 has its own implementation of poor man's parallel, they repeat
> vertices
> in the file that are logically the same (shared between hexes), and they don't really do subsets. I think
> that's
> great to do if you have to, but I'm still hoping for more support in that direction from general libraries.
>
>
>
> libmesh also maintains its own DMlibmesh, but I'm not sure how solid their support for large mesh /
> parallel
> I/O is
> (but they've been working on it recently I know).
>
>
>
> Are there any other formats that we should be considering? It’s a few years since I tried playing about
> with CGNS -
> at the time its parallel IO was non-existent and I have not seen it being pushed since. XDMF looks
> interesting as it
> is essentially some xml metadata and a HDF5 bucket. Is anyone championing this?
>
>
> Don't know about XDMF. I know there's been a bunch of work on SILO and its parallel performance fairly
> recently (3
> or 4 yrs ago) and it's used heavily inside LLNL.
>
> - tim
>
> Cheers Gerard
>
>
> --
> ==============================____============================__==__====
>
> "You will keep in perfect peace him whose mind is
> steadfast, because he trusts in you." Isaiah 26:3
>
> Tim Tautges Argonne National Laboratory
> (tautges at mcs.anl.gov <mailto:tautges at mcs.anl.gov> <mailto:tautges at mcs.anl.gov
> <mailto:tautges at mcs.anl.gov>>) (telecommuting from UW-Madison)
> phone (gvoice): (608) 354-1459 <tel:%28608%29%20354-1459> <tel:%28608%29%20354-1459> 1500
> Engineering Dr.
> fax: (608) 263-4499 <tel:%28608%29%20263-4499> <tel:%28608%29%20263-4499> Madison, WI 53706
>
>
>
>
>
> --
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any
> results to which their experiments lead.
> -- Norbert Wiener
>
>
> --
> ==============================__==============================__====
> "You will keep in perfect peace him whose mind is
> steadfast, because he trusts in you." Isaiah 26:3
>
> Tim Tautges Argonne National Laboratory
> (tautges at mcs.anl.gov <mailto:tautges at mcs.anl.gov>) (telecommuting from UW-Madison)
> phone (gvoice): (608) 354-1459 <tel:%28608%29%20354-1459> 1500 Engineering Dr.
> fax: (608) 263-4499 <tel:%28608%29%20263-4499> Madison, WI 53706
>
>
>
>
> --
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any
> results to which their experiments lead.
> -- Norbert Wiener
--
================================================================
"You will keep in perfect peace him whose mind is
steadfast, because he trusts in you." Isaiah 26:3
Tim Tautges Argonne National Laboratory
(tautges at mcs.anl.gov) (telecommuting from UW-Madison)
phone (gvoice): (608) 354-1459 1500 Engineering Dr.
fax: (608) 263-4499 Madison, WI 53706
More information about the petsc-dev
mailing list