Emirge is a repository with some tools that captures a set of dependencies for mirgecom, as well as mirgecom itself.
The mirgecom dependencies that emirge installs are:
- Miniforge/Conda and conda packages (e.g., pocl)
- Pip packages (e.g., pyopencl)
In most cases, running ./install.sh
should be sufficient to install all packages and their dependencies.
./install.sh
takes several arguments:
--install-prefix=DIR
: Install mirgecom and git pip packages toDIR
instead of the default (./).--conda-prefix=DIR
: Install conda inDIR
instead of the default directory (./miniforge3
).--env-name=NAME
: Create conda environment namedNAME
instead of the default (ceesd).--modules
: Install a modules.zip file that contains a copy of all python packages that are installed through git (see below for details).--branch=NAME
: Install theNAME
d branch of mirgecom instead of the default branch (main).--fork=NAME
: Install mirgecom from a fork (default=illinois-ceesd).--conda-pkgs=FILE
: Install additional conda packages from the list of package names specified inFILE
.--conda-env=FILE
: Obtain conda package versions from conda environment file FILE.--pip-pkgs=FILE
: Install additional pip packages from the pip requirements file specified inFILE
.--git-ssh
: Use SSH-based URL to clone mirgecom.--debug
: Show debugging output of this script (set -x).--skip-clone
: Skip cloning mirgecom, assume it will be manually copied to the selected installation prefix.--help
: Print this help text.
Testing can be done by:
$ mirgecom/examples/run_examples.sh mirgecom/examples/
On large systems, the file system can become a bottleneck for loading Python
packages. On these systems, it is recommended to create a zip file with the
modules to speed up the startup process. This can be done by specifying the
--modules
parameter to install.sh
, or by running makezip.sh
after
installation.
See https://github.com/illinois-ceesd/planning/issues/26 for more details.
Please use the instructions above instead.
$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
# For Power8/9:
# $ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh
# For MacOS:
# $ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh
# Install Miniforge/conda:
$ bash ./Miniforge3-Linux-x86_64.sh
# Optional: create conda environment
$ export MY_CONDA=/path/to/installed/conda # Default installation path: $HOME/miniforge3
$ $MY_CONDA/bin/conda create -n ceesd
$ . $MY_CONDA/bin/activate ceesd
# Install required conda packages:
$ conda install pip pocl numpy pyopencl islpy flake8 mypy pudb
# Install optional conda packages:
$ conda install clinfo
# In a new session, you may reactivate this environment using:
. $MY_CONDA/bin/activate ceesd
$ git clone [email protected]:spack/spack
$ source spack/share/spack/setup-env.sh
# Maybe edit your Spack config
# $ spack config edit packages
$ spack install pocl
$ pip install pyvisfile
$ for m in pytools pymbolic dagrt leap loopy meshmode grudge mirgecom; do cd $m && pip install -e . && cd ..; done
$ cd mirgecom/examples; python wave-eager.py