Installation¶
ExaMol can be installed as a normal Python package. We recommend installing that package inside of a virtual environment, and prefer to use Anaconda to build the environment because it can install non-Python dependencies (e.g., MongoDB).
The first step to installing ExaMol is to download it from GitHub. For example, create an updatable copy of the repository by
git clone git@github.com:exalearn/ExaMol.git
Recommended: Anaconda¶
The envs
folder of ExaMol contains environment files suitable for different computers.
The best one to start with installs CPU versions of all software:
conda env create --file envs/environment-cpu.yaml
Installation with Pip¶
Start by creating or activating a virtual environment for ExaMol then invoke pip
pip install -e .
The default installation will install all _necessary_ packages but will skip some required for
some components, such as tensorflow
and nfp
for the NFPScorer
.
Running ExaMol on Mac¶
The environment-macos.yml is designed to run on OS X. It will not run all features (e.g., xTB computations and Tensorflow-based models) but is enough to test many features
conda env create --file envs/environment-macos.yaml
Modifying an Installation¶
ExaMol is designed so that difficult-to-install packages are not necessary unless specific features are needed.
For example, PyTorch need not be installed unless BOTorch selectors
or machine learning models based on Torch are required.
ExaMol will raise error messages that specify which optional dependencies are not met,
and the list of the dependencies is in pyproject.yaml
.
A best practice for including optional dependencies dependencies is to modify the Anaconda environment file to include the versions best for specific hardware. The repository provides examples for CPU-only systems, CUDA 11.8, and the Polaris supercomputer as examples. Note how each differ in which version of PyTorch is installed and whether we use the Anaconda version (which installs with CUDA libraries) or the PyPI version (which relies on system-provided versions).