1/** 2 3\mainpage Overview 4 5The Embedded Multicore Building Blocks (EMB<sup>2</sup>) are an easy to 6use yet powerful and efficient C/C++ library for the development of 7parallel applications. EMB<sup>2</sup> has been specifically designed 8for embedded systems and the typical requirements that accompany them, 9such as real-time capability and constraints on memory consumption. As a 10major advantage, low-level operations are hidden in the library which 11relieves software developers from the burden of thread management and 12synchronization. This not only improves productivity of parallel 13software development, but also results in increased reliability and 14performance of the applications. 15 16EMB<sup>2</sup> is independent of the hardware architecture (x86, ARM, 17...) and runs on various platforms, from small devices to large systems 18containing numerous processor cores. It builds on MTAPI, a standardized 19programming interface for leveraging task parallelism in embedded 20systems containing symmetric or asymmetric multicore processors. A core 21feature of MTAPI is low-overhead scheduling of fine-grained tasks among 22the available cores during runtime. Unlike existing libraries, 23EMB<sup>2</sup> supports task priorities and affinities, which allows 24the creation of soft real-time systems. Additionally, the scheduling 25strategy can be optimized for non-functional requirements such as minimal 26latency and fairness. 27 28Besides the task scheduler, EMB<sup>2</sup> provides basic parallel 29algorithms, concurrent data structures, and skeletons for implementing 30stream processing applications (see figure below). These building blocks 31are largely implemented in a non-blocking fashion, thus preventing 32frequently encountered pitfalls like lock contention, deadlocks, and 33priority inversion. As another advantage in real-time systems, the 34algorithms and data structures give certain progress guarantees. For 35example, wait-free data structures guarantee system-wide progress which 36means that every operation completes within a finite number of steps 37independently of any other concurrent operations on the same 38data structure. 39 40\image html ./images/embb.png 41 42*/ 43