Partitioning-Based Scheduling of OpenMP Task Systems With Tied Tasks

OpenMP is a popular programming framework in both general and high-performance computing and has recently drawn much interest in embedded and real-time computing. Although the execution semantics of OpenMP are similar to the DAG task model, the constraints posed by the OpenMP specification make them significantly more challenging to analyze. A <monospace>tied</monospace> task is an important feature in OpenMP that must execute on the same thread throughout its entire life cycle. A previous work <xref ref-type="bibr" rid="ref1">[1]</xref> succeeded in analyzing the real-time scheduling of <monospace>tied</monospace> tasks by modifying the Task Scheduling Constraints (TSCs) in OpenMP specification. In this article, we also study the real-time scheduling of OpenMP task systems with <monospace>tied</monospace> tasks but without changing the original TSCs. In particular, we propose a partitioning-based algorithm, P-EDF-omp, by which the <monospace>tied</monospace> constraint can be automatically guaranteed as long as an OpenMP task system can be successfully partitioned to a multiprocessor platform. Furthermore, we conduct comprehensive experiments with both synthetic workloads and established OpenMP benchmarks to show that our approach consistently outperforms the work in <xref ref-type="bibr" rid="ref1">[1]</xref> —even without modifying the TSCs.

[1]  Chenyang Lu,et al.  Parallel Real-Time Scheduling of DAGs , 2014, IEEE Transactions on Parallel and Distributed Systems.

[2]  Matthias S. Müller,et al.  SPEC OMP2012 - An Application Benchmark Suite for Parallel Systems Using OpenMP , 2012, IWOMP.

[3]  Luca Benini,et al.  Enabling fine-grained OpenMP tasking on tightly-coupled shared memory clusters , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[4]  Per Stenström,et al.  Timing-Anomaly Free Dynamic Scheduling of Task-Based Parallel Applications , 2016, 2017 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).

[5]  Nan Guan,et al.  Calculating Response-Time Bounds for OpenMP Task Systems with Conditional Branches , 2019, 2019 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS).

[6]  Allen D. Malony,et al.  Integrated Measurement for Cross-Platform OpenMP Performance Analysis , 2014, IWOMP.

[7]  Charles U. Martel,et al.  On non-preemptive scheduling of period and sporadic tasks , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[8]  Nan Guan,et al.  Decomposition-Based Real-Time Scheduling of Parallel Tasks on Multicores Platforms , 2020, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Chenyang Lu,et al.  Global EDF scheduling for parallel real-time tasks , 2015, Real-Time Systems.

[10]  Chenyang Lu,et al.  Blocking Analysis for Spin Locks in Real-Time Parallel Tasks , 2018, IEEE Transactions on Parallel and Distributed Systems.

[11]  David S. Johnson,et al.  Near-optimal bin packing algorithms , 1973 .

[12]  Eduardo Quiñones,et al.  Response-time analysis of DAG tasks under fixed priority scheduling with limited preemptions , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[13]  John M. Mellor-Crummey,et al.  A new approach for performance analysis of openMP programs , 2013, ICS '13.

[14]  Eduardo Quiñones,et al.  OpenMP and timing predictability: A possible union? , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[15]  Dirk Schmidl,et al.  Performance Measurement for the OpenMP 4.0 Offloading Model , 2014, Euro-Par Workshops.

[16]  Xianfeng Li,et al.  Chronos: A timing analyzer for embedded software , 2007, Sci. Comput. Program..

[17]  Samuel Thibault,et al.  Evaluation of OpenMP Dependent Tasks with the KASTORS Benchmark Suite , 2014, IWOMP.

[18]  Alejandro Duran,et al.  Barcelona OpenMP Tasks Suite: A Set of Benchmarks Targeting the Exploitation of Task Parallelism in OpenMP , 2009, 2009 International Conference on Parallel Processing.

[19]  Chenyang Lu,et al.  A real-time scheduling service for parallel tasks , 2013, 2013 IEEE 19th Real-Time and Embedded Technology and Applications Symposium (RTAS).

[20]  Michael L. Dertouzos,et al.  Control Robotics: The Procedural Control of Physical Processes , 1974, IFIP Congress.

[21]  Eduard Ayguadé,et al.  DaSH: a benchmark suite for hybrid dataflow and shared memory programming models: with comparative evaluation of three hybrid dataflow models , 2014, Conf. Computing Frontiers.

[22]  Wang Yi,et al.  Real-Time Scheduling and Analysis of OpenMP Task Systems with Tied Tasks , 2017, 2017 IEEE Real-Time Systems Symposium (RTSS).

[23]  Giorgio C. Buttazzo,et al.  SOMA: an OpenMP toolchain for multicore partitioning , 2016, SAC.

[24]  Wang Yi,et al.  Benchmarking OpenMP programs for real-time scheduling , 2017, 2017 IEEE 23rd International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA).

[25]  Girija J. Narlikar,et al.  Scheduling threads for low space requirement and good locality , 1999, SPAA '99.

[26]  Alejandro Duran,et al.  The Design of OpenMP Tasks , 2009, IEEE Transactions on Parallel and Distributed Systems.

[27]  Maria A. Serrano,et al.  A lightweight OpenMP4 run-time for embedded systems , 2016, 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC).

[28]  Fiona Reid,et al.  A Microbenchmark Suite for OpenMP Tasks , 2012, IWOMP.

[29]  Matteo Frigo,et al.  The implementation of the Cilk-5 multithreaded language , 1998, PLDI.

[30]  Luca Benini,et al.  An OpenMP Compiler for Efficient Use of Distributed Scratchpad Memory in MPSoCs , 2012, IEEE Transactions on Computers.

[31]  Eduardo Quiñones,et al.  Towards an OpenMP Specification for Critical Real-Time Systems , 2018, IWOMP.

[32]  Alejandro Duran,et al.  Evaluation of OpenMP Task Scheduling Strategies , 2008, IWOMP.

[33]  Chenyang Lu,et al.  Multi-core real-time scheduling for generalized parallel task models , 2011, 2011 IEEE 32nd Real-Time Systems Symposium.

[34]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[35]  K Lakshmanan,et al.  Scheduling Parallel Real-Time Tasks on Multi-core Processors , 2010, 2010 31st IEEE Real-Time Systems Symposium.

[36]  Daniele Cesarini,et al.  Unleashing Fine-Grained Parallelism on Embedded Many-Core Accelerators with Lightweight OpenMP Tasking , 2018, IEEE Transactions on Parallel and Distributed Systems.

[37]  Sanjoy K. Baruah Improved Multiprocessor Global Schedulability Analysis of Sporadic DAG Task Systems , 2014, 2014 26th Euromicro Conference on Real-Time Systems.

[38]  Eduardo Quiñones,et al.  Timing characterization of OpenMP4 tasking model , 2015, 2015 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[39]  Giorgio C. Buttazzo,et al.  A static scheduling approach to enable safety-critical OpenMP applications , 2017, 2017 22nd Asia and South Pacific Design Automation Conference (ASP-DAC).

[40]  J. Mark Bull,et al.  A Microbenchmark Suite for Mixed-Mode OpenMP/MPI , 2009, IWOMP.

[41]  Eduardo Quiñones,et al.  Response-Time Analysis of DAG Tasks Supporting Heterogeneous Computing , 2018, 2018 55th ACM/ESDA/IEEE Design Automation Conference (DAC).

[42]  Alejandro Duran,et al.  Support for OpenMP tasks in Nanos v4 , 2007, CASCON.