A Toolchain for Deterministic Parallelism on an Embedded Bare-metal Platform
Abstract
Bare-metal platforms, as well as many other platforms, can make great gains in performance through parallel programs. However, running such kind of programs is often harder on bare-metal platforms. This leaves the management of parallelism on bare-metal platforms under the purview of the programmer, thus increasing the program complexity. Furthermore, this also makes the program specific to the target baremetal platform once ported. This paper presents a set of tools used to build and execute parallel programs on custom baremetal platforms as painlessly as possible. The proposed toolchain behaves like a regular compilation toolchain, taking standard C OpenMP code as input and building platform-specific, parallel bare-metal binaries as output. We evaluated the behavior of standard C OpenMP code executed on our platform both in terms of correctness and in terms of speedup. Our observations show that it is possible to preserve the performance speedup of parallel execution on a bare-metal platform, without having to modify the program source code. Furthermore, these changes allow programs to exhibit some degree of determinism, which is apropos for bare-metal platforms.
Domains
Computer Science [cs]Origin | Files produced by the author(s) |
---|