Title :
Recon++: A concurrent, object-oriented API for statistical image reconstruction
Author :
Fernando R. Rannou;Cristian Giha;Ana Iriarte
Author_Institution :
Departamento Ingenieria Informatica, Universidad de Santiago de Chile, Av. Ecuador 3659, CHILE
Abstract :
We present a concurrent, object-oriented toolkit for statistical image reconstruction, intended for rapid coding and testing of new parallel algorithms in shared-memory multiprocessors. The toolkit is specified at the interface level and concurrency (or parallelism) is introduced by classes having their own threads of execution. There are two classes in this API that can be concurrent, namely the one implementing projection operations and the one implementing algorithms. By inheriting from the former class, a programmer can easily write a single-threaded algorithm equipped with parallel forward and backward projectors. Alternatively, the algorithm can be parallel, executed by multiple threads, but with single-threaded projectors. The design decouples several features that are usually found intertwined in other software. For instance, the projector class is completely independent from the container class which is used to store system matrices. Also, the algorithm does not need to know how the system matrix is represented in memory or how its elements are retrieved. The connection between algorithm and container is the iterator class, which defines a particular method to access a container. To implement the API we have chosen to use uC++, an object-oriented language with native concurrency support at the class level. Thus, programmers do not need to deal with thread creation and control, which is usually the source of errors and non-determinism in programs. The combination of object-oriented design patterns together with a concurrent, object-oriented language results in a robust and efficient toolkit for image reconstruction. We have implemented classes for EMML and MAP algorithms with Compressed Row Format sparse matrices. Experiments show that despite the natural OO overhead, the code achieves almost linear speedup in a multiprocessor.
Keywords :
"Image reconstruction","Concurrent computing","Containers","Software algorithms","Parallel processing","Algorithm design and analysis","Libraries"
Conference_Titel :
Nuclear Science Symposium and Medical Imaging Conference (NSS/MIC), 2014 IEEE
DOI :
10.1109/NSSMIC.2014.7430792