1
|
Chan M, Verstraelen T, Tehrani A, Richer M, Yang XD, Kim TD, Vöhringer-Martinez E, Heidar-Zadeh F, Ayers PW. The tale of HORTON: Lessons learned in a decade of scientific software development. J Chem Phys 2024; 160:162501. [PMID: 38651814 DOI: 10.1063/5.0196638] [Citation(s) in RCA: 0] [Impact Index Per Article: 0] [Reference Citation Analysis] [Abstract] [Track Full Text] [Journal Information] [Subscribe] [Scholar Register] [Received: 01/08/2024] [Accepted: 02/28/2024] [Indexed: 04/25/2024] Open
Abstract
HORTON is a free and open-source electronic-structure package written primarily in Python 3 with some underlying C++ components. While HORTON's development has been mainly directed by the research interests of its leading contributing groups, it is designed to be easily modified, extended, and used by other developers of quantum chemistry methods or post-processing techniques. Most importantly, HORTON adheres to modern principles of software development, including modularity, readability, flexibility, comprehensive documentation, automatic testing, version control, and quality-assurance protocols. This article explains how the principles and structure of HORTON have evolved since we started developing it more than a decade ago. We review the features and functionality of the latest HORTON release (version 2.3) and discuss how HORTON is evolving to support electronic structure theory research for the next decade.
Collapse
Affiliation(s)
- Matthew Chan
- Department of Chemistry and Chemical Biology, McMaster University, Hamilton, Ontario L8S-4L8, Canada
| | - Toon Verstraelen
- Center for Molecular Modeling (CMM), Ghent University, Technologiepark-Zwijnaarde 46, B-9052 Ghent, Belgium
| | - Alireza Tehrani
- Department of Chemistry, Queen's University, Kingston, Ontario K7L-3N6, Canada
| | - Michelle Richer
- Department of Chemistry and Chemical Biology, McMaster University, Hamilton, Ontario L8S-4L8, Canada
| | - Xiaotian Derrick Yang
- Department of Chemistry and Chemical Biology, McMaster University, Hamilton, Ontario L8S-4L8, Canada
| | - Taewon David Kim
- Department of Chemistry and Chemical Biology, McMaster University, Hamilton, Ontario L8S-4L8, Canada
| | - Esteban Vöhringer-Martinez
- Departamento de Físico Química, Facultad de Ciencias Químicas, Universidad de Concepción, 4070371 Concepción, Chile
| | - Farnaz Heidar-Zadeh
- Department of Chemistry, Queen's University, Kingston, Ontario K7L-3N6, Canada
| | - Paul W Ayers
- Department of Chemistry and Chemical Biology, McMaster University, Hamilton, Ontario L8S-4L8, Canada
| |
Collapse
|
2
|
Zahariev F, Xu P, Westheimer BM, Webb S, Galvez Vallejo J, Tiwari A, Sundriyal V, Sosonkina M, Shen J, Schoendorff G, Schlinsog M, Sattasathuchana T, Ruedenberg K, Roskop LB, Rendell AP, Poole D, Piecuch P, Pham BQ, Mironov V, Mato J, Leonard S, Leang SS, Ivanic J, Hayes J, Harville T, Gururangan K, Guidez E, Gerasimov IS, Friedl C, Ferreras KN, Elliott G, Datta D, Cruz DDA, Carrington L, Bertoni C, Barca GMJ, Alkan M, Gordon MS. The General Atomic and Molecular Electronic Structure System (GAMESS): Novel Methods on Novel Architectures. J Chem Theory Comput 2023; 19:7031-7055. [PMID: 37793073 DOI: 10.1021/acs.jctc.3c00379] [Citation(s) in RCA: 2] [Impact Index Per Article: 2.0] [Reference Citation Analysis] [Abstract] [Track Full Text] [Journal Information] [Subscribe] [Scholar Register] [Indexed: 10/06/2023]
Abstract
The primary focus of GAMESS over the last 5 years has been the development of new high-performance codes that are able to take effective and efficient advantage of the most advanced computer architectures, both CPU and accelerators. These efforts include employing density fitting and fragmentation methods to reduce the high scaling of well-correlated (e.g., coupled-cluster) methods as well as developing novel codes that can take optimal advantage of graphical processing units and other modern accelerators. Because accurate wave functions can be very complex, an important new functionality in GAMESS is the quasi-atomic orbital analysis, an unbiased approach to the understanding of covalent bonds embedded in the wave function. Best practices for the maintenance and distribution of GAMESS are also discussed.
Collapse
Affiliation(s)
- Federico Zahariev
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Peng Xu
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Bryce M Westheimer
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Simon Webb
- VeraChem LLC, 12850 Middlebrook Road, Suite 205, Germantown, Maryland 20874-5244, United States
| | - Jorge Galvez Vallejo
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
- Research School of Computer Science, Australian National University, Canberra, ACT 2601, Australia
| | - Ananta Tiwari
- EP Analytics, Inc., 9909 Mira Mesa Boulevard, Suite 230, San Diego, California 92131, United States
| | - Vaibhav Sundriyal
- Department of Computational Modeling and Simulation Engineering, Old Dominion University, Norfolk, Virginia 23529, United States
| | - Masha Sosonkina
- Department of Computational Modeling and Simulation Engineering, Old Dominion University, Norfolk, Virginia 23529, United States
| | - Jun Shen
- Department of Chemistry, Michigan State University, East Lansing, Michigan 48824, United States
| | - George Schoendorff
- Propellants Branch, Rocket Propulsion Division, Aerospace Systems Directorate, Air Force Research Laboratory, AFRL/RQRP, Edwards Air Force Base, California 93524, United States
| | - Megan Schlinsog
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Tosaporn Sattasathuchana
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Klaus Ruedenberg
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Luke B Roskop
- Hewlett-Packard Enterprise, 2131 Lindau Lane #1000, Bloomington, Minnesota 55425, United States
| | | | - David Poole
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
- School of Chemistry & Biochemistry, Georgia Institute of Technology, Athens, Georgia 30332, United States
| | - Piotr Piecuch
- Department of Chemistry and Department of Physics and Astronomy, Michigan State University, East Lansing, Michigan 48824, United States
| | - Buu Q Pham
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Vladimir Mironov
- Department of Chemistry, Kyungpook National University, Daegu 41566, South Korea
| | - Joani Mato
- Physical Sciences Division, Pacific Northwest National Laboratory, 902 Battelle Boulevard, P.O. Box 999, MS K1-83, Richland, Washington 99352, United States
| | - Sam Leonard
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Sarom S Leang
- EP Analytics, Inc., 9909 Mira Mesa Boulevard, Suite 230, San Diego, California 92131, United States
| | - Joe Ivanic
- Advanced Biomedical Computational Science, Frederick National Laboratory for Cancer Research, Frederick, Maryland 21702, United States
| | - Jackson Hayes
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Taylor Harville
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Karthik Gururangan
- Department of Chemistry, Michigan State University, East Lansing, Michigan 48824, United States
| | - Emilie Guidez
- Department of Chemistry, University of Colorado Denver, Denver, Colorado 80217, United States
| | - Igor S Gerasimov
- Department of Chemistry, Kyungpook National University, Daegu 41566, South Korea
| | - Christian Friedl
- Institut für Theoretische Physik, Johannes Kepler Universität Linz, Altenberger Str. 69, 4040 Linz, Austria
| | - Katherine N Ferreras
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - George Elliott
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Dipayan Datta
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Daniel Del Angel Cruz
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Laura Carrington
- EP Analytics, Inc., 9909 Mira Mesa Boulevard, Suite 230, San Diego, California 92131, United States
| | - Colleen Bertoni
- Argonne Leadership Computing Facility, Argonne National Laboratory, Lemont, Illinois 60439, United States
| | - Giuseppe M J Barca
- Research School of Computer Science, Australian National University, Canberra, ACT 2601, Australia
| | - Melisa Alkan
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| | - Mark S Gordon
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50014, United States
| |
Collapse
|
3
|
Malone FD, Mahajan A, Spencer JS, Lee J. ipie: A Python-Based Auxiliary-Field Quantum Monte Carlo Program with Flexibility and Efficiency on CPUs and GPUs. J Chem Theory Comput 2023; 19:109-121. [PMID: 36503227 DOI: 10.1021/acs.jctc.2c00934] [Citation(s) in RCA: 7] [Impact Index Per Article: 7.0] [Reference Citation Analysis] [Abstract] [Track Full Text] [Journal Information] [Subscribe] [Scholar Register] [Indexed: 12/14/2022]
Abstract
We report the development of a python-based auxiliary-field quantum Monte Carlo (AFQMC) program, ipie, with preliminary timing benchmarks and new AFQMC results on the isomerization of [Cu2O2]2+. We demonstrate how implementations for both central and graphical processing units (CPUs and GPUs) are achieved in ipie. We show an interface of ipie with PySCF as well as a straightforward template for adding new estimators to ipie. Our timing benchmarks against other C++ codes, QMCPACK and Dice, suggest that ipie is faster or similarly performing for all chemical systems considered on both CPUs and GPUs. Our results on [Cu2O2]2+ using selected configuration interaction trials show that it is possible to converge the ph-AFQMC isomerization energy between bis(μ-oxo) and μ-η2:η2 peroxo configurations to the exact known results for small basis sets with 105-106 determinants. We also report the isomerization energy with a quadruple-zeta basis set with an estimated error less than a kcal/mol, which involved 52 electrons and 290 orbitals with 106 determinants in the trial wave function. These results highlight the utility of ph-AFQMC and ipie for systems with modest strong correlation and large-scale dynamic correlation.
Collapse
Affiliation(s)
- Fionn D Malone
- Google Research, Venice, California 90291, United States
| | - Ankit Mahajan
- Department of Chemistry, University of Colorado, Boulder, Colorado 80302, United States
| | | | - Joonho Lee
- Department of Chemistry, Columbia University, New York, New York 10027, United States
| |
Collapse
|
5
|
Poole D, Galvez Vallejo JL, Gordon MS. A Task-Based Approach to Parallel Restricted Hartree-Fock Calculations. J Chem Theory Comput 2022; 18:2144-2161. [PMID: 35377639 DOI: 10.1021/acs.jctc.1c00820] [Citation(s) in RCA: 0] [Impact Index Per Article: 0] [Reference Citation Analysis] [Abstract] [Track Full Text] [Journal Information] [Subscribe] [Scholar Register] [Indexed: 11/28/2022]
Abstract
In recent years, parallelism via multithreading has become extremely important to the optimization of high-performance electronic structure theory codes. Such multithreading is generally achieved via OpenMP constructs, using a fork-join threading model to enable thread-level data parallelism within the code. An alternative approach to multithreading is task-based parallelism, which displays multiple benefits relative to fork-join thread parallelism. A novel Restricted Hartree-Fock (RHF) algorithm, utilizing task-based parallelism to achieve optimal performance, was developed and implemented into the JuliaChem electronic structure theory software package. The new RHF algorithm utilizes a unique method of shell quartet batch creation, enabling construction and distribution of fine-grained shell quartet batches in a load-balanced manner using the Julia task construct. These shell quartet batches are then distributed statically across message-passing interface (MPI) ranks and dynamically across threads within an MPI rank, requiring no explicit inter-rank or interthread synchronization to do so. Compared to the hybrid MPI/OpenMP RHF algorithm present in the GAMESS software package, the task-based algorithm demonstrates speedups of up to ∼40% for systems in the S22(3) test set of molecules, with system sizes up to ∼1000 basis functions. The JuliaChem algorithm demonstrates the viability of both the task-based parallelism model and the Julia programming language for construction of performant electronic structure theory codes targeting systems of a size of chemical interest.
Collapse
Affiliation(s)
- David Poole
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50011, United States
| | - Jorge L Galvez Vallejo
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50011, United States
| | - Mark S Gordon
- Department of Chemistry and Ames Laboratory, Iowa State University, Ames, Iowa 50011, United States
| |
Collapse
|
7
|
Aroeira GJR, Davis MM, Turney JM, Schaefer HF. Fermi.jl: A Modern Design for Quantum Chemistry. J Chem Theory Comput 2022; 18:677-686. [PMID: 34978451 DOI: 10.1021/acs.jctc.1c00719] [Citation(s) in RCA: 2] [Impact Index Per Article: 1.0] [Reference Citation Analysis] [Abstract] [Track Full Text] [Journal Information] [Subscribe] [Scholar Register] [Indexed: 01/25/2023]
Abstract
Approximating molecular wave functions involves heavy numerical effort; therefore, codes for such tasks are written completely or partially in efficient languages such as C, C++, and Fortran. While these tools are dominant throughout quantum chemistry packages, the efficient development of new methods is often hindered by the complexity associated with code development. In order to ameliorate this scenario, some software packages take a dual approach where a simpler, higher-level language, such as Python, substitutes the traditional ones wherever performance is not critical. Julia is a novel, dynamically typed, programming language that aims to solve this two-language problem. It gained attention because of its modern and intuitive design, while still being highly optimized to compete with "low-level" languages. Recently, some chemistry-related projects have emerged exploring the capabilities of Julia. Herein, we introduce the quantum chemistry package Fermi.jl, which contains the first implementations of post-Hartree-Fock methods written in Julia. Its design makes use of many Julia core features, including multiple dispatch, metaprogramming, and interactive usage. Fermi.jl is a modular package, where new methods and implementations can be easily added to the existing code. Furthermore, it is designed to maximize code reusability by relying on general functions with specialized methods for particular cases. The feasibility of the project is explored through evaluating the performance of popular ab initio methods. It is our hope that this project motivates the usage of Julia within the community and brings new contributions into Fermi.jl.
Collapse
Affiliation(s)
- Gustavo J R Aroeira
- Center for Computational Quantum Chemistry, University of Georgia, Athens, Georgia 30602, United States
| | - Matthew M Davis
- Center for Computational Quantum Chemistry, University of Georgia, Athens, Georgia 30602, United States
| | - Justin M Turney
- Center for Computational Quantum Chemistry, University of Georgia, Athens, Georgia 30602, United States
| | - Henry F Schaefer
- Center for Computational Quantum Chemistry, University of Georgia, Athens, Georgia 30602, United States
| |
Collapse
|