Skip to content

How to Build Proteus

Chris Kees edited this page Apr 7, 2020 · 2 revisions

Obtaining Proteus

Issue the following command to obtain a copy of the Proteus development repository:

git clone git@github.com:erdc/proteus.git
# or git clone https://github.com/erdc/proteus.git for HTTPS or unauthenticated access

Conda Build

For personal machines running Linux or OS X, you can install Proteus with the conda tool, which comes with Miniconda or Anaconda Python. In the proteus directory do

conda env create -f environment-dev.yml
conda activate proteus-dev
pip install -v -e .

General Builds

While Proteus is a python package, it has an extensive set of dependencies (the software "stack"), which we manage with a tool called Hashdist. You will need the following software installed to build the stack.

  • A complete compiler set: C, C++, and Fortran
  • Git
  • Python
  • Make

These should all be available from your system package manager if you are on Linux, or from the XCode Command-line Tools on OS X.

By default, the Proteus installation process will use profile files that download and build isolated versions of MPI, Python, PETSc. It is highly recommended that you keep this default configuration! If for some reason you need to customize your build further (for example, you are building on a shared-resource cluster or supercomputer), please email the Proteus developers or consult the Proteus Makefile and HashStack profile files.

Installing on OS X and Linux

The Proteus developers regularly test master against OS X and Linux before issuing commits, so it is safe to just use the latest commit to the master branch.

cd proteus
make develop
make test

Installing the Jupyter notebook environment

For convenience, there is a makefile target that installs the jupyter notebook and many additional tools, such as ipython widgets and parallel support:

make jupyter

Installing on Cygwin

We don't test as regularly on Cygwin. It is usually safe to just use master, but we also maintain a more stable branch updated only after being tested on Cygwin:

cd proteus
git checkout stable/cygwin
make develop
make test

Updating Cygwin

We've introduced experimental support in Cygwin for automatically updating your Proteus install to the latest stable branch.

make update

You may have problems in updating hashdist due to a stale stable branch. You can fix this with the following command:

cd hashdist
git remote prune origin

Installing on the Onyx supercomputer

It is also difficult to test our builds regularly on Onyx, so we recommend using the branch specifically designed for tracking stable builds on Onyx (many other HPC systems are also included):

module unload PrgEnv-cray 
module load PrgEnv-gnu
module load costinit
module unload python3
module load python3/gnu/3.5.1
export PROTEUS_ARCH=onyx.gnu
git clone https://github.com/erdc/proteus
cd proteus
make develop

Try a simple test in an interactive batch job

qsub -l select=1:ncpus=44:mpiprocs=44 -A ERDCV00898R40 -q debug -l walltime=001:00:00 -l application=proteus -I
cd proteus/proteus/tests/ci
aprun -n 44 parun poisson_3d_tetgen_p.py  poisson_3d_tetgen_c0p1_n.py -l 5 -v

Installing on the Stampede supercomputer

cd proteus
export PROTEUS_ARCH='stampede.gnu'
make develop 
make test

To run Proteus after installation, you must load some modules and set up your environment properly:

module purge
module load TACC
module swap intel gcc
export PATH=${PATH_TO_PROTEUS}/stampede.gnu/bin:${PATH}
export LD_LIBRARY_PATH=${PATH_TO_PROTEUS}/stampede.gnu/lib:${LD_LIBRARY_PATH}