Reducing Global Schedulers Complexity through Runtime System Decoupling

Global schedulers are components used in parallel solutions, specially in dynamic applications, to optimize resource usage. Nonetheless, their development is a cumbersome process due to necessary adaptations to cope with the programming interfaces and abstractions of runtime systems. This paper proposes a model to dissociate schedulers from runtime systems to lower software complexity. Our model is based on the scheduler breakdown into modular and reusable concepts that better express the scheduler requirements. Through the use of meta-programming and design patterns, we were able to achieve fully reusable workload-aware scheduling strategies with up to 63% fewer lines of code with negligent run time overhead.

[1]  Vivek Sarkar,et al.  A Pluggable Framework for Composable HPC Scheduling Libraries , 2017, 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW).

[2]  Philippe Olivier Alexandre Navaux,et al.  An Efficient Algorithm for Communication-Based Task Mapping , 2015, 2015 23rd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[3]  Jean-François Méhaut,et al.  Design methodology for workload‐aware loop scheduling strategies based on genetic algorithm and simulation , 2017, Concurr. Comput. Pract. Exp..

[4]  Laxmikant V. Kalé,et al.  Energy-efficient computing for HPC workloads on heterogeneous manycore chips , 2015, PMAM@PPoPP.

[5]  Barbara Chapman,et al.  Using OpenMP - portable shared memory parallel programming , 2007, Scientific and engineering computation.

[6]  Erich Strohmaier,et al.  High-performance computing: clusters, constellations, MPPs, and future directions , 2003, Comput. Sci. Eng..

[7]  Laxmikant V. Kale,et al.  Programming Petascale Applications with Charm , 2007 .

[8]  Christian Pérez,et al.  A low level component model easing performance portability of HPC applications , 2012, Computing.

[9]  James H. Anderson,et al.  Bringing theory into practice: A userspace library for multicore real-time scheduling , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[10]  Christian Terboven,et al.  OpenACC - First Experiences with Real-World Applications , 2012, Euro-Par.

[11]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[12]  Torsten Hoefler,et al.  An Overview of Topology Mapping Algorithms and Techniques in High‐Performance Computing , 2014, HiPC 2014.

[13]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[14]  COMPONENT-BASED SOFTWARE PRODUCT LINE ENGINEERING , 2013 .

[15]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[16]  Barry W. Boehm,et al.  A SLOC Counting Standard , 2007 .

[17]  Shinpei Kato,et al.  ExSched: An External CPU Scheduler Framework for Real-Time Systems , 2012, 2012 IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.

[18]  Emmanuel Jeannot,et al.  Process Placement in Multicore Clusters:Algorithmic Issues and Practical Techniques , 2014, IEEE Transactions on Parallel and Distributed Systems.