Proceedings of the 10th and 8th Workshop on Parallel Programming and Run-Time Management Techniques for Many-Core Architectures 2019
DOI: 10.1145/3310411.3310415
|View full text |Cite
|
Sign up to set email alerts
|

Continuous Program Optimization via Advanced Dynamic Compilation Techniques

Abstract: In High Performance Computing, it is often useful to fine tune an application code via recompilation of specific computational intensive code fragments to leverage runtime knowledge. Traditional compilers rarely provide such capabilities, but solutions such as libVC exist to allow C/C++ code to employ dynamic compilation. We evaluate the impact of the introduction of Just-in-Time compilation in a framework supporting partial dynamic (re-)compilation of functions to provide continuous optimization in high perfo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2019
2019
2019
2019

Publication Types

Select...
1

Relationship

1
0

Authors

Journals

citations
Cited by 1 publication
(2 citation statements)
references
References 21 publications
(10 reference statements)
0
2
0
Order By: Relevance
“…In the ANTAREX toolflow, the capability of providing several versions of the same function is not limited to static features. LIBVERSIONINGCOMPILER [14,15] (abbreviated LIBVC) is an open-source C++ library designed to support the dynamic generation and versioning of multiple versions of the same compute kernel in a HPC scenario. It can be used to support continuous optimization, code specialization based on the input data or on workload changes, or to dynamically adjust the application, without the burden of a full just-in-time compiler.…”
Section: Code Versioningmentioning
confidence: 99%
See 1 more Smart Citation
“…In the ANTAREX toolflow, the capability of providing several versions of the same function is not limited to static features. LIBVERSIONINGCOMPILER [14,15] (abbreviated LIBVC) is an open-source C++ library designed to support the dynamic generation and versioning of multiple versions of the same compute kernel in a HPC scenario. It can be used to support continuous optimization, code specialization based on the input data or on workload changes, or to dynamically adjust the application, without the burden of a full just-in-time compiler.…”
Section: Code Versioningmentioning
confidence: 99%
“…The subscriber registers a callback function to the given topic which is called every time a new message is received. To let LARA take advantage of this monitoring mechanism we have designed the Collector API, which allow the 1 aspectdef mARGOt_Aspect 2 / * Input: TargetFunctionCall * / 3 input targetCallName end 4 / * mARGOt configuration * / MargotCFun.LE, 0.03, 'error'); 12 13 / * optimization problem * / 14 var problem = targetBlock.newState('defaultState'); 15 problem.maximizeMetric('throughput'); 16 problem.subjectTo('my_error_goal'); 17 18 / * generate the information needed 19 for enhancing the application code * / 20 codegen = MargotCodeGen.fromConfig(config, $targetCallName); initialization of the Collector component associated with a specific topic that keeps an internal state of the remote sensor updated. This internal state can then be queried asynchronously by the Collector API to gather its value.…”
Section: Monitoringmentioning
confidence: 99%