1) Getting Started Running A “Hello World” Experiment
This tutorial will provide a basic introduction to navigating Ramble and running
experiments. In this tutorial, you will set up and run a basic experiment using
hostname linux utility as your application.
Installation
To install Ramble, see the Getting Started guide.
NOTE: This tutorial does not require a package manager to be installed or configured.
Ramble Basics
Before beginning, we will learn some basics about ramble and its available
commands.
Available Applications
Once Ramble is installed, viewing the available application definitions is as simple as executing:
$ ramble list
The ramble list command also takes a query string, which can be used to
filter available application definitions. For example:
$ ramble list h
might output the following:
The ramble list command also accepts regular expressions. For example:
$ ramble list "h*"
might output the following:
NOTE: The quotes around h* in the previous command avoid a potential
issue where your shell matches files that begin with the later h, can
ramble prints no applications.
Additionally, applications can be filtered by their tags, e.g.
$ ramble list -t test-app
==> 1 applications
hostname
The available tags (and their mappings to applications) can be listed using:
$ ramble attributes --all --tags
What’s in an application?
Knowing what applications are available is only part of how you interact
with Ramble. Each application contains one or more workloads, all of which can
contain their own variables to control their behavior. The ramble info
command can be used to get more information about a specific application
definition. As an example:
$ ramble info hostname
Will print the workloads and variables the hostname application definition contains.
Configuring experiments
Create and Activate a Workspace
Before you can configure your hostname experiments, you’ll need to set up a
workspace. You can call this workspace hello_world.
$ ramble workspace create hello_world
This will create a named workspace for you in:
$ $RAMBLE_ROOT/var/ramble/workspaces/hello_world
Now you can activate the workspace and view its default configuration.
$ ramble workspace activate hello_world
$ ramble workspace info
You can use the ramble workspace info command after editing configuration
files to see how ramble would use the changes you made.
As an aside, if you had used:
$ ramble workspace create -d hello_world
Ramble would create an anonymous workspace for you in ${PWD}/hello_world
for more information on named and anonymous workspaces, see
Ramble workspace documentation.
For convenience, the workspace creation and activation can also be combined
in one command with the activate flag (-a):
$ ramble workspace create hello_world -a
Configure the Workspace
Within the workspace directory, ramble creates a directory named configs.
This directory contains generated configuration and template files. Each of
these files can be edited to configure the workspace, and examples will be
provided below.
The available files are:
* ramble.yaml This file describes all aspects of the workspace. This
includes the software stack, the experiments, and all variables.
* execute_experiment.tpl This file is a template shell script that will be
rendered to execute each of the experiments that ramble generates.
You can edit these files directly or with the command:
$ ramble workspace edit
To begin, you should edit the ramble.yaml file to set up the configuration
for your experiments. For this tutorial, replace the default yaml text with the
following contents:
# Copyright 2022-2025 The Ramble Authors
#
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
# https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.
ramble:
variables:
processes_per_node: 1
mpi_command: ''
batch_submit: '{execute_experiment}'
applications:
hostname: # Application name, from `ramble list`
workloads:
local: # Workload name from application, in `ramble info <app>`
experiments:
test: # Arbitrary experiment name
variables:
n_ranks: 1
software:
packages: {}
environments: {}
Note that since the hostname application does not rely on a package manager, the software
dictionary has empty packages and environments dictionaries.
The second file you should edit is the execute_experiment.tpl template file.
This file contains a template script that will be rendered into an execution
script for each generated experiment. You can feel free to edit it as you need
to for your given system, but for this tutorial the default value will work.
Setting Up the Experiments
Now that the workspace is configured correctly, you can set up the experiments in the active workspace using:
$ ramble workspace setup
This command will create experiment directories, download and expand input files, and install the required software stack (and generate software environments for each workload).
It can take a bit to run depending on if you need to build new software and how long the input files take to download. If you’d like to see what will be installed, you can do a dry run of the setup using:
$ ramble workspace setup --dry-run
For each setup run, a set of logs will be created at:
$ $RAMBLE_ROOT/var/ramble/workspaces/$workspace_root/logs
Each run will have its own primary log, along with a folder containing a log for each experiment that is being configured.
Executing Experiments
After the workspace is set up, its experiments can be executed. The two methods to run the experiments are:
$ ramble on
or;
$ ./all_experiments
Analyzing Experiments
Once the experiments within a workspace are complete, the experiments can be analyzed. This is done through:
$ ramble workspace analyze
This creates a results file in the root of the workspace that contains
extracted figures of merit. If the experiments were successful, this file will
show the following results:
possible hostname: hostname of machine the experiment was executed on
Cleanup the Workspace
After you are finished exploring the workspace and tutorial content, make sure you deactivate the workspace using:
$ ramble workspace deactivate
Additionally, you can remove the workspace you used with:
$ ramble workspace remove hello_world