A new parallel programming language called CellSs is presented in this paper. CellSs can program Cell Broadband Engine (Cell/B.E.) devices; the associated runtime system and achieved performance results are also described.
The paper begins with a brief survey of current parallel processes. Motivations behind the work are shown as improvements in programmer productivity and independence from processor counts. CellSs is based on program annotations (pragmas). Three types of pragmas can be inserted in C programs: initialization/finalization, task, and synchronization. A task pragma explicitly shows input/output (I/O) variables on a function/task. Information in task pragmas is used by a dynamic scheduler at runtime in order to build and update task dependence graphs. Tasks are grouped and assigned to processors by the scheduler. The paper describes the scheduler in detail.
Performance is evaluated with execution speedups and the number of processors used over example codes. The results are presented using tables and graphs. Trace-file mechanisms are used for analysis. Comparisons with similar programming modeling approaches are presented. This paper indicates future work as new annotations in CellSs and improvement in runtime performance occur.
Elementary knowledge of parallel processing is required. The paper reflects the nature of current parallel programming efforts on current parallel devices; the authors keep the description informal.