Optimizing python-based ROOT I/O with PyPy's tracing just-in-time compiler
Abstract
The Python programming language allows objects and classes to respond dynamically to the execution environment. Most of this, however, is made possible through language hooks which by definition can not be optimized and thus tend to be slow. The PyPy implementation of Python includes a tracing just in time compiler (JIT), which allows similar dynamic responses but at the interpreter-, rather than the application-level. Therefore, it is possible to fully remove the hooks, leaving only the dynamic response, in the optimization stage for hot loops, if the types of interest are opened up to the JIT. A general opening up of types to the JIT, based on reflection information, has already been developed (cppyy). The work described in this paper takes it one step further by customizing access to ROOT I/O to the JIT, allowing for fully automatic optimizations.
- Publication:
-
Journal of Physics Conference Series
- Pub Date:
- December 2012
- DOI:
- 10.1088/1742-6596/396/5/052046
- Bibcode:
- 2012JPhCS.396e2046T