-
Notifications
You must be signed in to change notification settings - Fork 56
How to Build 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
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 .
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.
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
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
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
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
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
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}