Skip to content

Switch to native ParaView MPI parallelization with pvserver #4

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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