How does the paraview distribute tasks to each node during parallel rendering?

Recently, I have been using the function of Paraview parallel rendering. I am very interested in the distribution of parallel tasks. I am currently reading the source code, but I want to understand this aspect accurately.
Thank you in advance for telling me.

https://www.paraview.org/Wiki/Setting_up_a_ParaView_Server
https://vtk.org/Wiki/VTK/MultiPass_Rendering_With_IceT

You will have to be more specific if you want a specific answer.

I want to know how Paraview divides model data during parallel rendering and distributes them to each parallel rendering core, which should be responsible for part of the final rendered image.

It depends if your data is structured or unstructured.

For structured data, the extent or simply distributed spatially
For unstructured data, nothing is done by default, so it depends of the reader you are using or if you are using filters to redistribute data.

So paraview uses IceT to distribute data to a rendering server for parallel rendering? I don’t know if my understanding is wrong.

Like @mwestphal said, you are asking very general questions about a complex system that can behave differently depending on the circumstances.

I note that you said “distribute data to a rendering server”. That is implying that there is a separate data server and render server. Although you can set up ParaView servers in this way, this is a very archaic feature that almost no one uses (with the possible exception of using tiled displays). Usually, there is just one “paraview server” that functions for reading data, running filters, and parallel rendering.

IceT usually does not distribute data. The data distribution is usually determined by the reader, and the reader usually bases the distribution on the layout of the data in files. IceT just renders data locally where it has been partitioned and then combines images together.

That said, there are filters that can explicitly change the distribution of the data. Also, if you render something transparent (like a volume rendering), then the rendering might redistribute the data using a k-d tree.

If you haven’t yet, I suggest reading through the chapter in The ParaView Guide on remote and parallel visualization (Chapter 14 in the latest version). The most relevant part starts in the “Understanding parallel processing” section (14.5) to the end of that chapter.