Speaker
Wim Lavrijsen
(Lawrence Berkeley National Lab. (US))
Description
The Python programming language brings a dynamic, interactive environment to physics analysis. With PyPy high performance can be delivered as well, when making use of its tracing just in time compiler (JIT) and cppyy for C++ bindings, as cppyy is able to exploit common HEP coding patterns. For example, ROOT I/O with cppyy runs at speeds equal to that of optimized, hand-tuned C++.
Python does not, however, offer an easy way to exploit computational parallelization, because of the global interpreter lock (GIL). In PyPy this could be solved using software transactional memory (STM). With STM in place, the patterns in cppyy can be employed to automatically parallelize user code when the interpreter deems them, and the underlying libraries, safe. The work described in this paper takes the existing ROOT I/O patterns in cppyy and shows how they can be parallelized using STM.
Primary author
Wim Lavrijsen
(Lawrence Berkeley National Lab. (US))