StarPU Handbook
|
A codelet stores pointers to different implementations of the same theoretical function.
A memory node can be either the main RAM, GPU-embedded memory or disk memory.
A bus represents a connection between memory nodes.
A data handle keeps track of multiple copies of the same data (registered by the application) across various memory nodes. The data management library ensures coherency among these copies.
The home memory node of a data handle is the memory node where the data was originally registered (typically the main memory node).
A task represents a scheduled execution of a codelet on specific data handles.
A tag is a rendez-vous point. Tasks generally have their own tag and can depend on other tags. The value of a tag is chosen by the application.
A worker execute tasks. Typically, there is one worker per CPU computation core and one per accelerator (with a dedicated whole CPU core).
A driver oversees a given type of worker. Currently, there are CPU, CUDA, and OpenCL drivers.
A performance model is a (dynamic or static) model of the performance of a given codelet. Codelets can have performance model for execution time as well as energy consumption.
A data interface describes the layout of the data: for a vector, it includes a pointer for the start, the number of elements and the size of elements ; for a matrix, it involves a pointer for the start, the number of elements per row, the offset between rows, and the size of each element ; etc. Codelet functions receive interfaces for the local memory node copies of data handles assigned to the scheduled task, to access their data.
Data partitioning means dividing the data of a specific data handle (referred to as the father) into several children data handles, each representing distinct segments of the original data.
A filter is the function responsible for deriving child data handles from a father data handle, thus defining how the partitioning should be done (e.g. horizontal, vertical, etc.)
Acquiring a data handle can be done from the main application, allowing secure access to the data of a data handle from its home node without needing to unregister it.