The Data Communication and Synchronization (DaCS) library provides a set
of services which ease the development of applications and application frameworks
in a heterogeneous multi-tiered system (for example a hierarchical memory
system). The DaCS services are implemented as a set of APIs providing an
architecturally neutral layer for application developers on a variety of multi-core
systems. One of the key abstractions that further differentiates DaCS from
other programming frameworks is a hierarchical topology of processing elements,
each referred to as a
DaCS Element (DE). Within the hierarchy each
DE can serve one or both of the following roles:
- A general purpose processing element, acting as a supervisor, control
or master processor. This type of element usually runs a full operating system
and manages jobs running on other DEs. This is referred to as a Host Element (HE).
- A general or special purpose processing element running tasks assigned
by an HE. This is referred to as an Accelerator Element (AE).
The DaCS services provide the functionality needed to perform these roles
and can be divided into the following categories: