[ImageJ-devel] [fiji-devel] Imglib2: using threadpools in core algorithms

Jean-Yves Tinevez jean-yves.tinevez at pasteur.fr
Fri Dec 6 02:24:37 CST 2013


Hi all

Ok thank you very much this is inspiring. 

I see the discussion is still going on and that we (the team) did not reach a definitive conclusion yet. 

I just want to add a question item to the discussion: 
Sometimes you need to have information on the multithreading configuration that has been set upstream.

For instance, taking the example of TrackMate spot detection:

Each frame of a movie can be processed concurrently: I generate a task for each frame, and can feed this task to any interface we are discussing right now. For this, I do not need to know how many threads are allocated to the service: it will decide how to process the tasks I generated. 

By there are many algorithms in imglib2 that can process a single image in a multithreaded way, by splitting it into small pieces. For instance, you can compute the Gauss convolution on 2 threads, and it will split the source image in 2. For this, the algorithm needs to have some info on the "multitasking resources" available right? If you have 24 workers, and that each worker receives one frame to segment, the segmenter needs to know it is unwise to split the source image over several extra workers. No?

How is this achieved in real world applications?
best
jy


More information about the ImageJ-devel mailing list