Commit ef564083 authored by Michael Salim's avatar Michael Salim
Browse files

updated readme

parent bb48dd37
......@@ -2,46 +2,72 @@
**Authors:** J. Taylor Childers (Argonne National Laboratory), Tom Uram (Argonne National Laboratory), Doug Benjamin (Duke University), Misha Salim (Argonne National Laboratory)
# Prerequisites
The Argo and Balsam services require Python 3.6, mpi4py, Django, and django-concurrency.
The user is responsible for providing an environment with Python 3.6 and mpi4py, because the installation is
To establish the needed environment on Cooley or Theta, it is recommended to use Anaconda:
### Cooley:
## Prerequisites on Cooley
An easy approach is to use Anaconda:
soft add +anaconda
conda config --add channels intel
conda config --add channel intel
conda create --name balsam intelpython3_full python=3
source ~/.conda/envs/balsam/bin/activate balsam
pip install django django-concurrency
source activate balsam
### Additional steps on Theta:
cp -i /opt/cray/pe/mpt/7.6.0/gni/mpich-intel-abi/16.0/lib/libmpi* ~/.conda/envs/balsam/lib/
# “yes” to overwrite and
export LD_LIBRARY_PATH=~/.conda/envs/balsam/lib:$LD_LIBRARY_PATH
On Cooley, mpi4py just works with this environment.
The following instructions assume the appopriate environment for Balsam is set-up and loaded!
# Installation
# Check out the latest release of Balsam
git clone
cd hpc-edge-service
git checkout release0.1
# Install Balsam
pip install -e .
# Try it out!
The launcher pulls jobs from the database and invokes MPI to run the jobs.
To try it out interactively, grab a couple nodes on Cooley:
qsub -A datascience -n 2 -q debug -t 30 -I
soft add +anaconda
source activate balsam
virtualenv argobalsam_env
source argobalsam_env/bin/activate
pip install pip --upgrade
pip install django
pip install pika
pip install future
mkdir log argojobs balsamjobs exe
# Configure Databases
You can find many settings to change. There are Django specific settings in `argobalsam/` and Edge Service settings in ``.
The **balsam** command-line tool will have been added to your path.
There are a number of commands to try:
balsam --help
balsam ls --help
balsam ls # no jobs in DB yet
Now let's create a couple dummy jobs and see them listed in
the database:
balsam qsub "echo hello world" --name hello -t 0
balsam make_dummies 2
To create and initialize the default sqlite3 database without password protections do:
balsam ls --hist
./ makemigrations balsam
./ migrate
./manage -h
Finally, run the launcher. Useful log messages will be sent to the log/ directory in real time.
You can change the verbosity, and many other Balsam runtime parameters, in balsam/
balsam launcher --consume --time 0.5 # run for 30 seconds
balsam ls --hist # jobs are now done
balsam rm jobs --all
# Run a comprehensive test suite
The **balsam-test** command line tool invokes tests in the tests/ directory
You can run specific tests by passing the test module names, or run all of
them just by calling **balsam-test** with no arguments.
balsam-test tests.test_dag # this should be quick
balsam-test # the test_functional module might take over 10 minutes!
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment