Skip to content

Commit

Permalink
Merge branch 'merzlab:master' into QUICK_Constrained_Optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
akhilshajan authored Apr 24, 2024
2 parents 5ec0979 + 83e7538 commit 46ee0c1
Show file tree
Hide file tree
Showing 569 changed files with 957,751 additions and 18,185 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/mpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Install deps
run: sudo apt-get -y install gfortran openmpi-bin openmpi-common libopenmpi-dev
- name: Configure mpi
run: ./configure --mpi --prefix $PWD/install gnu
run: ./configure --mpi --enablef --prefix $PWD/install gnu
- name: Build mpi
run: make
- name: Install mpi
Expand Down Expand Up @@ -44,12 +44,14 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Install deps
run: sudo apt-get -y install gfortran cmake openmpi-bin openmpi-common libopenmpi-dev
run: |
sudo apt-get update
sudo apt-get -y install gfortran cmake openmpi-bin openmpi-common libopenmpi-dev
- name: Configure MPI
run: |
mkdir build
cd build
cmake .. -DCOMPILER=GNU -DMPI=TRUE -DCMAKE_INSTALL_PREFIX=$(pwd)/../install
cmake .. -DCOMPILER=GNU -DMPI=TRUE -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$(pwd)/../install
- name: Build MPI
run: |
cd build
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/serial.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Install deps
run: sudo apt-get -y install gfortran
- name: Configure serial
run: ./configure --serial --prefix $PWD/install gnu
run: ./configure --serial --enablef --prefix $PWD/install gnu
- name: Build serial
run: make
- name: Install serial
Expand All @@ -42,12 +42,14 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Install deps
run: sudo apt-get -y install gfortran cmake
run: |
sudo apt-get update
sudo apt-get -y install gfortran cmake
- name: Configure serial
run: |
mkdir build
cd build
cmake .. -DCOMPILER=GNU -DCMAKE_INSTALL_PREFIX=$(pwd)/../install
cmake .. -DCOMPILER=GNU -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$(pwd)/../install
- name: Build serial
run: |
cd build
Expand Down
2 changes: 1 addition & 1 deletion CMake-Options.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ These options allow you do adjust this behavior.
By default QUICK will only build the serial version. This can be changed with these options:
- `-DMPI=TRUE`: Also build MPI versions of all programs.
- `-DCUDA=TRUE`: Also build CUDA versions of all programs. If both MPI and CUDA are active at the same time, CUDA MPI versions will additionally be built.
- `-DQUICK_USER_ARCH=<kepler|maxwell|pascal|volta|turing|ampere>`: Build CUDA code only for the given architecture. If not provided, quick will compile for all supported architectures in your CUDA version.
- `-DQUICK_USER_ARCH=<kepler|maxwell|pascal|volta|turing|ampere|adalovelace>`: Build CUDA code only for the given architecture. If not provided, quick will compile for all supported architectures in your CUDA version.
- `-DQUICK_VERBOSE_PTXAS=TRUE`: Pass -v flag to ptxas to dump details about compiled functions in CUDA code.
12 changes: 10 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.9.0) # version 3.9.0 needed for FindMPI and FindOpenMP versions which provide imported targets

project(quick LANGUAGES NONE VERSION 22.03)
project(quick LANGUAGES NONE VERSION 24.03)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/quick-cmake)

Expand Down Expand Up @@ -36,7 +36,7 @@ if(NOT INSIDE_AMBER)

endif()

option(ENABLEF "Enables the compilation of QUICK's time consuming f functions in the ERI code of cuda version." FALSE)
option(ENABLEF "Enables the support for f functions in the ERI code." FALSE)

# Compiler flags
# These should really go into cmake/CompilerFlags.cmake but with the
Expand Down Expand Up @@ -236,6 +236,11 @@ if(INSIDE_AMBER)
add_definitions(-DCEW)
endif()

# set general preprocessor flag for enabling F functions
if(ENABLEF)
add_definitions(-DENABLEF)
endif()

# CUDA compiler flags
# --------------------------------------------------------------------
include(QUICKCudaConfig)
Expand Down Expand Up @@ -284,6 +289,9 @@ if(INSIDE_AMBER)
# install tests dir
install(DIRECTORY test USE_SOURCE_PERMISSIONS DESTINATION AmberTools/src/quick COMPONENT Tests ${TESTS_EXCLUDE_OPTION})

# install runtest script
install(PROGRAMS tools/runtest DESTINATION AmberTools/src/quick COMPONENT Tests)

else()
# Standalone install

Expand Down
24 changes: 17 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,21 @@ Features
* Supports QM/MM calculations with Amber22 and later
* Fortran API to use QUICK as QM energy and force engine
* MPI parallelization for CPU platforms
* Massively parallel GPU implementation via CUDA/HIP for Nvidia/AMD GPUs
* Massively parallel GPU implementation via CUDA/HIP for Nvidia/AMD GPUs (HIP available in QUICK-23.08, currently disabled)
* Multi-GPU support via MPI + CUDA/HIP, also across multiple compute nodes

Limitations
-----------
* Supports energy/gradient calculations with basis functions up to d
* Supports energy/gradient calculations with basis functions up to f
* Supports only Cartesian basis functions (no spherical harmonics)
* Effective core potentials (ECPs) are not supported
* DFT calculations are performed exclusively using the SG1 grid system
* No meta-GGA functionals, no range-separated hybrid functionals
* HIP (AMD GPU support) is currently disabled (available in QUICK-23.08 but not QUICK-24.03)

Installation
------------
Supported platforms: Linux (x86 and ARM), macOS (only Intel x86 tested)
Supported platforms: Linux (x86 and ARM), macOS (x86 and ARM)

* [Installation Guide](https://quick-docs.readthedocs.io/en/23.8.0/installation-guide.html#installation-guide)
1. [Compatible Compilers and Hardware](https://quick-docs.readthedocs.io/en/23.8.0/installation-guide.html#compatible-compilers-and-hardware)
Expand All @@ -56,10 +57,12 @@ A list of installation and runtime issues can be found [here](https://quick-docs

Citation
--------
Please cite QUICK-23.08 as follows.
Please cite QUICK-24.03 as follows.

Manathunga, M.; Shajan, A.; Smith, J.; Miao, Y.; He, X.; Ayers, K;
Brothers, E.; Götz, A. W.; Merz, K. M. QUICK-23.08 University of California San Diego, CA and Michigan State University, East Lansing, MI, 2023.
Brothers, E.; Götz, A. W.; Merz, K. M. QUICK-24.03
University of California San Diego, CA and
Michigan State University, East Lansing, MI, 2024.

If you perform density functional theory calculations please also cite:

Expand Down Expand Up @@ -99,9 +102,16 @@ Cruzeiro, V. W. D.; Manathunga, M.; Merz, K. M.; Götz, A. W.
Open-Source Multi-GPU-Accelerated QM/MM Simulations with AMBER and QUICK.
[*J. Chem. Inf. Model.* 61, 2109–2115 (2021)](https://pubs.acs.org/doi/abs/10.1021/acs.jcim.1c00169).

If you perform geometry optimization calculations using the DL-FIND optimizer please also cite:
If you perform geometry optimizations please cite:

Kästner, J.; Carr, J. M.; Keal, T. W.; Thiel, W.; Wander, A.; Sherwood, P. DL-FIND: An Open-Source Geometry Optimizer for Atomistic Simulations.
Shajan, A.; Manathunga, M.; Götz, A.W.; Merz, K.M.
Geometry optimization: A comparison of different open-source geometry optimizers.
[*J. Chem. Theory Comput.* 19, 7533-7541 (2023)](https://doi.org/10.1021/acs.jctc.3c00188).

If you use the DL-FIND for the geometry optimizations please also cite:

Kästner, J.; Carr, J. M.; Keal, T. W.; Thiel, W.; Wander, A.; Sherwood, P.
DL-FIND: An Open-Source Geometry Optimizer for Atomistic Simulations.
[*J. Phys. Chem. A* 113, 11856-11865 (2009)](https://pubs.acs.org/doi/10.1021/jp9028968).

License
Expand Down
Loading

0 comments on commit 46ee0c1

Please sign in to comment.