The ROSS code base is easy to install and has been tested on both MacOS and Linux systems. It is a lightweight, C library with a limited number of dependencies.

Requirements

  1. ROSS is written in C standard and thus requires a C compiler (C11 is prefered, but not required).
  2. The build system is CMake, and we require version 2.8 or higher.
  3. ROSS relies on MPI. We recommend the MPICH implementation.

Build

ROSS can be installed quickly by following these simple steps:

  • Clone the repository to your local machine:
1
2
$ git clone https://github.com/carothersc/ROSS.git
$ cd ROSS
  • Optional Installing the submodules. Currently, ROSS includes three submodules:
1
2
$ git submodule init
$ git submodule update
  • Optional Symlink your model to ROSS. Please this wiki page for details about creating and integrating a model with ROSS.
1
$ ln -s ~/path-to/your-existing-model models/your-model-name
  • Create a new ross-build directory. ROSS developers typically do out-of-tree builds.
1
2
3
$ cd ~/directory-of-builds/
$ mkdir ross-build
$ cd ross-build
  • Set the following variables:
1
2
$ export ARCH=x86_64
$ export CC=mpicc
  • We use CMake to build ROSS.
    1
    $ ccmake ~/path-to/ROSS
    
    • You’ll want to change CMAKE_INSTALL_PREFIX to the directory you want ROSS installation files, e.g., $HOME/ross-build/install
    • If you’re using one of the ROSS models, you’ll want to set ROSS_BUILD_MODELS to ON.
    • You may also want to set CMAKE_BUILD_TYPE to Debug.
  • Finally, we can build:
1
2
$ make
$ make install

For the make command, some other options are:

1
2
3
 make -k         // ignore errors from other models
 make -j 12      // parallel build
 make model-name // build only one model

Run your model

See this wiki page for details about the ROSS command line options.

1
2
3
4
5
6
$ cd ~/directory-of-builds/ROSS-build/models/your-model
$ ./your-model --synch=1               // sequential mode
$ mpirun -np 2 ./your-model --synch=2  // conservative mode
$ mpirun -np 2 ./your-model --synch=3  // optimistic mode
$ ./your-model --synch=4               // optimistic debug mode (note: not a parallel execution!)
$ mpirun -np 2 ./your-model --synch=5  // realtime optimistic mode