Local rendering with distributed server has unexepected slow data transfer
I'm evaluating performance of paraview connected to a distributed server while using local rendering, and see strange timings.
With a non distributed server, I have the following timings:
Local Process
Render (use_lod: 0), (use_distributed_rendering: 0), (use_ordered_compositing: 0)
PropertiesPanel::Apply, 10.2346 seconds
ParaViewPipelineControllerWithRendering::UpdatePipelineBeforeDisplay, 1.21052 seconds
ensight::GatherInformation, 0.033298 seconds
ParaViewPipelineControllerWithRendering::Show, 0.113602 seconds
ParaViewPipelineControllerWithRendering::Show::CreatingRepresentation, 0.103988 seconds
RenderView::Update, 8.6957 seconds
Still Render, 0.016978 seconds
Render (use_lod: 0), (use_distributed_rendering: 0), (use_ordered_compositing: 0)
OpenGL Dev Render, 0.013784 seconds
Render (use_lod: 0), (use_distributed_rendering: 0), (use_ordered_compositing: 0)
Server
Execute RESULTS_FLUID_DOMAIN.case id: 11395, 1.1599 seconds
RenderView::Update, 8.6957 seconds
vtkPVView::Update, 8.69333 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11665, 8.69184 seconds
vtkPVGeometryFilter::RequestData, 8.69146 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 8.69145 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 8.6914 seconds
Dataserver sending to client, 0.083179 seconds
With a distributed server (np 7) I have the following timings:
Local Process
Render (use_lod: 0), (use_distributed_rendering: 0), (use_ordered_compositing: 0)
PropertiesPanel::Apply, 29.4644 seconds
ParaViewPipelineControllerWithRendering::UpdatePipelineBeforeDisplay, 1.29055 seconds
ensight::GatherInformation, 0.038226 seconds
ParaViewPipelineControllerWithRendering::Show, 0.169909 seconds
ParaViewPipelineControllerWithRendering::Show::CreatingRepresentation, 0.159873 seconds
RenderView::Update, 2.19899 seconds
vtkSMRepresentationProxy::GetRepresentedDataInformation, 0.053188 seconds
Still Render, 0.825762 seconds
Render (use_lod: 0), (use_distributed_rendering: 0), (use_ordered_compositing: 0)
OpenGL Dev Render, 0.798412 seconds
Render (use_lod: 0), (use_distributed_rendering: 0), (use_ordered_compositing: 0)
Server, Process 0
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 0.993534 seconds
RenderView::Update, 2.19898 seconds
vtkPVView::Update, 2.1923 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16787 seconds
vtkPVGeometryFilter::RequestData, 2.16759 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16757 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 0.819794 seconds
Dataserver gathering to 0, 11.5162 seconds
Dataserver sending to client, 4.57621 seconds
Server, Process 1
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 0.989365 seconds
RenderView::Update, 2.19898 seconds
vtkPVView::Update, 2.19229 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16785 seconds
vtkPVGeometryFilter::RequestData, 2.1676 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16758 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 0.861162 seconds
Dataserver gathering to 0, 1.99363 seconds
Server, Process 2
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 1.03633 seconds
RenderView::Update, 2.19896 seconds
vtkPVView::Update, 2.19227 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16783 seconds
vtkPVGeometryFilter::RequestData, 2.1675 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16748 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 0.839645 seconds
Dataserver gathering to 0, 2.00524 seconds
Server, Process 3
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 1.0776 seconds
RenderView::Update, 2.19895 seconds
vtkPVView::Update, 2.19227 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16783 seconds
vtkPVGeometryFilter::RequestData, 2.1675 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16748 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 0.835754 seconds
Dataserver gathering to 0, 2.00733 seconds
Server, Process 4
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 1.07274 seconds
RenderView::Update, 2.19898 seconds
vtkPVView::Update, 2.1923 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16788 seconds
vtkPVGeometryFilter::RequestData, 2.16759 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16757 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 2.00731 seconds
Dataserver gathering to 0, 2.06397 seconds
Server, Process 5
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 1.17574 seconds
RenderView::Update, 2.19897 seconds
vtkPVView::Update, 2.19229 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16782 seconds
vtkPVGeometryFilter::RequestData, 2.1675 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16749 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 2.16714 seconds
Dataserver gathering to 0, 2.08352 seconds
Server, Process 6
Execute RESULTS_FLUID_DOMAIN.case id: 11397, 1.24761 seconds
RenderView::Update, 2.19898 seconds
vtkPVView::Update, 2.19231 seconds
Execute RESULTS_FLUID_DOMAIN.case(UnstructuredGridRepresentation)/SurfaceRepresentation id: 11667, 2.16788 seconds
vtkPVGeometryFilter::RequestData, 2.16759 seconds
vtkPVGeometryFilter::RequestDataObjectTree, 2.16757 seconds
vtkPVGeometryFilter::ExecuteCompositeDataSet, 1.67692 seconds
Dataserver gathering to 0, 2.09996 seconds
The one line that seems strange is this one:
Dataserver gathering to 0, 11.5162 seconds
It does not make much sense that tranfering the external surface between servers (a few Mb at most) would take that long.
Steps to reproduce
- run distributed pvserver
- run paraview
- set remote render threshold to max
- connect to pvserver
- Open timer log, refresh, clean
- open RESULT_FLUID_DOMAIN.case (12Gb: https://send.kitware.io/download.php?id=91&token=FKgMmHj91Zsn1rdkft3p8A07DK30jY2W)
- Apply
- refresh timer log
Edited by Mathieu Westphal (Kitware)