A Library for Explicit Dynamic Code Generation and Optimisation in C++
نویسندگان
چکیده
The TaskGraph Library is a C++ library for dynamic code generation, which combines specialisation with dependence analysis and loop restructuring. A TaskGraph represents a fragment of code which is constructed and manipulated at run-time, then compiled, dynamically linked and executed. TaskGraphs are initialised using macros and overloading, which forms a simplified, C-like sub-language with first-class arrays and no pointer arithmetic. Once a TaskGraph has been constructed, we can analyse dependence structure and perform optimisations. In this paper, we present the design of the TaskGraph library, present several sample applications for this library which demonstrate its use for runtime code specialisation and optimisation and discuss related work and future applications and developments of the library.
منابع مشابه
Runtime Code Generation in C++ as a Foundation for Domain-Specific Optimisation
The TaskGraph Library is a C++ library for dynamic code generation, which combines specialisation with dependence analysis and loop restructuring. A TaskGraph represents a fragment of code which is constructed and manipulated at runtime, then compiled, dynamically linked and executed. TaskGraphs are initialised using macros and overloading, which forms a simplified, C-like sub-language with fir...
متن کاملNumerical Study of Entropy Generation for Natural Convection in Cylindrical Cavities
In this paper, an enhanced computational code was developed using finite-volume method for solving the incompressible natural convection flow within the cylindrical cavities. Grids were generated by an easy method with a view to computer program providing. An explicit integration algorithm was applied to find the steady state condition. Also instead of the conventional algorithms of SIMPLE, SIM...
متن کاملAn Active Linear Algebra Library Using Delayed Evaluation and Runtime Code Generation
Active libraries can be defined as libraries which play an active part in the compilation (in particular, the optimisation) of their client code. This paper explores the idea of delaying evaluation of expressions built using library calls, then generating code at runtime for the particular compositions that occur. We explore this idea with a dense linear algebra library for C++. The key optimis...
متن کاملDESOLA: An active linear algebra library using delayed evaluation and runtime code generation
Active libraries can be defined as libraries which play an active part in the compilation, in particular, the optimisation of their client code. This paper explores the implementation of an active dense linear algebra library by delaying evaluation of expressions built using library calls, then generating code at runtime for the compositions that occur. The key optimisations in this context are...
متن کاملSecond Generation IMO Intact Stability Vulnerability Criteria and its Application to ships Navigating in Persian Gulf and Oman Sea
Second generation intact stability criteria for few past years had been under development by International Maritime Organization (IMO). Since the draft proposed amendments shall be amended to International code on Intact Stability (IS code 2008), new regulations shall enter into force for ships of length more than 24 meter. Generally second generation intact stability criteria (SGISC) refers to...
متن کامل