EPJ Web of Conferences (Jan 2020)
MarlinMT - parallelising the Marlin framework
Abstract
Marlin is the event processing framework of the iLCSoft [1] ecosystem. Originally developed for the ILC more than 15 years ago, it is now widely used also by other communities, such as CLICdp, CEPC and many test beam projects such as CALICE, LCTPC and EU-Telescope. While Marlin is lightweight and flexible it was originally designed for sequential processing only. With MarlinMT we have now evolved Marlin for parallel processing of events on multi-core architectures based on multi-threading. We report on the necessary developments and issues encountered, within Marlin as well as with the underlying LCIO [4] event data model (EDM). A focus will be put on the new parallel event processing (PEP) scheduler. We conclude with first performance estimates, like the application speedup and a discussion on histogram handling in parallel applications.