Abstract

Development of the second generation JANA2 multi-threaded event processing framework is ongoing through an LDRD initiative grant at Jefferson Lab. The framework is designed to take full advantage of all cores on modern many-core compute nodes. JANA2 efficiently handles both traditional hardware triggered event data and streaming data in online triggerless environments. Development is being done in conjunction with the Electron Ion Collider development. Anticipated to be the next large scale Nuclear Physics facility constructed. The core framework is written in modern C++ but includes an integrated Python interface. The status of development and summary of the more interesting features are presented.

Highlights

  • JANA2 is a second generation multi-threaded event processing framework being developed at Jefferson Lab

  • JANA2 is a near complete rewrite of the framework utilizing more modern C++ features (e.g. C++11 and later). It builds upon the knowledge gained from over a decade of experience with JANA by keeping the features that worked well while implementing new features to enhance its performance in a modern HENP environment

  • JANA keeps track of boundaries in run number and/or event number where calibration constants may change. When it sees that a JFactory object crosses one of these boundaries, it activates a callback in the JFactory so that it can refresh any internal data members

Read more

Summary

Introduction

JANA2 is a second generation multi-threaded event processing framework being developed at Jefferson Lab. The first generation JANA[1] framework has been successfully in use by the GlueX[2] experiment at JLab for several years. The first generation JANA[1] framework has been successfully in use by the GlueX[2] experiment at JLab for several years It was one of the first frameworks written with multi-threading as a primary requirement. JANA2 is a near complete rewrite of the framework utilizing more modern C++ features (e.g. C++11 and later). It builds upon the knowledge gained from over a decade of experience with JANA by keeping the features that worked well while implementing new features to enhance its performance in a modern HENP environment. A description of the core architecture is given followed by a section describing some new features in JANA2, a section on performance, and a brief section on the schedule

Core Multi-threading Architecture
NUMA awareness
Python API
Streaming Support
Schedule and Outlook
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.