Installation

Runaway ships as a compiled binary that you can execute directly. To have a working setup though, you will also have to install profiles to connect the remote resources you target.

Installing the binary

Runaway is written in the rust programming language, which compile code into a binary form. This means that the run-time requirements are reduced compared to interpreted languages. This comes at the cost of supporting fewer platforms; currently we support the two main platforms used in academic research:

  • x86_64 linux
  • x86_64 apple darwin

Due to the wide use of proxy-commands to access remote clusters, openssh is a strong dependency of Runaway, and must be installed on your system, whatever the platform. We recomand that you use a recent version of openssh>=8.0:

# On debian/ubuntu 
$> sudo apt install openssh-client
# On fedora/rhel
$> sudo yum install openssh-clients
# On arch
$> sudo pacman -S openssh
# On mac
$> brew install openssh

Linux

For the linux architecture, we provide a convenient static binary that you can install without dependencies on your system. To install it, you just have to do the following:

$> curl -s https://gitlab.inria.fr/runaway/runaway/snippets/582/raw \
   | bash /dev/stdin https://gitlab.inria.fr/runaway/runaway/-/wikis/releases/0.4.0/x86_64_linux_gnu/runaway-cli

You can now skip to the installing profiles section.

Osx

For the apple target, a few dependencies are needed. Make sure that you have Homebrew installed on your system and execute the following command:

$ curl -s https://gitlab.inria.fr/runaway/runaway/snippets/583/raw \
  | bash /dev/stdin https://gitlab.inria.fr/runaway/runaway/-/wikis/releases/0.4.0/x86_64_apple_darwin/runaway-cli

Other platforms

There is no official support for other platforms, but you probably can compile it on your own from the git repository:

# First install the rust compiler, using whatever is recommended on https://rustup.rs
# Then clone the repository
$> git clone https://gitlab.inria.fr/runaway/runaway.git
# Build the project
$> cd runaway && cargo build

Installing profiles

To connect to remote hosts, Runaway uses profiles located in ~/.config/runaway. Those profiles describe the location of the remote and the various procedures needed by Runaway to peform its job. You can write your own profile, but the vast majority of cases can be accomodated with the provided profile installers.

Directly accessible resources

If the resource you target can be accessed directly, without any scheduler involved, then you can use the following script to install a profile that will be fitted to your needs. If you have no idea what a scheduler is, don’t worry, it probably means that this profile is the right for you. Execute the following command in your terminal and fill the requirements as prompted:

$> python2 <(curl -s https://gitlab.inria.fr/runaway/runaway/snippets/584/raw)

Note: To connect to remote hosts, Runaway stores the connection details in the same specification format used by openssh in ~/.ssh/config files. This script only generate simple configurations that need no more than one Host to connect. If you need more than one Host to access your resource, you can directly edit the ~/.config/runaway/config file and append your configuration there.

Slurm-managed resources

If the resources you target are managed by a slurm scheduler, you can use the following script to install a profile that will manage allocations on your behalf, and will allow you to use the cluster nodes as resources. To install it, you can use the following script:

$> python2 <(curl -s https://gitlab.inria.fr/runaway/runaway/snippets/585/raw)

Note: This installer provides a parametric profiles which allows to tune the number of nodes you want at runtime. Check execution model for more informations on that.