Skip to content

Switch to native ParaView MPI parallelization with pvserver #4

@unkaktus

Description

@unkaktus

Currently, we spawn multiple subprocesses of pvpython which process their block of frames. It requires the management code (multiprocessing pool + subprocess), and it is not super scalable.
I am convinced that the parallelization implemented in pvserver is faster, but at least one would not have to maintain separate code for job management.

In this case, the architecture would look like this:

  • Starting pvserver with mpirun (e.g. on HPC cluster)
  • Connecting from gwpv to pvserver via TCP using Connect() method
  • Rendering frames sequentially, and pvserver takes care (mostly) of parallelizing the rendering

It would require having a parallel-aware data source, which I believe is not hard to implement. ParaView says in the documentation, that with the D3 filter even non-parallel-aware data sources can benefit from using pvserver.

Here is the documentation page: https://docs.paraview.org/en/latest/ReferenceManual/parallelDataVisualization.html#paraview-architecture

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions