Parallel reading/visualization of vtu files

I have a large irregular grid that I can only read in single threaded. I thought that storing it as vtu or pvtu would later allow me to read in and visualize the data in parallel, but it does not. I do see all the pvserver processes, but only one process does all the work. If I create a wavelet, I do see that now all threads are working.
Is there a possibility to either read in one single vtu file properly so that the workload is shared, or can I create a pvtu file from a single thread that has more than the _0.vtu object in it?
Thanks and Cheers,

Hi Niklas,

With unstructured grid, the distribution of the data is not free and has to be done explicitly.
One way to do that is to use the D3 filter, like this :

  • Run pvserver in parallel
  • Run paraview, connect to pvserver
  • Open your .vtu file, Apply, it is not distributed
  • Add a D3 filter, Apply (can take some time) , dataset is now distributed
  • Save as a .pvtu file

Reopening this .pvtu file on a parallel paraview will give you a (statically) distributed dataset, while working with D3 directly will give you a dynamically distributed dataset but take more time each time you want to distribute your dataset.

1 Like

Thank you for your help!

Cheers, Niklas

@mwestphal Nice trick. Obvious, but I haven’t seen it before. I will write it up as a Tip and Trick. Thanks.