From d6642b988758cdc407c27293146a6fdc55ad4608 Mon Sep 17 00:00:00 2001 From: Josh Mitchell Date: Tue, 19 Sep 2023 18:15:54 +1000 Subject: [PATCH 1/3] Combine installation guides and fix typos --- docs/guide/hpc.rst | 115 --------------------------- docs/guide/index.rst | 1 - docs/installation.rst | 181 ++++++++++++++++++++++++++++++++++++------ 3 files changed, 155 insertions(+), 142 deletions(-) delete mode 100644 docs/guide/hpc.rst diff --git a/docs/guide/hpc.rst b/docs/guide/hpc.rst deleted file mode 100644 index 254fe0777..000000000 --- a/docs/guide/hpc.rst +++ /dev/null @@ -1,115 +0,0 @@ -HPC -=== - -We recommend using `apptainer (formally singularity) `_ when running ``openfe`` workflows in HPC environments. -This images provide a software environment that is isolated from the host which can make workflow execution easier to setup and more reproducible. -See our guide on :ref:`containers ` for how to get started using apptainer/singularity. - -``micromamba`` Installation Considerations in HPC Environments --------------------------------------------------------------- - -``conda``, ``mamba`` and ``micromamba`` all use `virtual packages `_ to detect which version of CUDA should be installed. -For example, on a login node where there likely is not a GPU or a CUDA environment, ``micromamba info`` may produce output that looks like this :: - - $ micromamba info - - __ - __ ______ ___ ____ _____ ___ / /_ ____ _ - / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/ - / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ / - / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/ - /_/ - - - environment : openfe_env (active) - env location : /lila/home/henrym3/micromamba/envs/openfe_env - user config files : /home/henrym3/.mambarc - populated config files : /home/henrym3/.condarc - libmamba version : 1.2.0 - micromamba version : 1.2.0 - curl version : libcurl/7.87.0 OpenSSL/1.1.1s zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0 - libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2 - virtual packages : __unix=0=0 - __linux=3.10.0=0 - __glibc=2.17=0 - __archspec=1=x86_64 - channels : https://conda.anaconda.org/conda-forge/linux-64 - https://conda.anaconda.org/conda-forge/noarch - base environment : /lila/home/henrym3/micromamba - platform : linux-64 - - -Now if we run the same command on a HPC node that has a GPU :: - - $ micromamba info - - __ - __ ______ ___ ____ _____ ___ / /_ ____ _ - / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/ - / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ / - / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/ - /_/ - - - environment : openfe_env (active) - env location : /lila/home/henrym3/micromamba/envs/openfe_env - user config files : /home/henrym3/.mambarc - populated config files : /home/henrym3/.condarc - libmamba version : 1.2.0 - micromamba version : 1.2.0 - curl version : libcurl/7.87.0 OpenSSL/1.1.1s zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0 - libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2 - virtual packages : __unix=0=0 - __linux=3.10.0=0 - __glibc=2.17=0 - __archspec=1=x86_64 - __cuda=11.7=0 - channels : https://conda.anaconda.org/conda-forge/linux-64 - https://conda.anaconda.org/conda-forge/noarch - base environment : /lila/home/henrym3/micromamba - platform : linux-64 - -We can see that there is a virtual package ``__cuda=11.7=0``. -This means that if we run a ``micromamba install`` command on a node with a GPU, the solver will install the correct version of the ``cudatoolkit``. -However, if we ran the same command on the login node, the solver may install the wrong version of the ``cudatoolkit``, or depending on how the conda packages are setup, a CPU only version of the package. -We can control the virtual package with the environmental variable ``CONDA_OVERRIDE_CUDA``. - -In order to determine the correct ``cudatoolkit`` version, we recommend connecting to the node where the simulation will be executed and run ``nvidia-smi``. -For example :: - - $ nvidia-smi - Tue Jun 13 17:47:11 2023 - +-----------------------------------------------------------------------------+ - | NVIDIA-SMI 515.43.04 Driver Version: 515.43.04 CUDA Version: 11.7 | - |-------------------------------+----------------------+----------------------+ - | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | - | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | - | | | MIG M. | - |===============================+======================+======================| - | 0 NVIDIA A40 On | 00000000:65:00.0 Off | 0 | - | 0% 30C P8 32W / 300W | 0MiB / 46068MiB | 0% Default | - | | | N/A | - +-------------------------------+----------------------+----------------------+ - - +-----------------------------------------------------------------------------+ - | Processes: | - | GPU GI CI PID Type Process name GPU Memory | - | ID ID Usage | - |=============================================================================| - | No running processes found | - +-----------------------------------------------------------------------------+ - -in this output of ``nvidia-smi`` we can see in the upper right of the output ``CUDA Version: 11.7`` which means the installed driver will support a ``cudatoolkit`` version up to ``11.7`` - -So on the login node, we can run ``CONDA_OVERRIDE_CUDA=11.7 micromamba info`` and see that the "correct" virtual CUDA is listed. -For example, to install a version of ``openfe`` which is compatible with ``cudatoolkit 11.7`` run ``CONDA_OVERRIDE_CUDA=11.7 micromamba install openfe``. - -Common Errors -------------- - -openmm.OpenMMException: Error loading CUDA module: CUDA_ERROR_UNSUPPORTED_PTX_VERSION (222) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This error likely means that the CUDA version that ``openmm`` was built with is incompatible with the CUDA driver. -Try re-making the environment while specifying the CUDA toolkit version that works with the CUDA driver on the node. -For example ``micromamba create -n openfe_env openfe cudatoolkit==11.3``. diff --git a/docs/guide/index.rst b/docs/guide/index.rst index ed31e252c..f66bf06f3 100644 --- a/docs/guide/index.rst +++ b/docs/guide/index.rst @@ -9,4 +9,3 @@ User Guide execution/index results/index cli - hpc diff --git a/docs/installation.rst b/docs/installation.rst index 970424c68..7576c4baa 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -8,20 +8,18 @@ installation is working. ``openfe`` currently only works on POSIX system (macOS and UNIX/Linux). It is tested against Python 3.9 and 3.10. -Installing ``openfe`` ---------------------- - When you install ``openfe`` through any of the methods described below, you will install both the core library and the command line interface (CLI). Installation with ``mambaforge`` (recommended) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +---------------------------------------------- -We recommend installing ``openfe`` with `mambaforge `_, because it provides easy -installation of other tools, including molecular dynamics tools such as -OpenMM and ambertools, which are needed by ``openfe``. -We recommend ``mambaforge`` because it is faster than ``conda`` and comes -preconfigured to use ``conda-forge``. +.. _MambaForge: https://github.com/conda-forge/miniforge#mambaforge + +We recommend installing ``openfe`` with `MambaForge`_ because it provides easy +installation of other software that ``openfe`` needs, such as OpenMM and +AmberTools. We recommend ``mambaforge`` because it is faster than ``conda`` and +comes preconfigured to use ``conda-forge``. To install and configure ``mambaforge``, you need to know your operating system, your machine architecture (output of ``uname -m``), and your shell @@ -96,7 +94,7 @@ commands it suggests. You should then close your current session and open a fresh login to ensure that everything is properly registered. -Next we will create an environment called ``openfe_env`` with the ``openfe`` package and all required dependencies +Next we will create an environment called ``openfe_env`` with the ``openfe`` package and all required dependencies: .. parsed-literal:: @@ -109,8 +107,8 @@ Now we need to activate our new environment :: .. warning:: - Installing on newer Macs with Apple Silicon requires a creating an x86_64 - environmment, as one of our requirements is not yet available for Apple + Installing on Macs with Apple Silicon requires a creating an x86_64 + environment, as one of our requirements is not yet available for Apple Silicon. Run the following modified commands .. parsed-literal:: @@ -123,7 +121,8 @@ To make sure everything is working, run the tests :: $ openfe test --long -The test suite contains several hundred individual tests. This may take up to an hour, and all tests should complete with status either passed, +The test suite contains several hundred individual tests. This may take up to +an hour, and all tests should complete with status either passed, skipped, or xfailed (expected fail). The very first time you run this, the initial check that you can import ``openfe`` will take a while, because some code is compiled the first time it is encountered. That compilation only @@ -132,11 +131,13 @@ happens once per installation. With that, you should be ready to use ``openfe``! Single file installer -^^^^^^^^^^^^^^^^^^^^^ +--------------------- + +.. _releases on GitHub: https://github.com/OpenFreeEnergy/openfe/releases Single file installers are available for x86_64 Linux and MacOS. -They are attached to our `releases on GitHub `_ and can be downloaded with a browser or ``curl`` (or similar tool). -For example, the linux installer can be downloaded with :: +They are attached to our `releases on GitHub`_ and can be downloaded with a browser or ``curl`` (or similar tool). +For example, the Linux installer can be downloaded with :: $ curl -LOJ https://github.com/OpenFreeEnergy/openfe/releases/latest/download/OpenFEforge-Linux-x86_64.sh @@ -145,6 +146,7 @@ And the MacOS installer :: $ curl -LOJ https://github.com/OpenFreeEnergy/openfe/releases/latest/download/OpenFEforge-MacOSX-x86_64.sh The single file installer contains all of the dependencies required for ``openfe`` and does not require internet access to use. + Both ``conda`` and ``mamba`` are also available in the environment created by the single file installer and can be used to install additional packages. The installer can be installed in batch mode or interactively :: @@ -190,8 +192,7 @@ Example installer output is shown below (click to expand "Installer Output") [no] >>> yes .. note:: - Your path will be different - + The install location will be different when you run the installer. .. code-block:: @@ -286,7 +287,7 @@ Example installer output is shown below (click to expand "Installer Output") conda config --set auto_activate_base false Thank you for installing OpenFEforge! - + After the installer completes, close and reopen your shell. To check if your path is setup correctly, run ``which python`` your output should look something like this :: @@ -332,14 +333,14 @@ skipped, or xfailed (expected fail). With that, you should be ready to use ``openfe``! Containers -^^^^^^^^^^ +---------- -We provide an official docker and apptainer (formally singularity) image. +We provide an official docker and Apptainer (formerly Singularity) image. The docker image is tagged with the version of ``openfe`` on the image and can be pulled with :: $ docker pull ghcr.io/openfreeenergy/openfe:latest -The apptainer image is pre-built and can be pulled with :: +The Apptainer image is pre-built and can be pulled with :: $ singularity pull oras://ghcr.io/openfreeenergy/openfe:latest-apptainer @@ -374,10 +375,10 @@ This can be done with the following command :: All differences are within tolerance. -The ``--nv`` flag is required for the apptainer image to access the GPU on the host. +The ``--nv`` flag is required for the Apptainer image to access the GPU on the host. Your output may produce different values for the forces, but should list the CUDA platform if everything is working properly. -You can access the ``openfe`` CLI from the singularity image with :: +You can access the ``openfe`` CLI from the Singularity image with :: $ singularity run --nv openfe_latest-apptainer.sif openfe --help @@ -392,7 +393,7 @@ skipped, or xfailed (expected fail). With that, you should be ready to use ``openfe``! Developer install -^^^^^^^^^^^^^^^^^ +----------------- If you're going to be developing for ``openfe``, you will want an installation where your changes to the code are immediately reflected in the @@ -424,7 +425,7 @@ Note the ``.`` at the end of that command, which indicates the current directory. Optional dependencies -^^^^^^^^^^^^^^^^^^^^^ +--------------------- Certain functionalities are only available if you also install other, optional packages. @@ -433,3 +434,131 @@ optional packages. and you need a valid OpenEye license. To install both packages, use:: $ mamba install -c openeye perses openeye-toolkits + +HPC Environments +---------------- + +When using High Performance Computing resources, jobs are typically submitted to a queue from a "login node" and then run at a later time, often on different hardware and in a different software environment. +This can complicate installation as getting something working on the login node does not guarantee it will work in the job. +We recommend using `Apptainer (formerly Singularity) `_ when running ``openfe`` workflows in HPC environments. +This images provide a software environment that is isolated from the host which can make workflow execution easier to setup and more reproducible. +See our guide on :ref:`containers ` for how to get started using Apptainer/Singularity. + +.. _installation:micromamba_hpc: + +``micromamba`` in HPC Environments +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _virtual packages: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-virtual.html#managing-virtual-packages + +We recommend using a :ref:`container ` to install ``openfe`` in HPC environments. +Nonetheless, ``openfe`` can be installed via Conda Forge on these environments also. +Conda Forge distributes its own CUDA binaries for interfacing with the GPU, rather than use the host drivers. +``conda``, ``mamba`` and ``micromamba`` all use `virtual packages`_ to detect and specify which version of CUDA should be installed. +This is a common point of difference in hardware between the login and job nodes in an HPC environment. +For example, on a login node where there likely is not a GPU or a CUDA environment, ``micromamba info`` may produce output that looks like this :: + + $ micromamba info + + __ + __ ______ ___ ____ _____ ___ / /_ ____ _ + / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/ + / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ / + / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/ + /_/ + + + environment : openfe_env (active) + env location : /lila/home/henrym3/micromamba/envs/openfe_env + user config files : /home/henrym3/.mambarc + populated config files : /home/henrym3/.condarc + libmamba version : 1.2.0 + micromamba version : 1.2.0 + curl version : libcurl/7.87.0 OpenSSL/1.1.1s zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0 + libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2 + virtual packages : __unix=0=0 + __linux=3.10.0=0 + __glibc=2.17=0 + __archspec=1=x86_64 + channels : https://conda.anaconda.org/conda-forge/linux-64 + https://conda.anaconda.org/conda-forge/noarch + base environment : /lila/home/henrym3/micromamba + platform : linux-64 + + +Now if we run the same command on a HPC node that has a GPU :: + + $ micromamba info + + __ + __ ______ ___ ____ _____ ___ / /_ ____ _ + / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/ + / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ / + / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/ + /_/ + + + environment : openfe_env (active) + env location : /lila/home/henrym3/micromamba/envs/openfe_env + user config files : /home/henrym3/.mambarc + populated config files : /home/henrym3/.condarc + libmamba version : 1.2.0 + micromamba version : 1.2.0 + curl version : libcurl/7.87.0 OpenSSL/1.1.1s zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0 + libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2 + virtual packages : __unix=0=0 + __linux=3.10.0=0 + __glibc=2.17=0 + __archspec=1=x86_64 + __cuda=11.7=0 + channels : https://conda.anaconda.org/conda-forge/linux-64 + https://conda.anaconda.org/conda-forge/noarch + base environment : /lila/home/henrym3/micromamba + platform : linux-64 + +We can see that there is a virtual package ``__cuda=11.7=0``. +This means that if we run a ``micromamba install`` command on a node with a GPU, the solver will install the correct version of the ``cudatoolkit``. +However, if we ran the same command on the login node, the solver may install the wrong version of the ``cudatoolkit``, or depending on how the Conda packages are setup, a CPU only version of the package. +We can control the virtual package with the environmental variable ``CONDA_OVERRIDE_CUDA``. + +In order to determine the correct ``cudatoolkit`` version, we recommend connecting to the node where the simulation will be executed and run ``nvidia-smi``. +For example :: + + $ nvidia-smi + Tue Jun 13 17:47:11 2023 + +-----------------------------------------------------------------------------+ + | NVIDIA-SMI 515.43.04 Driver Version: 515.43.04 CUDA Version: 11.7 | + |-------------------------------+----------------------+----------------------+ + | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | + | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | + | | | MIG M. | + |===============================+======================+======================| + | 0 NVIDIA A40 On | 00000000:65:00.0 Off | 0 | + | 0% 30C P8 32W / 300W | 0MiB / 46068MiB | 0% Default | + | | | N/A | + +-------------------------------+----------------------+----------------------+ + + +-----------------------------------------------------------------------------+ + | Processes: | + | GPU GI CI PID Type Process name GPU Memory | + | ID ID Usage | + |=============================================================================| + | No running processes found | + +-----------------------------------------------------------------------------+ + +in this output of ``nvidia-smi`` we can see in the upper right of the output ``CUDA Version: 11.7`` which means the installed driver will support a ``cudatoolkit`` version up to ``11.7`` + +So on the login node, we can run ``CONDA_OVERRIDE_CUDA=11.7 mamba info`` and see that the "correct" virtual CUDA is listed. +For example, to install a version of ``openfe`` which is compatible with ``cudatoolkit 11.7``, run: + +.. parsed-literal:: + + $ CONDA_OVERRIDE_CUDA=11.7 mamba create -n openfe_env openfe=\ |version| + +Common Errors +------------- + +openmm.OpenMMException: Error loading CUDA module: CUDA_ERROR_UNSUPPORTED_PTX_VERSION (222) + This error likely means that the CUDA version that ``openmm`` was built with is incompatible with the CUDA driver. + Try re-making the environment while specifying the correct CUDA toolkit version for your hardware and driver. + See :ref:`installation:micromamba_hpc` for more details. From 132dfc733eccb231e8139470fe07db903f2bf3a1 Mon Sep 17 00:00:00 2001 From: Josh Mitchell Date: Thu, 28 Sep 2023 13:17:16 +1000 Subject: [PATCH 2/3] Add quick install guide to top of installation page --- docs/installation.rst | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index 7576c4baa..e0f9855b3 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -6,11 +6,20 @@ packages that integrate with ``openfe``, and testing that your ``openfe`` installation is working. ``openfe`` currently only works on POSIX system (macOS and UNIX/Linux). It -is tested against Python 3.9 and 3.10. +is tested against Python 3.9, 3.10, and 3.11. When you install ``openfe`` through any of the methods described below, you will install both the core library and the command line interface (CLI). +If you already have a Mamba or MicroMamba installation, you can install ``openfe`` with: + +.. parsed-literal:: + + mamba create -c conda-forge -n openfe_env openfe=\ |version| + mamba activate openfe_env + +Note that you must run the latter line in each shell session where you want to use ``openfe``. OpenFE recommends the Mamba or MicroMamba package managers for most users as they are orders of magnitude faster than the default Conda package manager. In most cases, they are used identically to Conda. + Installation with ``mambaforge`` (recommended) ---------------------------------------------- @@ -98,11 +107,11 @@ Next we will create an environment called ``openfe_env`` with the ``openfe`` pac .. parsed-literal:: - $ mamba create -n openfe_env openfe=\ |version| + mamba create -n openfe_env openfe=\ |version| Now we need to activate our new environment :: - $ mamba activate openfe_env + mamba activate openfe_env .. warning:: @@ -119,7 +128,7 @@ Now we need to activate our new environment :: To make sure everything is working, run the tests :: - $ openfe test --long + openfe test --long The test suite contains several hundred individual tests. This may take up to an hour, and all tests should complete with status either passed, From cce4bf710ca454292071c2627a32d27a36842a15 Mon Sep 17 00:00:00 2001 From: Mike Henry <11765982+mikemhenry@users.noreply.github.com> Date: Fri, 29 Sep 2023 12:16:50 -0700 Subject: [PATCH 3/3] switch to mamba for HPC install --- docs/installation.rst | 130 ++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index e0f9855b3..5297cafd4 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -11,14 +11,14 @@ is tested against Python 3.9, 3.10, and 3.11. When you install ``openfe`` through any of the methods described below, you will install both the core library and the command line interface (CLI). -If you already have a Mamba or MicroMamba installation, you can install ``openfe`` with: +If you already have a Mamba installation, you can install ``openfe`` with: .. parsed-literal:: mamba create -c conda-forge -n openfe_env openfe=\ |version| mamba activate openfe_env -Note that you must run the latter line in each shell session where you want to use ``openfe``. OpenFE recommends the Mamba or MicroMamba package managers for most users as they are orders of magnitude faster than the default Conda package manager. In most cases, they are used identically to Conda. +Note that you must run the latter line in each shell session where you want to use ``openfe``. OpenFE recommends the Mamba package manager for most users as it is orders of magnitude faster than the default Conda package manager. Mamba is a drop in replacement for Conda. Installation with ``mambaforge`` (recommended) ---------------------------------------------- @@ -453,9 +453,9 @@ We recommend using `Apptainer (formerly Singularity) `_ This images provide a software environment that is isolated from the host which can make workflow execution easier to setup and more reproducible. See our guide on :ref:`containers ` for how to get started using Apptainer/Singularity. -.. _installation:micromamba_hpc: +.. _installation:mamba_hpc: -``micromamba`` in HPC Environments +``mamba`` in HPC Environments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. _virtual packages: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-virtual.html#managing-virtual-packages @@ -465,68 +465,74 @@ Nonetheless, ``openfe`` can be installed via Conda Forge on these environments a Conda Forge distributes its own CUDA binaries for interfacing with the GPU, rather than use the host drivers. ``conda``, ``mamba`` and ``micromamba`` all use `virtual packages`_ to detect and specify which version of CUDA should be installed. This is a common point of difference in hardware between the login and job nodes in an HPC environment. -For example, on a login node where there likely is not a GPU or a CUDA environment, ``micromamba info`` may produce output that looks like this :: - - $ micromamba info - - __ - __ ______ ___ ____ _____ ___ / /_ ____ _ - / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/ - / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ / - / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/ - /_/ - - - environment : openfe_env (active) - env location : /lila/home/henrym3/micromamba/envs/openfe_env - user config files : /home/henrym3/.mambarc - populated config files : /home/henrym3/.condarc - libmamba version : 1.2.0 - micromamba version : 1.2.0 - curl version : libcurl/7.87.0 OpenSSL/1.1.1s zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0 - libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2 - virtual packages : __unix=0=0 - __linux=3.10.0=0 - __glibc=2.17=0 - __archspec=1=x86_64 - channels : https://conda.anaconda.org/conda-forge/linux-64 - https://conda.anaconda.org/conda-forge/noarch - base environment : /lila/home/henrym3/micromamba - platform : linux-64 - +For example, on a login node where there likely is not a GPU or a CUDA environment, ``mamba info`` may produce output that looks like this :: + + $ mamba info + + mamba version : 1.5.1 + active environment : base + active env location : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0 + shell level : 1 + user config file : /home/henrym3/.condarc + populated config files : /lila/home/henrym3/.condarc + conda version : 23.7.4 + conda-build version : not installed + python version : 3.11.5.final.0 + virtual packages : __archspec=1=x86_64 + __glibc=2.17=0 + __linux=3.10.0=0 + __unix=0=0 + base environment : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0 (writable) + conda av data dir : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0/etc/conda + conda av metadata url : None + channel URLs : https://conda.anaconda.org/conda-forge/linux-64 + https://conda.anaconda.org/conda-forge/noarch + package cache : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0/pkgs + /home/henrym3/.conda/pkgs + envs directories : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0/envs + /home/henrym3/.conda/envs + platform : linux-64 + user-agent : conda/23.7.4 requests/2.31.0 CPython/3.11.5 Linux/3.10.0-957.12.2.el7.x86_64 centos/7.6.1810 glibc/2.17 + UID:GID : 1987:3008 + netrc file : None + offline mode : False Now if we run the same command on a HPC node that has a GPU :: - $ micromamba info - - __ - __ ______ ___ ____ _____ ___ / /_ ____ _ - / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/ - / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ / - / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/ - /_/ - - - environment : openfe_env (active) - env location : /lila/home/henrym3/micromamba/envs/openfe_env - user config files : /home/henrym3/.mambarc - populated config files : /home/henrym3/.condarc - libmamba version : 1.2.0 - micromamba version : 1.2.0 - curl version : libcurl/7.87.0 OpenSSL/1.1.1s zlib/1.2.13 libssh2/1.10.0 nghttp2/1.47.0 - libarchive version : libarchive 3.6.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.2 - virtual packages : __unix=0=0 - __linux=3.10.0=0 - __glibc=2.17=0 - __archspec=1=x86_64 - __cuda=11.7=0 - channels : https://conda.anaconda.org/conda-forge/linux-64 - https://conda.anaconda.org/conda-forge/noarch - base environment : /lila/home/henrym3/micromamba - platform : linux-64 + $ mamba info + + mamba version : 1.5.1 + active environment : base + active env location : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0 + shell level : 1 + user config file : /home/henrym3/.condarc + populated config files : /lila/home/henrym3/.condarc + conda version : 23.7.4 + conda-build version : not installed + python version : 3.11.5.final.0 + virtual packages : __archspec=1=x86_64 + __cuda=11.7=0 + __glibc=2.17=0 + __linux=3.10.0=0 + __unix=0=0 + base environment : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0 (writable) + conda av data dir : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0/etc/conda + conda av metadata url : None + channel URLs : https://conda.anaconda.org/conda-forge/linux-64 + https://conda.anaconda.org/conda-forge/noarch + package cache : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0/pkgs + /home/henrym3/.conda/pkgs + envs directories : /lila/home/henrym3/mamba/envs/QA-openfe-0.14.0/envs + /home/henrym3/.conda/envs + platform : linux-64 + user-agent : conda/23.7.4 requests/2.31.0 CPython/3.11.5 Linux/3.10.0-1160.45.1.el7.x86_64 centos/7.9.2009 glibc/2.17 + UID:GID : 1987:3008 + netrc file : None + offline mode : False + We can see that there is a virtual package ``__cuda=11.7=0``. -This means that if we run a ``micromamba install`` command on a node with a GPU, the solver will install the correct version of the ``cudatoolkit``. +This means that if we run a ``mamba install`` command on a node with a GPU, the solver will install the correct version of the ``cudatoolkit``. However, if we ran the same command on the login node, the solver may install the wrong version of the ``cudatoolkit``, or depending on how the Conda packages are setup, a CPU only version of the package. We can control the virtual package with the environmental variable ``CONDA_OVERRIDE_CUDA``. @@ -570,4 +576,4 @@ Common Errors openmm.OpenMMException: Error loading CUDA module: CUDA_ERROR_UNSUPPORTED_PTX_VERSION (222) This error likely means that the CUDA version that ``openmm`` was built with is incompatible with the CUDA driver. Try re-making the environment while specifying the correct CUDA toolkit version for your hardware and driver. - See :ref:`installation:micromamba_hpc` for more details. + See :ref:`installation:mamba_hpc` for more details.