GGrantIndex
← Search

CAREER: Dynamic Run-Time Optimization of Parallel, Adaptive and Hybrid Applications

$409,576FY2009CSENSF

University Of Houston, Houston TX

Investigators

Abstract

CAREER: Dynamic Run-Time Tuning of Parallel, Adaptive and Hybrid Applications The complexity of today?s High Performance Computing systems mandate significant efforts by end users and application developers to tune their code for each platform. Processor and node architecture, network interconnect and the software stack all expose a significant number of parameters which influence the performance of an application. These parameters are furthermore often correlated, which further complicates the predictability of the performance of any application. The most popular tuning approach as of today applies a static tuning for the most time consuming operations of the code, i.e. the performance of different versions of the same operation is evaluated for certain problem sizes and the best performing version is chosen for the subsequent executions of the application. However, this approach is not practical for adaptive applications. These applications vary the problem sizes at run-time, e.g. by locally refining the computational mesh based on certain error criteria. Thus, the problem sizes are typically unknown in advance and therefore expensive operations cannot be tuned for the relevant problem sizes. This project focuses on run-time tuning of parallel, adaptive applications utilizing either a distributed memory parallel programming model such as MPI or a hybrid shared memory/distributed memory parallelization strategy using OpenMP and MPI. The focus of the project is on introducing novel run-time selection algorithms which incorporate knowledge gathered from previous executions, algorithms from factorial design theory for very large parameter spaces and advanced algorithms from machine learning. The project also targets the development of a recommendation system, which presents a human readable form of experiences gathered from an optimization run in order to reuse them in other applications. This proposal tackles one of the most pressing and fundamental problems in High Performance Computing. Code portability and maintainability on one side and performance on the other side often seem to be contradicting goals. The project develops the fundamental knowledge required to develop performance portable parallel code and thus avoid the necessity to maintain multiple versions of the same code for different platforms.

View original record on NSF Award Search →