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
_______________________________________________
ImageJ-devel mailing list
ImageJ-devel@imagej.net
http://imagej.net/mailman/listinfo/imagej-devel

Reply via email to