Strategies for Multicore Real-Time Thread Mapping on Linux and

Dr. Fridtjof Siebert
CTO
aicas GmbH
Haid­und­Neu­Str. 18
76131 Karlsruhe, Germany
Email: phone: fax: [email protected]
+49.721.663.968­23
+49.721.663.968­93
Strategies for Multicore Real­Time Thread Mapping
on Linux and other RTOSes
1. Abstract
Multicore systems pose the question to the developer of how to use the available cores. Linux and
RTOSes provides mechanisms to automatically distribute threads to CPU core, but there are also APIs to
manually assign threads to certain cores. Additionally, services such as garbage collection may make use
of designated cores. This talk will show scenarios and compare the performance of strategies for
mapping threads to CPUs in these systems.
2. Content
Linux with PREEMPT_RT patch and other real-time OSes provide means to restrict the OS's
scheduler to run certain threads on specific CPUs. High-level languages such as Java provide
access to these APIs as well, so they become available to the developer. This talk analysis
how application performance can be improved using these mechanisms.
Scheduling of applications on multicore systems using explicit thread to CPU mapping via CPU
affinities is a means to separate different parts of the application. This has an important
influence on real-time scheduling and on performance. Additionally, services provided by high
level languages such as automatic memory management using concurrent real-time garbage
collection can make use of additional cores and fully offload these service tasks from
processors executing application code.
This talk will present different usage scenarios and corresponding strategies for setting CPU
affinities on multicore systems and put these in contrast to leaving these decision to the OS's
scheduler on Linux and other systems. These different strategies will be compared with respect
to their impact on overall performance, schedulability analysis, and on real-time behaviour. The
integration of services such as real-time garbage collection will be discussed to give general
guidelines for CPU affinity selection for complex multicore programs.
3. Full paper
The full version of this paper is available directly from the author, please contact
[email protected] to obtain a copy.