The PULSAR programming model relies on the following five abstractions to define the processing pattern:
- Virtual Systolic Array (VSA) is a set of VDPs connected with channels.
- Virtual Data Processor (VDP) is the basic processing element in the VSA.
- Channel is a point-to-point connection between a pair of VDPs.
- Packet is the basic unit of information transferred in a channel.
- Tuple is a unique VDP identifier.
It also relies on the following two abstractions to map the processing pattern to the actual hardware:
- Thread is synonymous with a CPU thread or a collection of threads.
- Device is synonymous with an accelerator device (GPU, Xeon Phi, etc.)
The sections to follow describe the
roles of the different entities, how the VDP operation is defined, how
the VSA is constructed, and how the VSA is mapped to the hardware. These
operations are accessible to the user through PULSAR's Application Programming Interface (API), which is currently available with C bindings.
PULSAR runtime can handle the complexity of multithreading within each node and message-passing among all nodes.
PULSAR runtime can also handle the complexity of multithreading and GPU
acceleration within each node, and message-passing among all nodes."
http://icl.cs.utk.edu/pulsar/index.html
Design and Implementation of the PULSAR Programming System for Large Scale Computing - http://superfri.org/superfri/article/view/121
Design and Implementation of the PULSAR Programming System for Large Scale Computing - http://superfri.org/superfri/article/view/121
No comments:
Post a Comment