[[fswiki|top]] = The SciGPU::Legion Library = '''edit as needed''' <> == Introduction == 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 == [[attachment:scigpu-legion.tgz|Download the SciGPU::Legion library]] == Requirements == SciGPU::Legion is built on top of boost::thread, and uses CMake as its build system. == Installation == 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. == Documentation == 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.