EEECS Summer Research Internships 2018
Proposed Project Title:
Floating point error analysis in the LLVM compiler
Hans Vandierendonck and Giorgis Georgakoudis
Scientific applications of High Performance Computing (HPC) use floating point numbers to perform computations. Floating point numbers approximate real numbers by rounding decimals with a fixed precision, which introduces rounding errors during computations. Higher precisions result in higher accuracy (lower error) but they execute slowly. The HPC community researches ways to reduce the precision of floating computations for faster execution while obtaining accurate results. Although application developers can specify the desired accuracy for the end result, they cannot exactly specify the needed precision for the computations, because errors propagate and accumulate subtly.
Recently, a set of tools (Daisy, FPTuner) has been developed to automatically analyse floating point computations with a given precision and provide rigorous bounds on errors. Through this error analysis it is possible to find the minimum precision for accurate computations. However, those tools are language specific -- Daisy and Rosa target the Scala language, FPTuner targets pseudocode -- and that limits their usability on scientific codes which are usually written in C/C++ or FORTRAN.
For this project, the intern will develop the algorithms for error analysis found in existing tools (Daisy, FPTuner) in the LLVM compiler. Specifically, the error analysis will operate on the language-agnostic Internal Representation (IR) of the compiler to compute error bounds of floating point computations. This enables error analysis on a large number of codes in any language compilable by LLVM.
Skills: C/C++, compilers, numerical analysis
- Develop state-of-the-art algorithms for error analysis in the LLVM compiler
- Use error analysis to select the precision data type for floating point numbers in LLVM
The scheme is open to all EEECS Undergraduates (apart from students on the BIT degree pathway and students who are due to graduate this summer)
Each internship will last between 6-8 weeks and will pay a weekly stipend of £250.
Accommodation and travel costs are not provided under this scheme.
Start date: 01/06/18
Duration: 8 (Weeks)
Further information available at: http://www.qub.ac.uk/schools/eeecs/Research/
|Supervisor Name:||Hans Vandierendonck|
Queens University of Belfast
|Tel:||+44 (0)28 9097 4654|