VTK Visualiser Speedup

Are there any good compile options tha would help in making the gui more responsive when 1000 or more particles are kept?

Best Regards

Not that I’m aware of, but I am interested in your use case.

I take it the geometry is not a problem. It’s just the number of trajectories? I will try it.

John

1 Like

Looking forward to it. Even fairly large geometries are quite smooth. It’s the accumulated events that make it laggy.

Hi Jason

I’ve tried a few examples. Currently exampleB4a, with

/gun/particle gamma
/gun/energy 10 GeV
/run/beamOn 100

I get a view covered in trajectories and they rotate fine, no lag.

If I repeat but with

/gun/energy 100 GeV

it hangs, even after the run finishes, in

void G4VtkPolydataPipeline::Modified()
{
  actor->Modified();
  polydata->Modified();
  mapper->Update();         <-----Hangs here
  G4VVtkPipeline::Modified();
}

In other words, it works very well indeed, or, at some cliff edge, not at all. I do not experience any in-between “lagginess”.

Note that VTK displays only events kept by the vis manager, at most 100 (by default), even if you ask for more.

I will consult the VTK experts.

John

I used endofeventaction accumulate 1000 to view more events simultaneously however it does indeed look like you have many tracks. I do like the vtk interface, I am just wondering if it could be sped up since there are alot of compile options perhaps with cuda though I didnt manage to make that work.

Ok it should not hang as you report @Allison I think that legitimately looks like a bug.

@Jason_Jonson VTK almost in all circumstances needs OpenGL access to the graphics hardware. So there are no obvious compile options for VTK that would speed it up. CUDA is for using the GPU to accelerate other calculations. CUDA in general is not used to speed up visualisation. In general with discrete GPUs VTK has very high performance. So to understand your performance issue, could you please tell us

  • Operating system (also if this is inside a virtualisation layer WSL, virtual box etc)
  • GPU
  • VTK version installed
  • Geant4 version
  • Geant4 example you are trying to visualise

This is probably enough information to understand your performance issue.

Hi,
Native Debian12,
1060 (quite old),
9.3.1,
G4 11.3 debug build
Namely Hadr01. Though many other that work perfectly other than when over 1000 events are kept. Its not really the end of the world, I just wanted to overlay some process coordinates on to the vis output to see if they matched and I experienced this slow down, though everything is fine in paraview.

@Jason_Jonson

Ok I think I found the two issues that caused the slow down for large numbers of tracks.

The first problem there is a render trajectory points a little spheres, which was lazy of my early in the implementation of the VTK driver. Removing this speeds things up dramatically. A 2D circle needs to be rendered properly and not a complex sphere mesh.

Secondly. I “over” update the rendering pipelines. This is where @Allison noticed the hang. These update commands are not required and I was being overly cautious. They can be removed, but I need to do some more testing before submitting a change.

Needless to say these changes will have to wait until the next release.

1 Like