EFDA-JET-CP(12)03/02
Parallel Task Management Library for MARTe
The Multithreaded Application Real-Time executor (MARTe) is a real-time framework with increasing popularity and support in the thermonuclear fusion community. It allows to run modular code in a multi-threaded environment leveraging on the current multi-core processor (CPU) technology. Oneapplication that relies on the MARTe framework is the JET tokamak WALL Load Limiter System (WALLS). It calculates and monitors the temperature on metal tiles, Plasma Facing Components (PFCs) that can melt or flake if their temperature gets too high when exposed to power loads. One of the main time consuming tasks inWALLS is the calculation of thermal diffusion models in real-time. These models tend to be described by very large state-space models thus making them perfect candidates for parallelisation. MARTe's traditional approach for task parallelisation is to split the problem into several Real- Time Threads, each responsible for a self-contained sequential execution of an input-tooutput chain. This is usually possible, but it might not always be practical for algorithmic or technical reasons. Also, it might not be easily scalable with an increase of the available number of CPU cores. The WorkLibrary introduces a "GPU-like approach" of splitting work among the available cores of modern CPUs that is (i) straightforward to use in an application, (ii) scalable with more available cores and all of this (iii) without code rewrite or recompilation. The first part of this article explains the motivation behind the library, its architecture and implementation. The second part presents a real application for WALLS, a parallel version of a large state-space model describing the 2D thermal diffusion on a JET tile.