The SciGPU::Legion Library
edit as needed
The SciGPU::Legion library provides a means of processing many loosely coupled heterogeneous Tasks on heterogeneous execution hardware. Examples are included are CPU cores and CUDA GPUs. However, the library is more general than just these two options. A Legion consists of a collection of execution resources (called Maniples) which process Tasks submitted by the user. The user can create new types of Maniple, which can select particular Tasks to perform. For example, a Maniple performing matrix multiplications on a CUDA GPU might reserve memory on that GPU to hold the matrices. It could then scan the list of pending Tasks to select the multiplications which fit inside its current reservation (and if it finds none, it could then find the next available multiplication task, and increase its memory pool to suit).
Obtaining the Library
SciGPU::Legion is built on top of boost::thread, and uses CMake as its build system.
Download and extract the tarball. Then execute the following commands
cd scigpu-legion mkdir build cd build cmake ../ make
These will build the library and a set of example programs.
The library is documented using Doxygen.
cd scigpu-legion cd doc doxygen scigpu-legion.doxy
An 'html' directory will be created. Open up the 'index.html' file, to see the list of examples.