®®®® SIIA Público

Título del libro: 2014 Ieee Nuclear Science Symposium And Medical Imaging Conference, Nss/mic 2014
Título del capítulo: Recon++: A concurrent, object-oriented API for statistical image reconstruction

Autores UNAM:
ARTURO ISMAEL IRIARTE VALVERDE;
Autores externos:

Idioma:
Inglés
Año de publicación:
2016
Palabras clave:

Algorithms; Computational linguistics; Containers; Image coding; Image processing; Medical imaging; Multiprocessing systems; Object oriented programming; Technology transfer; Concurrency; Forward-and-backward; Multiple threads; Object orientation; Object oriented design; Shared memory multiprocessor; Statistical image reconstruction; Statistical reconstruction; Image reconstruction


Resumen:

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. © 2014 IEEE.


Entidades citadas de la UNAM: