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