Skip to main content

Jarvis-CD

Jarvis-CD is a unified platform for deploying various applications, including storage systems and benchmarks. Many applications have complex configuration spaces and are difficult to deploy across different machines.

We provide a builtin repo which contains various applications to deploy. We refer to applications as "jarivs pkgs" which can be connected to form "deployment pipelines".

Installation

If you installed iowarp already, Jarvis-CD is a dependency. No need to install anything further. Go to the next section.

Building the Jarvis Configuration

Jarvis packages provide 3 ways to configure Hermes:

Bootstrapping for a single-node machine

For testing on a single node, use:

jarvis bootstrap from local

Set or Change the active Hostfile

The hostfile contains the set of nodes that the pipeline will run over. This is structured the same way as a traditional MPI hostfile.

An example hostfile:

ares-comp-20
ares-comp-[21-25]

To set the active hostfile, run:

jarvis hostfile set /path/to/hostfile

Note that every time you change the hostfile, you will need to update the pipeline. Jarvis does not automatically detect changes to this file.

jarvis ppl update

Building a Resource Graph

NOTE: This step only needs to be run if you did jarvis bootstrap from local or jarvis init. If you bootstrap from a specific machine, then skip this section.

The resource graph is a snapshot of your systems network and storage. Many packages depend on it for their configurations. The Hermes I/O system, for example, uses this to identify valid networks and buffering locations.

jarvis rg build

This command only needs to be run once for the duration of Jarvis (or whenever your resources change). For example, if you get a new hard drive, you should re-run this command.

NOTE: Make sure the hostfile contains a representative set of nodes. General rules:

  1. If you are trying to do multi-node deployments, make sure the hostfile contains at least two nodes before running this command. This will allow us to introspect valid networks between hosts.
  2. In addition, make sure that the nodes are representative of the machine. For example, if you plan to do multi-node deployments, the master node probably should not even be introspected.