Runtime Decisions for a Just-in-Time Compilation System
In a nushell
- Implement a decision unit for a runtime and just-in-time (JIT) system to offload computation to an accelerator
- Develop an application runtime analysis, profiling and monitoring framework
- Evaluate gains in performance/energy consumption and overheads of the decision unit in different scenarios
Summary
Heterogeneous systems comprise of multiple accelerators (CPU+GPU, CPU+FPGA, etc.) to which computational intensive parts of an application (hotspots) can be offloaded; to either improve the performance or energy efficiency of the system. Identifying the hotspots correctly and deciding when and where to offload them plays a critical role for the performance/energy efficiency of the system.
We provide
- State-of-the-art heterogenious node with multiple accelerators
- A high performance computing cluster
- Good work atmosphere
- Optionally: work area in student lab
You should bring
- Good C/C++ knowledge
- Motivated, able to work autonomously
- Optimally: LLVM experience
- Optimally: Experience with profiling and estimation techniques
References
[1]: M.Damschen; H.Riebler; G.Vaz, and C.Plessl, Transparent offloading of computational hotspots from binary code to xeon phi
[2]: G. Vaz; H. Riebler; T. Kenter and C. Plessl, Potential and methods for embedding dynamic offloading decisions into application code