Cargando…

Optimizing Python-based ROOT I/O with PyPy's Tracing JIT

<!--HTML-->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 include...

Descripción completa

Detalles Bibliográficos
Autor principal: Lavrijsen, Wim
Lenguaje:eng
Publicado: 2012
Materias:
Acceso en línea:http://cds.cern.ch/record/1460911
_version_ 1780925267978485760
author Lavrijsen, Wim
author_facet Lavrijsen, Wim
author_sort Lavrijsen, Wim
collection CERN
description <!--HTML-->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 automatic selective reading, judicious caching, and buffer tuning.
id cern-1460911
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2012
record_format invenio
spelling cern-14609112022-11-02T22:23:31Zhttp://cds.cern.ch/record/1460911engLavrijsen, WimOptimizing Python-based ROOT I/O with PyPy's Tracing JITComputing in High Energy and Nuclear Physics (CHEP) 2012Conferences<!--HTML-->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 automatic selective reading, judicious caching, and buffer tuning.oai:cds.cern.ch:14609112012
spellingShingle Conferences
Lavrijsen, Wim
Optimizing Python-based ROOT I/O with PyPy's Tracing JIT
title Optimizing Python-based ROOT I/O with PyPy's Tracing JIT
title_full Optimizing Python-based ROOT I/O with PyPy's Tracing JIT
title_fullStr Optimizing Python-based ROOT I/O with PyPy's Tracing JIT
title_full_unstemmed Optimizing Python-based ROOT I/O with PyPy's Tracing JIT
title_short Optimizing Python-based ROOT I/O with PyPy's Tracing JIT
title_sort optimizing python-based root i/o with pypy's tracing jit
topic Conferences
url http://cds.cern.ch/record/1460911
work_keys_str_mv AT lavrijsenwim optimizingpythonbasedrootiowithpypystracingjit
AT lavrijsenwim computinginhighenergyandnuclearphysicschep2012