On this page:
The Apt Manual
2018-04-06 (d9ce6f9)

The Apt Manual

Robert Ricci,
Leigh Stoller,
Kirk Webb,
Jon Duerig,
Gary Wong,
Keith Downie,
Mike Hibler,
and Eric Eide

Apt is a platform for sharing research; it is open to all researchers, educators, and students. It is built around profiles, which describe experiments; when you instantiate a profile, that specification is realized on one of Apt’s clusters using virtual or physical machines. The creator of a profile may put code, data, and other resources into it, and the profile may consist of a single machine or may describe an entire network.

Basic access to public profiles on Apt is provided without the need to register for an account—this keeps the barriers to accessing research artifacts low. If you find the limited resources that are provided to guest users valuable, you should sign up for a (free) account to get access to more resources and to create profiles of your own.

Setting up the software environment to run research artifacts is often complicated, potentially requiring a specific version of an operating system, dependencies on a large number of packages, and a complicated build and configuration process for the research software.

Setting up the hardware environment can be even more troublesome, especially when one wants to reproduce published results, which may be highly sensitive to the specific hardware they were gathered on. The problem becomes complicated when more than one machine is needed to run the experiment.

Apt’s profiles capture this by describing both the software needed to run an experiment and the hardware (physical or virtual) that the software needs to run. By providing a hardware platform for running these profiles, Apt essentially enables researchers to build their own testbed environments and share them with others, without having to buy, build, or maintain the underlying infrastructure.

Apt is built on Emulab and GENI technologies. It is built and operated by the Flux Research Group, part of the University of Utah’s School of Computing. Apt is supported by the National Science Foundation under award CNS-1338155 and by the University of Utah.

    1 Getting Started

      1.1 Next Steps

    2 Apt Users

      2.1 Register for an Account

        2.1.1 Join an existing project

        2.1.2 Create a new project

    3 Apt and Repeatable Research

    4 Creating Profiles

      4.1 Creating a profile from an existing one

        4.1.1 Preparation and precautions

        4.1.2 Cloning a Profile

        4.1.3 Copying a Profile

        4.1.4 Creating the Profile

        4.1.5 Updating a profile

      4.2 Creating a profile with a GUI

      4.3 Repository-Based Profiles

        4.3.1 Updating Repository-Based Profiles

        4.3.2 Branches and Tags in Repository-Based Profiles

      4.4 Creating a profile from scratch

      4.5 Sharing Profiles

    5 Basic Concepts

      5.1 Profiles

        5.1.1 On-demand Profiles

        5.1.2 Persistent Profiles

      5.2 Experiments

        5.2.1 Extending Experiments

      5.3 Projects

      5.4 Virtual Machines

      5.5 Physical Machines

    6 Describing a profile with python and geni-lib

      6.1 A single XEN VM node

      6.2 A single physical host

      6.3 Two XenVM nodes with a LAN between them

      6.4 Two ARM64 servers in a LAN

      6.5 A VM with a custom size

      6.6 Set a specific IP address on each node

      6.7 Specify an operating system and set install and execute scripts

      6.8 Profiles with user-specified parameters

      6.9 Add temporary local disk space to a node

      6.10 Creating a reusable dataset

      6.11 Debugging geni-lib profile scripts

    7 Advanced Topics

      7.1 Disk Images

      7.2 RSpecs

      7.3 Public IP Access

        7.3.1 Dynamic Public IP Addresses

      7.4 Markdown

      7.5 Tours

      7.6 Introspection

        7.6.1 Client ID

        7.6.2 Control MAC

        7.6.3 Manifest

        7.6.4 Private key

        7.6.5 Profile parameters

    8 Hardware

      8.1 Apt Cluster

      8.2 IG-DDC Cluster

      8.3 CloudLab Utah

    9 Planned Features

      9.1 Versioned Profiles

      9.2 Persistent Storage

      9.3 Easier From-Scratch Profile Creation

      9.4 “Quick” Profiles

      9.5 Simpler Virtual/Physical Profile Switching

      9.6 Improved Physical Resource Descriptions

    10 Getting Help