Skip to content
/ nodes Public

NODES is a library that works on top of nOS-V to implement the OmpSs-2 parallel programming model, developed by the System Tools and Advanced Runtimes (STAR) group at the Barcelona Supercomputing Center.

License

Notifications You must be signed in to change notification settings

bsc-pm/nodes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NODES

NODES is developed by the System Tools and Advanced Runtimes (STAR) group at the Barcelona Supercomputing Center. NODES -- short for nOS-V-based Dependency System -- is a runtime library designed to work on top of the nOS-V runtime while providing most of the functionalities from its predecessor, Nanos6. NODES acts as a dependency system for nOS-V by synchronizing the data flow of codes annotated with OmpSs-2 directives and bridges the gap between nOS-V and user applications through these annotations. Simultaneously, nOS-V manages the life cycle of multiple generic tasks from various applications or libraries such as NODES and handles their interaction with the system.

Licensing

The NODES (nOS-V based OmpSs-2 DEpendency System) Runtime Library is Free Software, licensed under the clauses of the GNU GPL v3 License included in the COPYING file. The copyright of the files included in this package belongs to the Barcelona Supercomputing Center, unless otherwise stated.

Installation

Build requirements

The following software is required to build and install NODES:

  1. automake, autoconf, libtool, pkg-config, make, and a C++17 compiler
  2. boost >= 1.71
  3. nOS-V

Optional libraries or tools

Additionally, NODES is prepared to use the following optional libraries:

  1. ovni to instrument and generate execution traces for offline performance analysis with paraver. Minimum version required 1.5.0
  2. A C++20 compiler to enable further functionalities

Build procedure

When cloning from a repository, the building environment must be prepared through the following command:

$ autoreconf -fiv

When the code is distributed through a tarball, it usually does not need that command.

Then execute the following commands:

./configure --prefix=$INSTALL_PATH_NODES \
    --with-nosv=$INSTALL_PATH_NOSV       \
    --with-boost=$INSTALL_PATH_BOOST     \
    --with-ovni=$INSTALL_PATH_OVNI       \
    ...other options...

make all
make install

where $INSTALL_PATH_NODES is the directory into which to install NODES.

The configure script also accepts the following options:

  1. --with-nosv to specify the prefix of the nOS-V installation
  2. --with-boost to specify the prefix of the boost installation
  3. --with-ovni to specify the prefix of the ovni installation (Optional)
  4. --with-nodes-clang to specify the prefix of a CLANG installation with NODES support (Optional)

Documentation

Further documentation on known limitations and how to run programs with NODES can be found here

Contributing

The development of NODES requires contributors to follow these few simple guidelines:

  1. C++17
  2. K&R indentation style
  3. Camel case coding style

About

NODES is a library that works on top of nOS-V to implement the OmpSs-2 parallel programming model, developed by the System Tools and Advanced Runtimes (STAR) group at the Barcelona Supercomputing Center.

Resources

License

Stars

Watchers

Forks

Contributors 5