@inproceedings{FritzSchmidMottok, author = {Fritz, Florian and Schmid, Michael and Mottok, J{\"u}rgen}, title = {Accelerating Real-Time Applications with Predictable Work-Stealing}, series = {Architecture of computing systems - ARCS 2020: 33rd international conference, Aachen, Germany, May 25-28, 2020, proceedings}, booktitle = {Architecture of computing systems - ARCS 2020: 33rd international conference, Aachen, Germany, May 25-28, 2020, proceedings}, editor = {Brinkmann, Andr{\´e}}, doi = {10.1007/978-3-030-52794-5_18}, pages = {241 -- 255}, abstract = {Modern compute architectures often consist of multiple CPU cores to achieve their performance, as physical properties put a limit on the execution speed of a single processor. This trend is also visible in the embedded and real-time domain, where programmers are forced to parallelize their software to keep deadlines. Additionally, embedded systems rely increasingly on modular applications, that can easily be adapted to different system loads and hardware configurations. To parallelize applications under these dynamic conditions, often dispatching frameworks like Threading Building Blocks (TBB) are used in the desktop and server segment. More recently, Embedded Multicore Building Blocks (EMB2) was developed as a task-based programming solution designed with the constraints of embedded systems in mind. In this paper, we discuss how task-based programming fits such systems by analyzing scheduler implementation variants, with a focus on classic work-stealing and the libraries TBB and EMB2. Based on the state of the art we introduce a novel resource-trading concept that allows static memory allocation in a work-stealing runtime holding strict space and time bounds. We conduct benchmarks between an early prototype of the concept, TBB and EMB2, showing that resource-trading does not introduce additional runtime overheads, while unfortunately also not improving on execution time variances.}, language = {en} } @inproceedings{SchmidFritzMottok, author = {Schmid, Michael and Fritz, Florian and Mottok, J{\"u}rgen}, title = {Parallel Programming in Real-Time Systems}, series = {Architecture of computing systems - ARCS 2019, 32nd international conference, Copenhagen, Denmark, May 20-21, 2019, proceedings}, booktitle = {Architecture of computing systems - ARCS 2019, 32nd international conference, Copenhagen, Denmark, May 20-21, 2019, proceedings}, publisher = {VDE-Verlag}, address = {Berlin}, abstract = {The enormous amounts of data modern real-time systems have to process lead to expensive, long-lasting calculations. In order to manage those computations in a timely manner, parallel task models have gained a lot of popularity lately. However, parallel programming can be very cumbersome and verbose. Other computationally intensive sectors have dealt with parallel computing for decades and have accumulated their experience in the development of parallel frameworks. Examples of well known parallel runtime systems are OpenMP, Intel Threading Building Blocks (TBB) and Microsoft Parallel Pattern Library (PPL). These runtime systems allow developers to enhance parallelism in their applications in a straightforward fashion. However, those parallel frameworks and the patternbased interfaces they provide might not be easily applicable in real-time systems. In this paper, we investigate the use of parallel programming frameworks in time-critical systems. On that account, we discuss considerations for the design of real-time applications that make use of such parallel runtime systems. Furthermore, we evaluate three library-based frameworks from different computing sectors, namely Intel Threading Building Blocks, Embedded Multicore Building Blocks (EMBB) and High Performance ParalleX (HPX), by conducting benchmarks of various parallel algorithms on an embedded multicore architecture.}, language = {en} } @article{SchmidFritzMottok, author = {Schmid, Michael and Fritz, Florian and Mottok, J{\"u}rgen}, title = {Fine-Grained Parallel Applications in Real-Time Multiprocessor Systems}, series = {Journal of Systems Architecture}, volume = {124}, journal = {Journal of Systems Architecture}, publisher = {Elsevier}, doi = {10.1016/j.sysarc.2022.102393}, abstract = {Lately, parallel task models have received much attention in the development of real-time multiprocessor systems, as they allow highly compute-intensive tasks to have shorter deadlines which is very much required in modern reactive systems. However, missing modularity and portability can make parallel programming a cumbersome endeavor. As a consequence, compute-intensive sectors in the desktop and server segment have relied on parallelism frameworks such as Intel Threading Building Blocks, Cilk and OpenMP. These parallelism frameworks, however, are optimized for decent average case performance and consequently, do not meet the strict requirements imposed by real-time systems. In this paper, we present a proof-of-concept parallelism framework which was implemented in particular for soft real-time systems and having tight timing and safety requirements of such critical systems in mind. The proposed runtime system implements static memory allocation in a work-stealing environment that conforms to the strict space and tight probabilistic time bounds of work-stealing schedulers. Furthermore, we evaluate the performance of this framework by conducting multiprogrammed benchmarks on a real-time embedded multicore architecture.}, language = {en} } @article{SchmidFritzMottok, author = {Schmid, Michael and Fritz, Florian and Mottok, J{\"u}rgen}, title = {Fine-grained parallelism framework with predictable work-stealing for real-time multiprocessor systems}, series = {Journal of Systems Architecture}, volume = {124}, journal = {Journal of Systems Architecture}, number = {March}, publisher = {Elsevier}, doi = {10.1016/j.sysarc.2022.102393}, abstract = {Lately, parallel task models have received much attention in the development of real-time multiprocessor systems, as they allow highly compute-intensive tasks to have shorter deadlines which is very much required in modern reactive systems. However, missing modularity and portability can make parallel programming a cumbersome endeavor. As a consequence, compute-intensive sectors in the desktop and server segment have relied on parallelism frameworks such as Intel Threading Building Blocks, Cilk and OpenMP. These parallelism frameworks, however, are optimized for decent average case performance and consequently, do not meet the strict requirements imposed by real-time systems. In this paper, we present a proof-of-concept parallelism framework which was implemented in particular for soft real-time systems and having tight timing and safety requirements of such critical systems in mind. The proposed runtime system implements static memory allocation in a work-stealing environment that conforms to the strict space and tight probabilistic time bounds of work-stealing schedulers. Furthermore, we evaluate the performance of this framework by conducting multiprogrammed benchmarks on a real-time embedded multicore architecture.}, language = {en} }