Reusing Just-in-Time Compiled Code
Identifikátory výsledku
Kód výsledku v IS VaVaI
<a href="https://www.isvavai.cz/riv?ss=detail&h=RIV%2F68407700%3A21240%2F23%3A00371228" target="_blank" >RIV/68407700:21240/23:00371228 - isvavai.cz</a>
Výsledek na webu
<a href="https://doi.org/10.1145/3622839" target="_blank" >https://doi.org/10.1145/3622839</a>
DOI - Digital Object Identifier
<a href="http://dx.doi.org/10.1145/3622839" target="_blank" >10.1145/3622839</a>
Alternativní jazyky
Jazyk výsledku
angličtina
Název v původním jazyce
Reusing Just-in-Time Compiled Code
Popis výsledku v původním jazyce
Most code is executed more than once. If not entire programs then libraries remain unchanged from one run to the next. Just-in-time compilers expend considerable effort gathering insights about code they compiled many times, and often end up generating the same binary over and over again. We explore how to reuse compiled code across runs of different programs to reduce warm-up costs of dynamic languages. We propose to use speculative contextual dispatch to select versions of functions from an off-line curated code repository. That repository is a persistent database of previously compiled functions indexed by the context under which they were compiled. The repository is curated to remove redundant code and to optimize dispatch. We assess practicality by extending Ř, a compiler for the R language, and evaluating its performance. Our results suggest that the approach improves warmup times while preserving peak performance.
Název v anglickém jazyce
Reusing Just-in-Time Compiled Code
Popis výsledku anglicky
Most code is executed more than once. If not entire programs then libraries remain unchanged from one run to the next. Just-in-time compilers expend considerable effort gathering insights about code they compiled many times, and often end up generating the same binary over and over again. We explore how to reuse compiled code across runs of different programs to reduce warm-up costs of dynamic languages. We propose to use speculative contextual dispatch to select versions of functions from an off-line curated code repository. That repository is a persistent database of previously compiled functions indexed by the context under which they were compiled. The repository is curated to remove redundant code and to optimize dispatch. We assess practicality by extending Ř, a compiler for the R language, and evaluating its performance. Our results suggest that the approach improves warmup times while preserving peak performance.
Klasifikace
Druh
J<sub>SC</sub> - Článek v periodiku v databázi SCOPUS
CEP obor
—
OECD FORD obor
10201 - Computer sciences, information science, bioinformathics (hardware development to be 2.2, social aspect to be 5.8)
Návaznosti výsledku
Projekt
<a href="/cs/project/GX23-07580X" target="_blank" >GX23-07580X: Rigorous Engineering of Data Analysis Pipelines (RiGiD)</a><br>
Návaznosti
P - Projekt vyzkumu a vyvoje financovany z verejnych zdroju (s odkazem do CEP)
Ostatní
Rok uplatnění
2023
Kód důvěrnosti údajů
S - Úplné a pravdivé údaje o projektu nepodléhají ochraně podle zvláštních právních předpisů
Údaje specifické pro druh výsledku
Název periodika
Proceedings of the ACM on Programming Languages (PACMPL)
ISSN
2475-1421
e-ISSN
2475-1421
Svazek periodika
7
Číslo periodika v rámci svazku
OOPSLA2
Stát vydavatele periodika
US - Spojené státy americké
Počet stran výsledku
22
Strana od-do
1176-1197
Kód UT WoS článku
001087279100043
EID výsledku v databázi Scopus
2-s2.0-85175001675