technical:recipes:openmm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
technical:recipes:openmm [2024-07-29 13:36] – created bkangtechnical:recipes:openmm [2024-07-29 14:50] (current) – [VALET Package Definition] bkang
Line 1: Line 1:
-====== Building OpenMM on Caviness/DARWIN ======+====== OpenMM Python Virtual Environment ======
  
-The build procedure outlined herein uses OpenMM.+This page documents the creation of a Python virtual environment (virtualenv) containing the OpenMM software on the Caviness HPC system((The steps should also work on the DARWIN HPC system, though with different package versions.)).  It assumes that the user is adding the software to the workgroup storage. 
 + 
 +===== Prepare Workgroup Directory ===== 
 + 
 +Prepare to add software in the standard sub-directories of the workgroup storage: 
 + 
 +<code bash> 
 +[user@login01 ~]$ workgroup -g my_workgroup 
 +[(my_workgroup:user)@login01 ~]$ mkdir --mode=2775 --parent ${WORKDIR}/sw/openmm 
 +[(my_workgroup:user)@login01 ~]$ mkdir --mode=2775 --parent ${WORKDIR}/sw/valet 
 +</code> 
 + 
 +These commands create any missing directories.  All directories created will have group-write and -inherit permissions. 
 + 
 +===== Create Virtualenv ===== 
 + 
 +The Python distribution will form the basis for the anaconda virtualenv, so add it to the environment: 
 + 
 +<code bash> 
 +[(my_workgroup:user)@login01 ~]$ vpkg_require anaconda/2024.02 
 +Adding package `anaconda/2024.02` to your environment 
 +</code> 
 + 
 +The virtual environment is first populated with all packages that **do not** require OpenMM.  Any packages requiring OpenMM must be installed //after// we build and install our local copy of OpenMM in the virtual environment.  In this example, neither Numpy nor Scipy require OpenMM. 
 + 
 +<WRAP center round important 60%> 
 +The two channel options are present to ensure only the default Anaconda channels are consulted -- otherwise the command could still pick packages from the Intel channel, for example, which would still have the binary compatibility issues! 
 +</WRAP> 
 + 
 +<code bash> 
 +$ conda create --prefix=$WORKDIR/sw/openmm/20240726 --override-channels --channel conda-forge python'=>3.7' numpy scipy 
 +Solving environment: done 
 +    : 
 +Proceed ([y]/n)? y 
 +    : 
 +Preparing transaction: done 
 +Verifying transaction: done 
 +Executing transaction: done 
 +#                                                                                
 +# To activate this environment, use                                              
 +#                                                                                
 +#     $ conda activate /work/it_css/sw/openmm/20240726                           
 +#                                                                                
 +# To deactivate an active environment, use                                       
 +#                                                                                
 +#     $ conda deactivate  
 +
 +</code> 
 + 
 + 
 +Before building and installing OpenMM the environment needs to be activated: 
 + 
 +<code bash> 
 +$ conda activate $WORKDIR/sw/openmm/20240726 
 +(/work/it_css/sw/openmm/20240726)$  
 +</code> 
 + 
 + 
 +===== Building OpenMM ===== 
 + 
 +With the new virtual environment activated, we can now build OpenMM. 
 + 
 +<code base> 
 +(/work/it_css/sw/openmm/20240726)$ conda install -c conda-forge openmm 
 +Solving environment: done 
 +    : 
 +Proceed ([y]/n)? y 
 +    : 
 +Preparing transaction: done                                                      
 +Verifying transaction: done                                                      
 +Executing transaction: \ By downloading and using the CUDA Toolkit conda packages, you accept the terms and conditions of the CUDA End User License Agreement (EULA): https://docs.nvidia.com/cuda/eula/index.html 
 + 
 +done 
 +</code> 
 + 
 +===== VALET Package Definition ===== 
 + 
 +The new virtual environment can easily be added to your login shell and job runtime environments using VALET. 
 +Assuming the workgroup does //not// already have a OpenMM VALET package definition, the following text: 
 + 
 +<file openmm.vpkg_yaml> 
 +openmm: 
 +    prefix: /work/my_workgroup/sw/openmm 
 +    description: openmm within a conda virtualenv 
 +    flags: 
 +        - no-standard-paths 
 +    actions: 
 +        - action: source 
 +          script: 
 +              sh: anaconda-activate-2020.sh 
 +          order: failure-first 
 +          success: 0 
 +    versions: 
 +          "20240726": 
 +              description: environment built July 26, 2024 
 +              dependencies: 
 +                  - anaconda/2024.02 
 +</file> 
 + 
 +would be added to ''${WORKDIR}/sw/valet/openmm.vpkg_yaml''
 + 
 +===== Using the Virtual Environment ===== 
 + 
 +The versions of the virtual environment declared in the VALET package are listed using the ''vpkg_versions'' command: 
 + 
 +<code bash> 
 +$ vpkg_versions openmm 
 + 
 +Available versions in package (* = default version): 
 + 
 +[/work/it_css/sw/valet/openmm.vpkg_yaml] 
 +openmm      openmm within a conda virtualenv 
 +* 20240726  environment built July 26, 2024 
 +</code> 
 + 
 +You can import openmm, activating the virtual environment is accomplished using the ''vpkg_require'' command (in your login shell or inside job scripts): 
 + 
 +<code bash> 
 +$ vpkg_require openmm/20240726 
 +Adding dependency `anaconda/2024.02` to your environment 
 +Adding package `openmm/20240726` to your environment 
 +(/work/it_css/sw/openmm/20240726)$ python 
 +~/conda-envs/my-sci-app/20201102/bin/python3 
 +Python 3.12.4 | packaged by conda-forge | (main, Jun 17 2024, 10:23:07) [GCC 12.3.0] on linux 
 +Type "help", "copyright", "credits" or "license" for more information. 
 +>>> import openmm as mm 
 +>>> 
 +</code>
  • technical/recipes/openmm.1722274600.txt.gz
  • Last modified: 2024-07-29 13:36
  • by bkang