Parallel rendering - better partition

Dear Experts,

i have large number of independent mesh files, and want to use parallel rendering to improve performance. But i am not sure how to do data partition will result better rendering performance:

The first time i just distribute mesh files according to file index, like if there 100 files need distribute to two CPUs, put 0~50 mesh to CPU 1, 51~100 mesh to CPU 2;

However, i realized it may have better performance when distribute mesh according to its spatial location, like put upper half mesh on CPU 1, and lower half mesh on CPU 2.

In my situation, i prefer option 1, because i can do further data process more conveniently, but if option 2 has much better performance benefit, i may have to choose option 2.

Any suggestions?

Best Regards


Parallel rendering is a complex topic and so your question is hard to answer with certainty. However, in my experience although redistributing the data can potentially speed up parallel rendering, in practice I have found any potential speed up to be not worth the cost of repartitioning. That said, you can try repartitioning anyway by running the D3 filter.

On a side note, I notice that you mentioned using 2 CPUs to do parallel rendering. I would expect the 2 CPU parallel rendering to actually run slower than rendering on a single CPU. The issue at hand is that, like many parallel algorithms, engaging ParaView’s parallel version of rendering has a big initial overhead that is not incurred in the single CPU case, and I would not expect the benefit of adding one CPU to outweigh the cost of organizing the rendering across multiple processors.

Thank you Kenneth for your answers!!
What about your suggestion when need render very large data set?
Currently, we are evaluating our plugins to make it be able to consume very large data with high performance, any suggestion is helpful to us!

Best Regards,

I guess that depends on what you mean by “very large data set.” ParaView has been demonstrated on trillions of elements while running on many thousands of processors. In terms of data size, ParaView can scale (theoretically) indefinitely. But the distributed-memory parallel rendering itself can only get so fast in terms of frame rate.

That said, lots of folks have worked hard on making rendering faster in ParaView using techniques with hardware rendering as well as ray-casting techniques. If you are looking for ways to improve the rendering with your system and data, I suggest opening a new topic with a question specific to your situation.

Hi Kenneth, Many thanks for your information and suggestions!!