"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