AbstractMany of the principal high-performance libraries are written in assembly language. When a new CPU architecture appears on the market, it takes time for the developers of high performance libraries to gain access to it and to port their kernels to that system. During that period performance for a wide range of applications suffers.
To provide a suitable middle ground, the author proposes using a tailored subset of the optimization options built into the available compilers. The available options are not ideal for all software programs on all architectures, and in the general case compilation times need to be kept short. However, scientific computing kernels are so heavily used that an expensive one-off
compilation can be afforded.
Searching the large number of available compiler flags by hand would be extremely time consuming, and difficult to do without an intimate understanding of the hardware, the compiler of choice and the software being compiled. Instead, this search is best automated, and that is what the author has attempted to do in the form of a tool referred to as OptSearch.
This tool reads in a number of options from a configuration file: These nclude the list of compiler flags to search through, the application to be compiled, a clean-up routine, and two sets of tests to run; one for accuracy, one for performance.
After investigation of a number of optimisation algorithms, a robust search method (PSO ) is selected and used as a number of the compilations are liable to end in an error from the compiler. The end result is a set of compiler flags that deliver better performance than the defaults for that particular piece of code on that hardware. While this will not rival expert hand-coding, it is observed to deliver significant performance improvements over using -O3.
To date, OptSearch has been used with the reference BLAS  and the HPL benchmark . In the future the author intends to target other libraries fundamental to scientific computing.
|Date of Award||4 Sep 2019|
|Supervisor||Guy McCusker (Supervisor) & James Davenport (Supervisor)|