Adaptive Task Scheduling Using Low-Level Runtime APIs and Machine Learning



Journal Title

Journal ISSN

Volume Title



The introduction of task constructs in the OpenMP programming model offers a user a new way to specifying parallelism within applications while making the OpenMP runtime responsible for scheduling tasks for parallel execution. The ability to observe performance for OpenMP tasking programs and scheduling schemes has been a challenge due to the lack of performance interface standards in the runtime layer. In this work, we propose new tasking profiling interfaces compatible with the OMPT (OpenMP Performance Tools) interface. We describe the integration of these interfaces into a profiling tool that we have developed and show how we employ them to analyze various OpenMP task scheduling strategies on exploiting data locality, maintaining load balance, and minimizing overhead costs. We use this analysis to build a portable and adaptive framework (APARF). The framework comprises of proposed low-level tasking runtime interfaces, a profiling tool, and a hybrid machine learning model. We show that APARF can effectively be used to select an optimum task scheduling scheme for any given application with low profiling costs. Our hybrid model predicts the best scheduling strategy for a variety of unseen applications with an average accuracy of 93% while maintaining a 100% training accuracy. Compared to Intel, PGI and GNU compilers, APARF achieved better performance in most cases. When applied to different unseen benchmark applications, an average performance enhancement of 25% was obtained as compared to the default configuration. APARF was evaluated using a real application (Molecular Dynamics), where we achieved up to 31% performance improvement.



Adaptive scheduling, Machine learning, OpenMP Performance Tools (OMPT), Collector APIs, OpenMP Tasks, Similarity analysis


Portions of this document appear in: Qawasmeh, Ahmad, Abid Malik, Barbara Chapman, Kevin Huck, and Allen Malony. "Open source task profiling by extending the openmp runtime api." In International Workshop on OpenMP, pp. 186-199. Springer, Berlin, Heidelberg, 2013.