An alternative threading model for the Insight Toolkit

Please use this identifier to cite or link to this publication:
This technical note presents an alternative threading model for the Insight Toolkit. The existing ITK threading model is based on a "scatter / gather" model and divides work evenly amongst all threads. Though suitable for many filters, considerations such as memory allocation per thread are important in some classes of filters. We propose to use the ZThread ( library to explore a threading model based on an execution pool. The ZThread library is a cross platform, open source thread abstraction library loosely based on Java's threading model.
There is no code review at this time.

minus Some good ideas but without enough details by Gaetan Lehmann on 2009-01-03 15:56:51 for revision #1
starstarstarstarstar expertise: 3 sensitivity: 5

The authors describe some problems of the current threading method used in ITK, as well as some ways to solve them, especially through the usage of the ZThread library. He also describe how this could help to decrease the memory usage of the filter requirering a high amount of temporary memory.

Open Science:

The source code is provided.


I've been able to download, build and run the code with the test program. I haven't been able to validate the result produced, as the author doesn't provide the expected data. I would suggest checking the output image in the test to be sure that the produce image is the expected one.

Use of Open Source Software:

ITK and ZThread - both are fully open source.

Open source Contributions:

The code is well described but, because it changes the thread management in the end classes, it is difficult to reuse.

Code Quality :

The author says that the code should build on all reasonable platforms excepted SGI. It would have been great to compare the ZThread supported platforms and the ITK supported ones to show that ZThread can be a suitable library for ITK.


The idea presented here can be used everywhere where threading is usable in ITK, which make it highly interesting, especially with the cheap multicore architecture currently available.

Free comment :

I find the ideas in that paper very interesting. However, they lack of the necessary evidence on the usable plateforms, or on the efficiency of the ZThread usage in ITK (with timing comparisons). Also, the way to split the image in more zones than the number of theads looks very interesting, and can be useful even in non threaded environment. But I can't find a modified class which implement that in a reusable way in the contribution.

Good ideas, but they should be better implemented and tested.


Comment by Daniel Blezek: Review yellow
Hi Gaetan,

Thanks for the review. I agree, the ideas presented are a bit preliminary. I did the code several years ago, and just brushed it up enough to publish, albeit prematurely. I'm working on a more robust and well tested implementation. You can check it out in the subversion repository mentioned in the paper.


Comment by Daniel Blezek: Test Comment yellow
Are comments working?
Add a new review
Quick Comments

Download All
Download Source code

Statistics more
Global rating: starstarstarstarstar
Review rating: starstarstarstarstar [review]
Code rating:
Paper Quality: plus minus

Information more
Categories: Filtering, Parallelization, SMP
Keywords: Threading, Insight Toolkit, ZThread, Large Memory Filters, Multi-core, Parallelism
Toolkits: ITK, CMake
Export citation:


Linked Publications more
Diffeomorphic Demons Using ITK's Finite Difference Solver Hierarchy Diffeomorphic Demons Using ITK's Finite Difference Solver Hierarchy
by Vercauteren T., Pennec X., Perchant A., Ayache N.
A Label Geometry Image Filter for Multiple Object Measurement A Label Geometry Image Filter for Multiple Object Measurement
by Padfield D., Miller J.

View license
Loading license...

Send a message to the author
Powered by Midas