Pages

Sunday, September 11, 2016

OmpSs

"OmpSs is an effort to integrate features from the StarSs programming model developed by BSC into a single programming model. In particular, our objective is to extend OpenMP with new directives to support asynchronous parallelism and heterogeneity (devices like GPUs). However, it can also be understood as new directives extending other accelerator based APIs like CUDA or OpenCL. Our OmpSs environment is built on top of our Mercurium compiler and Nanos++ runtime system."

https://pm.bsc.es/ompss

A Survey: Runtime Software Systems for High Performance Computing - http://superfri.org/superfri/article/view/126

"Nanos++ is a runtime designed to serve as runtime support in parallel environments. It is mainly used to support  OmpSs, a extension to OpenMP developed at BSC. It also has modules to support  OpenMP and  Chapel.

Nanos++ provides services to support task parallelism using synchronizations based on data-dependencies. Data parallelism is also supported by means of services mapped on top of its task support. Task are implemented as user-level threads when possible (currently x86,x86-64,ia64,ppc32 and ppc64 are supported).

Nanos++ also provides support for maintaining coherence across different address spaces (such as with GPUs or cluster nodes). It provides software directory and cache modules to this end."

https://pm.bsc.es/nanox

 "Mercurium is a source-to-source compilation infrastructure aimed at fast prototyping. Current supported languages are C, C++ and Fortran. Mercurium is mainly used in Nanos environment to implement OpenMP but since it is quite extensible it has been used to implement other programming models or compiler transformations, examples include Cell Superscalar, Software Transactional Memory, Distributed Shared Memory or the ACOTES project, just to name a few.

Extending Mercurium is achieved using a plugin architecture, where plugins represent several phases of the compiler. These plugins are written in C++ and dynamically loaded by the compiler according to the chosen configuration. Code transformations can be implemented in terms of source code (there is no need to modify or know the internal syntactic representation of the compiler)."

https://pm.bsc.es/mcxx

Extending OmpSs for OpenCL kernel co-execution in heterogeneous systems - https://hgpu.org/?p=17897

No comments:

Post a Comment