Installation
For running COMMET on a laptop or workstation we recommend the Docker installation route as this is simplest.
If you would like to edit the underlying code though you would obviously need to compile from source.
Additionally, for running COMMET on an HPC with distributed compute nodes you would likely need to also compile from source.
Docker
First install docker by following the directions at Docker engine install or Docker desktop install.
Get the image
From the terminal, you will be able to pull the docker image from Docker hub using the following command:
$ docker pull commetcode/commet_solve
That’s it, you now have COMMET installed.
Verify that its working
To verify that the installation is working, you can download an example and run it. To run an example, open a terminal in a directory where the files for the example are located. Then run the following command:
$ docker run --rm -v ./:/data -w /data commetcode/commet_solve mpirun -n <n_procs_to_use> commet_solve <example_input_file>
This slightly long command starts up a docker container with the following settings:
--rmremoves the container after it finishes running – this keeps things tidy.-v ./:datamounts the current directory on your machine./to a directory in the container/data-w /datasets the working directory inside the container to/datacommetcode/commet_solveis the image from which Docker will create the containermpirun -n 2 commet_solve <example_input_file>is the command that will be run once the docker container has started up (and has changed directory to/data)
From source (Linux/WSL)
Building COMMET solve from source is a long and arduous process because it contains several large dependencies. As such, we strongly recommend that users use the docker image instead. The primary use cases for building from source are:
Needing to use COMMET on an HPC cluster (which typically doesn’t work with docker).
Needing to make changes to the COMMET code base.
In these cases, the instructions for building the code can obtained from the COMMET Github repo.