An alternative threading model for the Insight Toolkit
Blezek D.
Mayo Clinic
logo

Please use this identifier to cite or link to this publication: http://hdl.handle.net/1926/1510
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 (http://sourceforge.net/projects/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.
Code
There is no code review at this time.

Reviews
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
yellow
Summary:

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.

Reproducibility:

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.

Interest:

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.

Cheers,
-dan

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

Statistics
backyellow
Global rating: starstarstarstarstar
Review rating: starstarstarstarstar [review]
Code rating:
Views: 1832
Downloads: 659

Send a message to the author

Information
backyellow
Paper Id: 310
Categories: Filtering, Parallelization, SMP
Keywords: Threading, Insight Toolkit, ZThread, Large Memory Filters, Multi-core, Parallelism,
Toolkit: ITK, CMake
Revision: 1 (12-21-2008)
Status: Open for public review
View license
Loading license...

Data
backyellow
Full download: .zip
Paper: view, .pdf
Source code : Download

Share
backyellow
Facebook Digg delicious StumbleUpon dzone Furl Technorati Reddit


main_flat
main_bottom
Powered by Midas