Skip to content
ketch edited this page Nov 13, 2014 · 9 revisions

What are HashDist and HashStack?

HashDist is a software tool for reliably building reproducible software stacks, with exceptional support for building, maintaining, and deploying scientific software with complex or rapidly changing dependencies.

HashStack is a community collection of recipes for installing packages using HashDist. The recipes are in YAML format, with extensive documentation on ReadTheDocs

How do I get started?

On OS X or Linux, you should first install the hashdist command line tool, hit. We recommend using the development version:

git clone https://github.com/hashdist/hashdist
export PATH=${PWD}/hashdist/bin:${PATH}

Now you can use HashDist to install Clawpack and friends:

# on OS X
# this will take awhile, as it needs to download all dependencies
hit build -v https://gist.githubusercontent.com/ahmadia/fd665650c484266dc9c2/raw/e47717d525b44a59a8424835d4f1eda0ba407287/clawpack.Darwin.yaml
# Linux stack is coming!

If you'd like to try editing the packages being installed:

git clone -b hpc3_2014_stack https://github.com/hashdist/hashstack
cd hashstack
hit build -v clawpack.Darwin.yaml

If you want to use hashdist-installed packages alongside an editable clawpack install that you will modify, do the following. First, comment out the clawpack lines in clawpack.Darwin.yaml. Then do

hit develop clawpack.Darwin.yaml
export PATH=~/clawpack.Darwin/bin:${PATH}
easy_install pip
hash -r

Then go to your clawpack directory and do

pip install -e .
cd pyclaw/examples/advection_1d/
python advection_1d.py use_boxclaw=1

HashStack package targets

  • hdf5
  • PETSc
  • BoxClaw
  • CUDAClaw? (need to install CUDA separately)
  • Some visualization package?