Go-HEP: writing concurrent software with ease and Go
S. Binet

TL;DR
Go-HEP leverages Go's concurrency features to simplify the development of multi-threaded high energy physics software, providing an easier alternative to C++ concurrency constructs for interfacing with legacy libraries.
Contribution
This paper introduces Go-HEP, a new set of Go packages that facilitate writing concurrent high energy physics software interfacing with C++ libraries.
Findings
Go-HEP enables easier concurrent programming in HENP applications.
It provides a bridge between Go and legacy C++ physics libraries.
The approach improves developer productivity and code safety.
Abstract
High Energy and Nuclear Physics (HENP) libraries are now required to be more and more multi-thread-safe, if not multi-thread-friendly and multi-threaded. This is usually done using the new constructs and library components offered by the C++11 and C++14 standards. These components are however quite low-level and hard to use and compose. However, Go provides a set of better building blocks for tackling concurrency: goroutines and channels. This language is now used by the whole cloud industry: docker/moby, rkt, Kubernetes are obvious flagships for Go. But to be able to perform any meaningful physics analysis, one needs a set of basic libraries (matrix operations, linear algebra, plotting, I/O, ...) We present Go-HEP, a set of packages to easily write concurrent software to interface with legacy HENP C++ physics libraries.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParticle physics theoretical and experimental studies · Distributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques
