Git Product home page Git Product logo

automaton's Introduction

Automaton

Automaton automates the process of executing benchmark applications on various resources (e.g., infrastructure clouds and clusters). Ideally this will include all steps from provisioning cloud resources, downloading, configuring, and compiling the benchmark applications, executing the applications, gathering the results, and generating graphs.

Prerequisites

Automaton requires that numpy, fabric, boto, and matplotlib libraries be installed.

The easiest way to install these libraries is through pip.

Numpy can be installed with the command:

pip install numpy

All other libraries can be automatically installed using pip by giving the command:

pip install -r requirements.txt

After installing the required libraries, Automaton should be ready to run. Check by running Automaton with:

python ./automaton.py -h

If a help message is shown, then the required libraries have been installed successfully.

Configuration & Environment Variables

Automaton has a global configuration files that needs to be preconfigured before benchmarks can be run -- etc/global.conf. Because Automaton uses ssh to connect to servers, you must provide the path to your public and private keys. Assuming you already have generated a key pair (if not, see Github's guide to generating ssh keys), the two lines that need to be edited are:

key_path = path/to/public/key
ssh_priv_key = path/to/private/key

In addition to configuring etc/global.conf with your ssh keys, Automaton also requires that your credentials from the cloud server that you are accessing be available.

For example, using the Nimbus cloud on FutureGrid:

ssh <username>@hotel.futuregrid.org
cd .nimbus
cat querytokens.sh

Run the two export commands on the local machine.

Automaton should now be configured and ready to run.

Running Automaton

Deploying the Automaton software, executing the benchmarks, and gathering and generating graphs is accomplished through the use of flags that can be seen by running:

python automaton.py -h

Generally, the first command to run, in order to launch the desired clusters specified in the etc/cloud.conf file is:

python automaton.py -l

Then, the software can be deployed with:

python automaton.py -s

The benchmarks can be executed with:

python automaton.py -e

Executing the benchmarks may take some time to complete, but once they are finished running the logs can be gathered with:

python automaton.py -o

And finally the graphs generated with:

python automaton.py -p

A specific instance or all of the running clusters can be terminated with:

python automaton.py -t <all/instance id>

Contributing

  1. Read: http://www.python.org/dev/peps/pep-0008/
  2. Run pep8 and make sure your code conforms.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.