[Paraview] making vtkGaussianSplatter multi-threaded

Dr. Roman Grothausmann grothausmann.roman at mh-hannover.de
Mon Jan 12 09:58:47 EST 2015


Dear David,


Many thanks for Your reply and explanations.
On 12/01/15 14:55, David Gobbi wrote:
> On Mon, Jan 12, 2015 at 3:56 AM, Dr. Roman Grothausmann
> serializing the writes.  Hence, in order for vtkGaussianSplatter to be properly
> multi-threaded, each thread must write to its own block of output memory.  After
> the splatting is done these must be composited together.

So a simple way to make vtkGaussianSplatter multi-threaded would be to partition 
the input points into n groups and run vtkGaussianSplatter on each group, 
resulting in n fully sized outputs, which have to be combine together 
afterwards. The problem is that this will need n times the memory.

> I wrote a multi-threaded splatting filter once (for ultrasound reconstruction),
> and in that case I divided my input points such that each thread would write to
> different (but adjacent) memory regions within the output.  It performed well
> but wasn't completely thread-safe, because it was possible for memory collisions
> to occur on the border between the regions.

Would it help and be possible to only lock access in these border regions?

Many thanks again.
Roman

-- 
Dr. Roman Grothausmann

Tomographie und Digitale Bildverarbeitung
Tomography and Digital Image Analysis

Institut für Funktionelle und Angewandte Anatomie, OE 4120
Medizinische Hochschule Hannover
Carl-Neuberg-Str. 1
D-30625 Hannover

Tel. +49 511 532-9574


More information about the ParaView mailing list