ClangJIT: Enhancing C++ with Just-in-Time Compilation

04/18/2019
by   Hal Finkel, et al.
0

The C++ programming language is not only a keystone of the high-performance-computing ecosystem but has proven to be a successful base for portable parallel-programming frameworks. As is well known, C++ programmers use templates to specialize algorithms, thus allowing the compiler to generate highly-efficient code for specific parameters, data structures, and so on. This capability has been limited to those specializations that can be identified when the application is compiled, and in many critical cases, compiling all potentially-relevant specializations is not practical. ClangJIT provides a well-integrated C++ language extension allowing template-based specialization to occur during program execution. This capability has been implemented for use in large-scale applications, and we demonstrate that just-in-time-compilation-based dynamic specialization can be integrated into applications, often requiring minimal changes (or no changes) to the applications themselves, providing significant performance improvements, programmer-productivity improvements, and decreased compilation time.

READ FULL TEXT
research
12/12/2013

Augur: a Modeling Language for Data-Parallel Probabilistic Inference

It is time-consuming and error-prone to implement inference procedures f...
research
06/06/2023

Potential of the Julia programming language for high energy physics computing

Research in high energy physics (HEP) requires huge amounts of computing...
research
03/04/2022

Deoptless: Speculation with Dispatched On-Stack Replacement and Specialized Continuations

Just-in-time compilation provides significant performance improvements f...
research
08/07/2023

Enhancing iteration performance on distributed task-based workflows

Task-based programming models have proven to be a robust and versatile w...
research
01/21/2020

Lyceum: An efficient and scalable ecosystem for robot learning

We introduce Lyceum, a high-performance computational ecosystem for robo...
research
07/12/2019

Language Support for Adaptation: Intent-Driven Programming in FAST

Historically, programming language semantics has focused on assigning a ...
research
04/20/2021

Tuning symplectic integrators is easy and worthwhile

Many applications in computational physics that use numerical integrator...

Please sign up or login with your details

Forgot password? Click here to reset