[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Distributed visualization anyone?



"Eray Ozkural (exa)" wrote:

> Hi Adam,
>
> On Thu, Apr 12, 2001 at 02:31:07PM -0400, Adam C Powell IV wrote:
> > Greetings,
> >
> > I think most of us do distributed computation, but what about
> > distributed visualization?
> >
>
> About unstructured grids: I think you can't do that with PetSC because
> PetSC has no idea of sparsity.

Hmm, I'm not quite sure what you mean by "sparsity".  PETSc has some very nice
distributed sparse matrix solvers, though it really doesn't have an object which
is dynamically resizable on each node, which would be helpful for an
unstructured grid.  This is one reason I haven't done the communications part
yet, that is, sending all of the triangle data to node 0.

On the other hand, one can create the triangle data on each node, then create a
vector with the different sizes on each node to handle the data, send everything
to node 0, and destroy the vector.  It's inelegant, but should work.  I think
I'll try that.  I'll try to put up 0.1 this weekend before implementing this
(just got some showstopper automake/PETSc issues settled), then do this for 0.2.

> A friend of mine did parallel volume
> visualization on irregular grids but that requires a communication
> volume model which is a hypergraph and a hypergraph partitioner to
> reach the desired effect; anything else would be wasting the hardware.

You're absolutely right.  PETSc has an interface with ParMETIS for this
purpose.  I don't know much about it or its data structures at this point, but
plan to learn soon, and maybe package ParMETIS for Debian, and make at least
petsc2.0.29-dev depend on it...

(Not that PETSc is the only thing out there, but I don't know of other
Newton-Krylov solvers which scale so well, and with it I don't have to learn MPI
or PVM. :-)

> Making that real-time for a timestepping simulation would be a great
> challenge.

What's interesting is that the time required to do a single (semi-)implicit
timestep can be much greater than the time required to repartition the mesh!
See for example a writeup of a Lagrangian-Eulerian model of blood cell
deformation in a flow field at:

http://www.cs.cmu.edu/~oghattas/papers/sc2000/sc2000.pdf

They actually repartition during each timestep!  (Using a much more primitive
algorithm than ParMETIS.)  But visualizing this should be pretty trivial, just
loop through the elements to generate triangles, just as I currently loop
through the finite difference grid as if it were made of linear hexahedral
elements.  Unless I'm misunderstanding what your friend did...

By the way, Drake, thanks for the CUMULVS tip, I found the web page at:

http://www.epm.ornl.gov/cs/cumulvs.html

The fault tolerance and automatic recovery part sounds very interesting.  But
I don't think the visualization part is quite what I'm looking for.  It sounds
like their approach to visualization is to slurp *all* the data from the cluster
onto one node (or even to multiple viewer front-ends!), then have some
visualization package digest it all and display it.  I'd like to push as much
visualization processing as possible out to the large array of computation nodes
where the data live, then sip as little data as possible back to one node to
display it.  Otherwise, your massive supercluster has moved forward several
timesteps in the time your at-most-dual-CPU visualization station has taken to
display one!

HARNESS (http://www.epm.ornl.gov/harness/) is also interesting, but the only
visualization reference on their homepage is a link to CUMULVS...

Thanks for the rapid feedback!

-Adam P.

GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

              Welcome to the best software in the world today cafe!



Reply to: