#!/usr/bin/env bash set -evx # Git tag of OpenMM version to benchmark: openmm_tag="8.4.0" # Number of replicates to run: replicates="3" # Default arguments: default_arguments="--platform CUDA --style table --verbose" # Get environment information. current_directory="$(pwd -P)" platform="$(uname)" architecture="$(uname -m)" cuda_version="$(nvidia-smi | grep "CUDA Version" | cut -d : -f 3 | cut -d "|" -f 1 | xargs)" processors="$(nproc)" # Set script variables. working_directory="${current_directory}/benchmark" miniforge="Miniforge3-${platform}-${architecture}.sh" miniforge_prefix="${working_directory}/miniforge3" miniforge_environment="openmm_benchmark" openmm_prefix="${miniforge_prefix}/envs/${miniforge_environment}" miniforge_packages="cmake make cython swig doxygen numpy setuptools scipy cuda-toolkit=${cuda_version}" # Create a directory to work in. mkdir -p "${working_directory}" cd "${working_directory}" # Set up Conda. curl -LOfv "https://github.com/conda-forge/miniforge/releases/latest/download/${miniforge}" chmod +x "${miniforge}" "./${miniforge}" -b -p "${miniforge_prefix}" eval "$("${miniforge_prefix}/bin/conda" shell.bash hook)" # Set up build environment. conda create -y -n "${miniforge_environment}" ${miniforge_packages} conda activate "${miniforge_environment}" # Fetch OpenMM. git clone https://github.com/openmm/openmm.git cd openmm git checkout "${openmm_tag}" # Patch benchmark script to add deterministic force option. git apply - <