[Paraview-developers] How does ParaView schedule render tasks among all the processes?

Biddiscombe, John A. biddisco at cscs.ch
Tue Feb 14 13:30:04 EST 2012


Replying back to list in case anyone else needs to know …


1)      It doesn’t. Pieces pass though data parallel pipelines, each is separate. User defined filters can send data between processes (and some built in filters in paraview do too), but each process will render its own piece and the merging is done as a compositing step. Look up sort last rendering or check the paraview wiki for papers on the subject for more info.

2)      Mostly on the server side. If client side rendering is enabled, geometry can be gathered at the last step and sent to the client for rendering.

3)      The process is complicated. Start by looking at the code for OrderedCompositing (search for vtkOrderedCompositor/er?), each representation may behave differently depending on how the final image needs to be created. See Ken Moreland’s IceT paper, Sort Last Rendering, and all the other papers on the wiki
JB

From: Jie Chen [mailto:chenjie.hust at gmail.com]
Sent: 14 February 2012 19:05
To: Biddiscombe, John A.
Subject: Re: [Paraview-developers] How does ParaView schedule render tasks among all the processes?

John,

Thanks for your answer. It's much clear to understand how ParaView splits a file for parallel processing. However, I still have questions about merging the split pieces into a final result:

1)How does ParaView merge the split pieces together after the pieces have been processed by their pipelines?

2)Does the mergence occur in the server-side or the client-side?

3)Which function call would trigger this mergence? Just give me some clue, I can find myself.

Thanks.

Jie

On Tue, Feb 14, 2012 at 11:43 AM, Biddiscombe, John A. <biddisco at cscs.ch<mailto:biddisco at cscs.ch>> wrote:
Jie


1)      each reader/source must split pieces itself. If I am a vtkSTUFFreader, when I execute, I am given a piece number or an extent (depending on datatype), based on this information, I read the part of the data that I was told to (the reader has to work out how to get the piece it was asked for)

2)      The number of pieces is currently always the same as the number of MPI ranks (but it doesn’t have to be). A reader can set MAX_PIECES to -1 initially before the description in 1) above happens, which tells the pipeline that it is allowed to split the data into as many pieces as it wants. Be careful that the pipeline also uses pieces to represent streaming data pieces, which is confusing, I am not considering this case here. data paralle pieces are not quite the same as streaming pieces. we’re talking data parallel now.

3)      assignment of piece number is essentially MPI rank
Hope this helps

JB

From: paraview-developers-bounces at paraview.org<mailto:paraview-developers-bounces at paraview.org> [mailto:paraview-developers-bounces at paraview.org<mailto:paraview-developers-bounces at paraview.org>] On Behalf Of Jie Chen
Sent: 14 February 2012 17:38
To: paraview-developers at paraview.org<mailto:paraview-developers at paraview.org>
Subject: [Paraview-developers] How does ParaView schedule render tasks among all the processes?


Hi all,

I have installed the ParaView-3.12.0 on a cluster with MPI enabled. And I use it in a client-server mode.(pvserver is running on the cluster)

I'm curious about how ParaView process a task parallelly. The following is my questions:
(1) How does ParaView split a file into multi-pieces for parallel processing, and how to combine the results together?  Is there any special process which handles these splitting and combining works?

(2) What policy does ParaView use when it computes the number of pieces?

(3)What policy does ParaView use when it assign the pieces to all the processes?

I'm just beginning to look into the ParaView source code. Hope somebody can give me some clue.

Thanks

Jie


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20120214/616c743b/attachment-0001.htm>


More information about the Paraview-developers mailing list