Skip to Main Content
Modular parallel applications can be structured by parallel tasks that implement the modules. The dependence structure of such parallel applications gives rise to a scheduling problem, which is determined either statically at compile-time, e.g. by using a suitable compiler tool, or dynamically at runtime. In this article, we present a semi-dynamic execution scheme for applications structured by parallel tasks. This execution scheme combines a statically computed schedule with a dynamic load balancing that can adapt the schedule at runtime of the application. In this way, it is possible to reduce load imbalances between processor groups that may exist in the static schedule resulting from platform heterogeneity or from an imprecise cost prediction. Experimental results for several scientific applications show that the semi-dynamic execution scheme leads to lower execution times compared to a static execution on a tightly coupled heterogeneous platform.