Multithreaded Geant4: Semi-automatic Transformation into Scalable Thread-Parallel Software

  • Xin Dong
  • Gene Cooperman
  • John Apostolakis
Conference paper

DOI: 10.1007/978-3-642-15291-7_27

Part of the Lecture Notes in Computer Science book series (LNCS, volume 6272)
Cite this paper as:
Dong X., Cooperman G., Apostolakis J. (2010) Multithreaded Geant4: Semi-automatic Transformation into Scalable Thread-Parallel Software. In: D’Ambra P., Guarracino M., Talia D. (eds) Euro-Par 2010 - Parallel Processing. Euro-Par 2010. Lecture Notes in Computer Science, vol 6272. Springer, Berlin, Heidelberg

Abstract

This work presents an application case study. Geant4 is a 750,000 line toolkit first designed in the mid-1990s and originally intended only for sequential computation. Intel’s promise of an 80-core CPU meant that Geant4 users would have to struggle in the future with 80 processes on one CPU chip, each one having a gigabyte memory footprint. Thread parallelism would be desirable. A semi-automatic methodology to parallelize the Geant4 code is presented in this work. Our experimental tests demonstrate linear speedup in a range from one thread to 24 on a 24-core computer. To achieve this performance, we needed to write a custom, thread-private memory allocator, and to detect and eliminate excessive cache misses. Without these improvements, there was almost no performance improvement when going beyond eight cores. Finally, in order to guarantee the run-time correctness of the transformed code, a dynamic method was developed to capture possible bugs and either immediately generate a fault, or optionally recover from the fault.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Xin Dong
    • 1
  • Gene Cooperman
    • 1
  • John Apostolakis
    • 2
  1. 1.College of Computer ScienceNortheastern UniversityBostonUSA
  2. 2.PH/SFT, CERNGeneva 23Switzerland

Personalised recommendations