apt-manual.scrbl 3.28 KB
Newer Older
1
#lang scribble/manual
2
@(require racket/date)
3
@(require "defs.rkt")
4

5
@title[#:version apt-version
Robert Ricci's avatar
Robert Ricci committed
6
       #:date (date->string (current-date))]{The Apt Manual}
7 8

@author[
9
    "Robert Ricci" "Leigh Stoller" "Kirk Webb" "Jon Duerig" "Gary Wong" "Keith Downie" "Mike Hibler" "Eric Eide"
10
]
11

12
@;{
13
@italic[(if (equal? (doc-mode) 'pdf)
Gary Wong's avatar
Gary Wong committed
14
    (list "The HTML version of this manual is available at " (hyperlink apt-doc-url apt-doc-url))
15
    (list "This manual is also available as a " (hyperlink "http://docs.aptlab.net/manual.pdf" "PDF")))]
16
}
17

18

19
Apt is a platform for sharing research; it is open to all researchers,
20 21 22
educators, and students. It is built around @seclink["profiles"]{profiles},
which describe @seclink["experiments"]{experiments}; when you instantiate a
profile, that specification is realized on one of @seclink["hardware"]{Apt's
Robert Ricci's avatar
Robert Ricci committed
23 24 25 26
clusters} using @seclink["virtual-machines"]{virtual} or
@seclink["physical-machines"]{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.
27 28 29 30 31

Basic access to public profiles on Apt is provided
@seclink["guest-users"]{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
Robert Ricci's avatar
Robert Ricci committed
32 33
@seclink["register"]{sign up for a (free) account} to get access to more
resources and to @seclink["creating-profiles"]{create profiles of your own}.
34 35 36 37 38 39 40 41 42 43 44 45 46

Setting up the @bold{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 @bold{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
47 48 49
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
Robert Ricci's avatar
Robert Ricci committed
50
underlying infrastructure.
51

Robert Ricci's avatar
Robert Ricci committed
52 53 54 55 56 57 58 59
Apt is built on @hyperlink["http://www.emulab.net/"]{Emulab} and
@hyperlink["http://www.geni.net/"]{GENI} technologies. It is built and operated
by the @hyperlink["http://www.flux.utah.edu"]{Flux Research Group}, part of the
@hyperlink["http://www.utah.edu/"]{University of Utah}'s
@hyperlink["http://www.cs.utah.edu/"]{School of Computing}. Apt is supported by
the National Science Foundation under award CNS-1338155 and by the University
of Utah. 

60 61
@table-of-contents[]

Robert Ricci's avatar
Robert Ricci committed
62
@include-section["getting-started.scrbl"]
Robert Ricci's avatar
Robert Ricci committed
63
@include-section["users.scrbl"]
64
@include-section["repeatable-research.scrbl"]
Robert Ricci's avatar
Robert Ricci committed
65
@include-section["creating-profiles.scrbl"]
Robert Ricci's avatar
Robert Ricci committed
66
@include-section["basic-concepts.scrbl"]
67
@include-section["geni-lib.scrbl"]
68
@include-section["advanced-topics.scrbl"]
Robert Ricci's avatar
Robert Ricci committed
69
@include-section["hardware.scrbl"]
70
@include-section["planned.scrbl"]
Robert Ricci's avatar
Robert Ricci committed
71
@include-section["getting-help.scrbl"]