All Projects → bsc-pm → nanox

bsc-pm / nanox

Licence: LGPL-3.0, GPL-3.0 licenses found Licenses found LGPL-3.0 COPYING.LESSER GPL-3.0 COPYING
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.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
Makefile
30231 projects
M4
1887 projects
shell
77523 projects
assembly
5116 projects

Projects that are alternatives of or similar to nanox

Weave
A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead
Stars: ✭ 305 (+724.32%)
Mutual labels:  runtime, openmp
mcxx
Mercurium is a C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping developed by the Programming Models group at the Barcelona Supercomputing Center
Stars: ✭ 59 (+59.46%)
Mutual labels:  openmp, ompss
distribution
Siddhi streaming runtime and tooling distribution
Stars: ✭ 22 (-40.54%)
Mutual labels:  runtime
squire
The medieval language held together by twine.
Stars: ✭ 42 (+13.51%)
Mutual labels:  runtime
permissionUtil
Simple permission helper
Stars: ✭ 64 (+72.97%)
Mutual labels:  runtime
openpai-runtime
Runtime for deep learning workload
Stars: ✭ 17 (-54.05%)
Mutual labels:  runtime
matrix multiplication
Parallel Matrix Multiplication Using OpenMP, Phtreads, and MPI
Stars: ✭ 41 (+10.81%)
Mutual labels:  openmp
wazero
wazero: the zero dependency WebAssembly runtime for Go developers
Stars: ✭ 2,065 (+5481.08%)
Mutual labels:  runtime
wac-esp
Web Assembly Interpreter for ESP32 family of micro controllers running the ESP-IDF development framework, based on the great work at kanaka/wac
Stars: ✭ 66 (+78.38%)
Mutual labels:  runtime
TWVM
A tiny, lightweight and efficient WebAssembly virtual machine.
Stars: ✭ 105 (+183.78%)
Mutual labels:  runtime
wasm-joey
Serverless Wasm - A lightweight Node.js application for deploying and executing WebAssembly(Wasm) binary-code via HTTP
Stars: ✭ 48 (+29.73%)
Mutual labels:  runtime
chameleon-runtime
chameleon 运行时框架
Stars: ✭ 32 (-13.51%)
Mutual labels:  runtime
m2ee-tools
m2ee, the Mendix runtime helper tools for GNU/Linux
Stars: ✭ 23 (-37.84%)
Mutual labels:  runtime
TPreventUnrecognizedSEL
Use TPreventUnrecognizedSEL can make you project prevent the unrecognized selector crash
Stars: ✭ 17 (-54.05%)
Mutual labels:  runtime
inclavare-containers
A novel container runtime, aka confidential container, for cloud-native confidential computing and enclave runtime ecosystem.
Stars: ✭ 510 (+1278.38%)
Mutual labels:  runtime
go-wasm
Run WASM built from Go in Go
Stars: ✭ 58 (+56.76%)
Mutual labels:  runtime
URT
Fast Unit Root Tests and OLS regression in C++ with wrappers for R and Python
Stars: ✭ 70 (+89.19%)
Mutual labels:  openmp
lambda-runtime-pypy3.5
AWS Lambda Runtime for PyPy 3.5
Stars: ✭ 17 (-54.05%)
Mutual labels:  runtime
libquo
Dynamic execution environments for coupled, thread-heterogeneous MPI+X applications
Stars: ✭ 21 (-43.24%)
Mutual labels:  openmp
Kubernetes-and-Cloud-Native-Associate-KCNA
Useful notes for the KCNA - Kubernetes and Cloud Native Associate
Stars: ✭ 162 (+337.84%)
Mutual labels:  runtime

Nanos++ Runtime Library

Nanos++ is a parallel runtime library aimed at fast prototyping developed by the Programming Models group at the Barcelona Supercomputing Center.

Nanos++ is mainly used together with the Mercurium compiler to implement the OmpSs programming model (an extension to the OpenMP programming model based only in tasks). Both tools also implement OpenMP 3.1 features and include some additional extensions (some of them also introduced in following OpenMP releases).

The runtime provides several services to support task parallelism using a synchronization mechanism 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, arm, aarch64, ppc32 and ppc64 are supported). It also provides support for maintaining coherence across different address spaces (such as with GPUs or cluster nodes) by means of a directory/cache mechanism.

The main purpose of Nanos++ RTL is to be used in research of parallel programming environments. Our aim has been to enable easy development of different parts of the runtime so researchers have a platform that allows them to try different mechanisms. As such it is designed to be extensible by means of plugins. The scheduling policy, the throttling policy, the dependence approach, the barrier implementations, slicers and worksharing mechanisms, the instrumentation layer and the architectural dependant level are examples of plugins that developers may easily implement using Nanos++. This extensibility does not come for free. The runtime overheads are slightly increased, but there should be low enough for results to be meaningful except for cases of extreme-fine grain applications.

You can find further information about the Nanos++ RTL usage in our user guide and about Nanos++ RTL development in our developers guide.

Reporting New Issues

Should you find a bug or want to make a feature request you can create a new ticket. As Nanos++ is a medium-sized piece of software so, in order to make bug tracking as useful as possible, you may want to read these guidelines:

  1. Before reporting an issue spend some time checking existing ones. Maybe your problem has already been reported and a fix is ongoing or planned. Duplicated issues will be resolved as duplicated and no further action will be taken on them. Sometimes it is not obvious what is duplicated or not and you will have serious doubts about it. In this case just create the issue and add references to those issues you believe related with in its description.

  2. Please, try to make a useful report. Where useful means we can figure out the source of your problem. A gdb backtrace it can be useful to use, be sure to use the debug version of Nanos++ in order to obtain an accurate backtrace. The debug version can be enabled passing the --debug flag to Mercurium when the application is built.

  3. Use the CC field to stay tuned to changes in a bug. Add your username or e-mail there to track a bug and receive all the notifications due the different actions taken in this ticket.

Contact Information

For questions, suggestions and bug reports, you can contact us through the [email protected].

You can also join our [email protected] mailing list by sending an e-mail to [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].