Yampl - an inter-process communication library for ATLAS

Introduction

The ATLAS experiment on the Large Hadron Collider at CERN processes its data at more than 100 computing centers around the world. When an ATLAS application runs on a compute node, it utilizes all available CPU cores by leveraging process-based parallelism. In this mode multiple processes run simultaneously on the same machine and exchange data via Linux Interprocess Communication (IPC) mechanisms. In order to support this mode of operation, ATLAS has developed a lightweight and robust IPC library called Yampl. Yampl provides a simple C++ API for developing client-server applications in which various components can run either on the same compute node or in a distributed environment. Yampl supports a number of IPC backends for collocated (e.g. shared memory, pipe) as well as distributed (e.g. linux sockets) processes. Yampl also comes with a python interface, which is currently implemented as a separate package called python-yampl.

Task

Yampl has been serving us well over past several years. However, there is a number of requirements coming from the ATLAS computing community which require substantial code modification and refactoring:

Expected results

Requirements

Mentors

Corresponding Project

Participating Organizations