Hin zu softwarebasierter Echtzeitverarbeitung von Singles und Koinzidenzen in der Positronen-Emissions-Tomographie (PET) am Institut für Experimentelle Molekulare Bildgebung (ExMI)

 

Wissenschaftlicher Bereich
Echtzeitverarbeitung von Singles und Koinzidenzen, Positronen-Emissions-Tomographie

Kurzbeschreibung
Für den Einsatz von neuartigen PET-Scannern, die im Rahmen des HYPMED Projekts entwickelt werden [1], hat sich das Institut für Experimentelle Molekulare Bildgebung (ExMI) zum Ziel gesetzt, für seine Singles- und Koinzidenzverarbeitung softwarebasierte Ansätze zu nutzen [2,3]. Im Gegensatz zu herkömmlichen hardwarebasierten Implementierungen ermöglicht dies ein einfacheres Prototyping und das Abrufen von Scannerrohdaten, die sonst verloren gehen würden. Das Erreichen echtzeitfähiger Verarbeitungsdurchsatzraten wird jedoch mit den wachsenden Datenströmen der Scanner und der zunehmenden Komplexität moderner Positionierungsmethoden [4] zu einer Herausforderung.

Das am ExMI entwickelte Anwendungsframework nutzt das Message Passing Interface (MPI), um eine verteilte Verarbeitung eingehender Scannerdaten zu ermöglichen. Während mit der aktuellen Implementierung bereits Durchsatzraten von über 500 MB/s erreicht werden können, ist eine Skalierbarkeit auf größere Detektorsysteme wünschenswert. Da die Eingabe der Anwendungsdaten durch die physische Verbindung zwischen Erfassungsgerät und Steuerungs-PC begrenzt ist, wird eine Durchsatzrate von 1-2 GB/s angestrebt.

Für die Performanceanalyse gaben Hardware Performance Counter Informationen, die während der Programmausführung gesammelt wurden, Einblick in das dynamische Anwendungsverhalten. Wir konnten die Lokalität von Speicherzugriffen optimieren, da die gesammelten Metriken hohe Wartezeiten aufgrund von Data Translation Lookaside Buffer (TLB) Cache Misses aufzeigten. Da im Data TLB Cache Einträge für 4 KB große Seiten gespeichert werden, überschritten Speicherzugriffe diesen Bereich. Durch Sortierung einer kritischen Datenstruktur vor der Verarbeitung ihrer Einträge konnten Skalierbarkeit und Durchsatzraten deutlich verbessert werden.

Die Performance Counter Daten zeigten zusätzlich niedrige Vektorisierungsraten in der Kernelfunktion. Obwohl innerhalb der Kernelschleife ein Speicherlayout einer Struktur von Arrays verwendet wurde, erwiesen sich die Speicherzugriffe als unregelmäßig. Die Verwendung eines Arrays von Strukturen hingegen führte zwar zu einer skalaren Codeausführung, wirkte sich jedoch positiv auf die Ausführungszeit aus.

Ergebnisse
Ausgangspunkt unserer Performanceevaluierung war der ursprüngliche Quellcode, der mit MPI parallelisiert wurde, wobei ein release Build für die Kompilierung mit dem Intel 18.0 Compiler und IntelMPI 2017.4 verwendet wurde. Die stable-sort-timeline Version enthält Optimierungen zur Verbesserung der Data TLB Cache Lokalität, während vector-of-structs ein Array von Strukturen zur Verbesserung der Datenlokalität innerhalb des Kernels verwendet, wie vorstehend beschrieben.

Die folgenden Diagramme zeigen den Median der Durchsatzrate von 20 Anwendungsläufen auf einem einzelnen Intel Xeon Broadwell EP-Knoten mit 24 Kernen, einem Knoten der CLAIX2016 Partition des RWTH Compute Clusters. Die stable-sort-timeline Version beschleunigt die Ausführung um bis zu 97% im Vergleich zur ursprünglichen release Version. Außerdem wird die parallele Effizienz für 48 Prozesse von 41% auf 58% gesteigert. Weitere Laufzeitverbesserungen durch die vector-of-structs Version ergeben insgesamt eine Verdoppelung der Durchsatzrate gegenüber der ursprünglichen Version, was zu einer maximalen Durchsatzrate von 1.250 MB/s führt. Obwohl dieses Ergebnis das gesteckte Ziel, eine Durchsatzrate von über 1 GB/s zu erreichen, erfüllt, könnten sich zukünftige Kooperationen auf die Analyse weiterer kritischer Verarbeitungsschritte konzentrieren, um zusätzliche Performancesteigerungen zu erzielen.

  Graphische Darstellung der Code Version

 
 

Code-Details
Code-Zeilen: ~30.000
Programmiersprachen & -modelle: C++, MPI

Entwicklung und Kooperationen

  • Christian Wassermann, Lehrstuhl für High Performance Computing, IT Center, RWTH Aachen University
  • Thomas Dey, Physics of Molecular Imaging Systems, Institut für Experimentelle Molekulare Bildgebung (ExMI), Universitätsklinikum Aachen
  • Julian Miller, Lehrstuhl für High Performance Computing, IT Center, RWTH Aachen University

Referenzen
[1] European Institute for Biomedical Imaging Research (Ed.). 2019. Digital Hybrid Breast PET/MRI for Enhanced Diagnosis of Breast Cancer (HYPMED). Retrieved May 20, 2019 from http://hypmed.eu

[2] Benjamin Goldschmidt, David Schug, Christoph W. Lerche, André Salomon, Pierre Gebhardt, Bjoern Weissler, Jakob Wehner, Peter M. Dueppenbecker, Fabian Kiessling, and Volkmar Schulz. 2016. Software-Based Real-Time Acquisition and Processing of PET Detector Raw Data. IEEE transactions on bio-medical engineering 63, 2 (2016), 316–327. DOI:https://doi.org/10.1109/TBME.2015.2456640

[3] B. Goldschmidt, C. W. Lerche, T. Solf, A. Salomon, F. Kiessling, and V. Schulz. 2013. Towards Software-Based Real-Time Singles and Coincidence Processing of Digital PET Detector Raw Data. IEEE Transactions on Nuclear Science 60, 3 (2013), 1550–1559. DOI:https://doi.org/10.1109/TNS.2013.2252193

[4] Christoph W. Lerche, André Salomon, Benjamin Goldschmidt, Sarah Lodomez, Björn Weissler, and Torsten Solf. 2016. Maximum likelihood positioning and energy correction for scintillation detectors. Physics in medicine and biology 61, 4 (2016), 1650–1676. DOI:https://doi.org/10.1088/0031-9155/61/4/1650

[5] Weissler, Bjoern; Gebhardt, Pierre; Dueppenbecker, Peter M.; Wehner, Jakob; Schug, David; Lerche, Christoph W. et al. (2015): A Digital Preclinical PET/MRI Insert and Initial Results. In IEEE transactions on medical imaging 34 (11), pp. 2258?2270. DOI: https://doi.org/10.1109/TMI.2015.2427993