[Paraview] How to use Paraview to visualize large volume data in real-time on shared-memory supercomputer?

Moreland, Kenneth kmorel at sandia.gov
Sat Nov 15 15:02:43 EST 2008


Aaron,

You're on the right track.  In order to use ParaView on a shared memory
machine, you need to run pvserver with mpirun.  It might seem weird to use a
distributed memory program on a shared memory machine, but some basic tests
we have done suggest that it is actually a pretty efficient way of running
the program.

I think the rendering issues you are seeing are that all of the processes
are using the same GPU.  Not only is this inefficient, but the rendering
windows are probably stomping on each other's memory, giving you the invalid
results.

To launch multiple processes using different GPU's, you need to tell the
different processes to use different X windows displays.  That basically
means that you will need to instruct mpirun to run different commands for
different processes.  How you do this tends to be dependent on the MPI
implementation you are using, and each implementation often has multiple
ways to do it.  For our OpemMPI version of mpirun, I use something like
this:

mpirun -np 1 ./pvserver -display :0.0 : -np 1 ./pvserver -display :0.1

I don't know how to do it with MPICH, but I know there is a way to do it.

-Ken


On 11/13/08 5:07 PM, "Biao She" <shebiao at gmail.com> wrote:

> Hello.
>
> I am kind of new to Paraview. Hope this question isn't a stupid one.
> I can access to a shared-memory SGI Altix 4700 supercomputer. It has 6 GPUs
> and 64 cpus. I have successfully installed the latest version of
> paraview(3.4.0) on it.
> To my understanding, if I ssh to the supercomputer and type the following
> command, I can use one GPU to do the rendering job in the server end:
> DISPLAY=:0.0 mpirun -np 1 ./pvserver
> The problem comes if I want to use multiple GPUs to render a large data, say
> Image data from CT(about 1G) in real-time. How can I do it? Do I need to
> manually assgin other GPUs(:0.1, for instance) to cpus? On cluster, I know
> it's not a problem coz each cpu has its own gpu.
>
> I also have tried to use multiple CPUs at the server end, for example:
> DISPLAY=:0.0 mpirun -np 4 ./pvserver
> However, the rendering results aren't correct in this case. No matter what
> data I opened, the rendering results were always some garbages(lots of dots
> with different color).  The garbages appeared roughly where the data should
> be. I have no idea about the reason for this. My client end is a windows
> machine and the server is a linux supercomputer. Could that be a problem or I
> simply can't use one GPU for multiple CPUs?
>
> I have tried to get paraview work on the supercomputer for a very long time,
> and I got really frustrated. Any of your help would be highly appreciated!
>
> Aaron
>



   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmorel at sandia.gov
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel





More information about the ParaView mailing list