In Partial Fulfillment of the Requirements for the Degree of
Doctor of Philosophy
Will hold his pre-defense
The complexity and the diversity of today's parallel architectures and high end resources mandate significant efforts and expertise by end users and application developers to tune their code to achieve optimal performance for each particular platform. One of the main challenges of High Performance Computing is to empower current applications with methodologies and techniques which allow them to keep pace with the incredible rate of hardware and software advancement. However, achieving performance and portability at the same time are two objectives which seem very often to contradict each other. The objective of this dissertation is to present novel techniques aiming at dynamically adapting High Performance Computing applications to their execution environment. The first is based on reusing historic knowledge learned from previous optimizations to speed up the runtime tuning procedure. The limitations of this approach will be presented and a solution to overcome these drawbacks is suggested. The second consists in using advanced search algorithms to deal efficiently with very large search spaces. Last but not least, a methodology for dynamic tuning of hybrid applications is proposed.