Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Log inSign up
Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Blog
Job Board
Q3AS

© 2026 Aqora Quantum S.A.S.

TermsPrivacyLegal Notice

Journal of Chemical Theory and Computation

A New Kid on the Block: Application of Julia to Hartree–Fock Calculations

David Poole, Jorge Luis Galvez Vallejo, Mark S. Gordon

Published Jul 7, 2020• 18 citations
Publisher

Abstract

In the field of electronic structure theory, many optimizations, ranging from accelerator offloading to exploitation of modern programming constructs, have been used to improve the performance of quantum chemistry software. However, one area that has remained largely unexplored is the space of novel programming languages that can provide unique benefits to quantum chemistry software development. One such programming language is Julia, an interpreted language designed to achieve the performance of high-performance, statically compiled languages. To assess the viability of Julia, the restricted Hartree-Fock method was implemented in a new quantum chemistry software package, JuliaChem. JuliaChem is a novel quantum chemistry software designed to take advantage of Julia as much as possible while achieving runtimes comparable to that of more established quantum chemistry software packages. Performance benchmarks against the popular quantum chemistry software package GAMESS, using the S22 test set of molecules, indicate that JuliaChem displays performance that is competitive with that of GAMESS. This shows that Julia could be a potentially useful tool for the field of electronic structure theory.

DOI
10.1021/acs.jctc.0c00337

Related papers

Fermi.jl: A Modern Design for Quantum Chemistry

Gustavo J. R. Aroeira, Matthew M. Davis, Justin M. Turney +1 more

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.

Journal of Chemical Theory and Computation•Jan 3, 2022•21 citations

GAMESS, GPUs, JuliaChem, and Julia: a double date in high-performance quantum chemistry

David C. Poole

The first chapter in this thesis describes the theoretical framework that underlies much of electronic structure theory. The second chapter provides a review of the modern state of the intersection between electronic structure theory and high-performance computing. The next four chapters describe the development and implementation of new code into the GAMESS software package that utilizes Graphics Processing Units (GPUs) to achieve optimal performance. Chapter Three discusses an initial implementation of the GPU-driven Fock build step for the Restricted Hartree-Fock (RHF) method and the subsequent performance analysis on the Summit supercomputer. Chapter Four describes further developments to the aforementioned GPU-driven RHF Fock build code. Chapter Five discusses the extension of the GPU-driven RHF Fock build algorithm to the entirety of the Self-Consistent Field (SCF) process, which enables multiple steps of the SCF process to utilize GPUs. Chapter Six discusses the development of a new, GPU-driven algorithm for the Møller-Plesset Second-Order Perturbation Theory method (MP2) using the Resolution of the Identity (RI) and a subsequent performance analysis of the new RI-MP2 algorithm on the Summit Supercomputer. The next two chapters discuss the development of JuliaChem, a new electronic structure theory software package implemented in the Julia programming language. Chapter Seven provides an initial performance assessment of the RHF SCF algorithm implemented in Julia compared to GAMESS. Chapter Eight describes further algorithmic developments to the JuliaChem RHF algorithm and provides a performance analysis compared to modern developments in the GAMESS code. Chapter Nine provides an analysis of the ethylenedione molecule and its inherently unstable nature using multiple theoretical methods. Chapter Ten, the final chapter of the dissertation, provides final concluding thoughts.

•Jan 1, 2021•0 citations

Speeding Up Hartree–Fock in JuliaChem with Density Fitting

John J. Hayes, Mark S. Gordon

In this work, the density fitting (DF) approximation is added to the restricted Hartree-Fock (RHF) implementation in the JuliaChem computational chemistry code. Utilizing a DF algorithm that uses symmetry and integral screening, a significant reduction in time to compute the Fock matrix is achieved. The symmetry and screening DF-RHF techniques were adapted to be performed on graphics processing units (GPUs), which are well suited to perform the matrix multiplications that comprise the bulk of the Fock build time in DF-RHF. The JuliaChem DF-RHF GPU algorithm employs a novel approach that automatically switches between two DF-RHF algorithms depending on the number of basis functions in the calculation. The JuliaChem GPU DF-RHF implementation demonstrates up to 2× speedup for Fock build times compared to the existing best-in-class GPU DF-RHF implementation by operating directly on screened intermediate matrices. Due to the high portability of the Julia language code, the JuliaChem CPU and GPU DF-RHF implementations could be benchmarked on a variety of CPU and GPU architectures from multiple hardware vendors.

Journal of Chemical Theory and Computation•Apr 6, 2026•0 citations

An Examination into SQUANCH and its Conversion to Julia

Takashi Joubert, Douglas D. Hodson, Michael R. Grimaila

The Julia programming language is popular in the technical computing community due to a design that combines performance-oriented characteristics with expressive high-level code. While Python is popular among developers of existing quantum networking simulation software, leveraging Julia's features offers an alternative to current approaches that necessitate bridging Python with low-level languages like C/C++ for performance. This paper details the approach to constructing a Julia package based on the SQUANCH Python library in an attempt to evaluate the potential of Julia as a means of development.

Congress in Computer Science, Computer Engineering, and Applied Computing (CSCE)•Jul 24, 2023•2 citations

2MOLCAS as a development platform for quantum chemistry software

Valera Veryazov, Per‐Olof Widmark, Luis Serrano‐Andrés +2 more

Abstract This work presents the quantum chemistry package MOLCAS, with emphasis on its usefulness as a platform for developing new quantum chemical codes, and the reader is assumed to be familiar with such a process. The development of new codes for quantum chemistry is a time‐consuming job that can be dramatically simplified by using libraries for standard problems (such as calculation of integrals), and tools to surmount computer language and operating system limitations. The MOLCAS quantum chemistry software contains modules for a variety of quantum chemical methods, such as Hartree–Fock (HF), density functional theory (DFT), coupled‐cluster (CC), and multiconfigurational (MCSCF) approaches, including second‐order perturbation theory. It runs on almost all UNIX‐like platforms and contains a single source code for 32‐ and 64‐bit architecture, as well as for serial and parallel execution. The MOLCAS environment allows the user to include, in a simple way, new codes integrated with libraries and other MOLCAS modules. The key features of the MOLCAS environment include a modular structure, an easy‐to‐use environment, an application programming interface (API) library for solving common computational and system‐oriented problems, a solid verification control system, and tools for a distributed development. © 2004 Wiley Periodicals, Inc. Int J Quantum Chem, 2004

International Journal of Quantum Chemistry•Jan 1, 2004•331 citations

QuantumInformation.jl—A Julia package for numerical computation in quantum information theory

Piotr Gawron, Dariusz Kurzyk, Łukasz Pawela

Numerical investigations are an important research tool in quantum information theory. There already exists a wide range of computational tools for quantum information theory implemented in various programming languages. However, there is little effort in implementing this kind of tools in the Julia language. Julia is a modern programming language designed for numerical computation with excellent support for vector and matrix algebra, extended type system that allows for implementation of elegant application interfaces and support for parallel and distributed computing. QuantumInformation.jl is a new quantum information theory library implemented in Julia that provides functions for creating and analyzing quantum states, and for creating quantum operations in various representations. An additional feature of the library is a collection of functions for sampling random quantum states and operations such as unitary operations and generic quantum channels.

arXiv:1806.11464•PLoS ONE•Dec 26, 2018•20 citations
In the field of electronic structure theory, many optimizations, ranging from accelerator offloading to exploitation of modern programming constructs, have been used to improve the performance of quantum chemistry software. However, one area that has remained largely unexplored is the space of novel programming languages that can provide unique benefits to quantum chemistry software development. One such programming language is Julia, an interpreted language designed to achieve the performance of high-performance, statically compiled languages. To assess the viability of Julia, the restricted Hartree-Fock method was implemented in a new quantum chemistry software package, JuliaChem. JuliaChem is a novel quantum chemistry software designed to take advantage of Julia as much as possible while achieving runtimes comparable to that of more established quantum chemistry software packages. Performance benchmarks against the popular quantum chemistry software package GAMESS, using the S22 test set of molecules, indicate that JuliaChem displays performance that is competitive with that of GAMESS. This shows that Julia could be a potentially useful tool for the field of electronic structure theory.
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.
The first chapter in this thesis describes the theoretical framework that underlies much of electronic structure theory. The second chapter provides a review of the modern state of the intersection between electronic structure theory and high-performance computing. The next four chapters describe the development and implementation of new code into the GAMESS software package that utilizes Graphics Processing Units (GPUs) to achieve optimal performance. Chapter Three discusses an initial implementation of the GPU-driven Fock build step for the Restricted Hartree-Fock (RHF) method and the subsequent performance analysis on the Summit supercomputer. Chapter Four describes further developments to the aforementioned GPU-driven RHF Fock build code. Chapter Five discusses the extension of the GPU-driven RHF Fock build algorithm to the entirety of the Self-Consistent Field (SCF) process, which enables multiple steps of the SCF process to utilize GPUs. Chapter Six discusses the development of a new, GPU-driven algorithm for the Møller-Plesset Second-Order Perturbation Theory method (MP2) using the Resolution of the Identity (RI) and a subsequent performance analysis of the new RI-MP2 algorithm on the Summit Supercomputer. The next two chapters discuss the development of JuliaChem, a new electronic structure theory software package implemented in the Julia programming language. Chapter Seven provides an initial performance assessment of the RHF SCF algorithm implemented in Julia compared to GAMESS. Chapter Eight describes further algorithmic developments to the JuliaChem RHF algorithm and provides a performance analysis compared to modern developments in the GAMESS code. Chapter Nine provides an analysis of the ethylenedione molecule and its inherently unstable nature using multiple theoretical methods. Chapter Ten, the final chapter of the dissertation, provides final concluding thoughts.
In this work, the density fitting (DF) approximation is added to the restricted Hartree-Fock (RHF) implementation in the JuliaChem computational chemistry code. Utilizing a DF algorithm that uses symmetry and integral screening, a significant reduction in time to compute the Fock matrix is achieved. The symmetry and screening DF-RHF techniques were adapted to be performed on graphics processing units (GPUs), which are well suited to perform the matrix multiplications that comprise the bulk of the Fock build time in DF-RHF. The JuliaChem DF-RHF GPU algorithm employs a novel approach that automatically switches between two DF-RHF algorithms depending on the number of basis functions in the calculation. The JuliaChem GPU DF-RHF implementation demonstrates up to 2× speedup for Fock build times compared to the existing best-in-class GPU DF-RHF implementation by operating directly on screened intermediate matrices. Due to the high portability of the Julia language code, the JuliaChem CPU and GPU DF-RHF implementations could be benchmarked on a variety of CPU and GPU architectures from multiple hardware vendors.
The Julia programming language is popular in the technical computing community due to a design that combines performance-oriented characteristics with expressive high-level code. While Python is popular among developers of existing quantum networking simulation software, leveraging Julia's features offers an alternative to current approaches that necessitate bridging Python with low-level languages like C/C++ for performance. This paper details the approach to constructing a Julia package based on the SQUANCH Python library in an attempt to evaluate the potential of Julia as a means of development.
Abstract This work presents the quantum chemistry package MOLCAS, with emphasis on its usefulness as a platform for developing new quantum chemical codes, and the reader is assumed to be familiar with such a process. The development of new codes for quantum chemistry is a time‐consuming job that can be dramatically simplified by using libraries for standard problems (such as calculation of integrals), and tools to surmount computer language and operating system limitations. The MOLCAS quantum chemistry software contains modules for a variety of quantum chemical methods, such as Hartree–Fock (HF), density functional theory (DFT), coupled‐cluster (CC), and multiconfigurational (MCSCF) approaches, including second‐order perturbation theory. It runs on almost all UNIX‐like platforms and contains a single source code for 32‐ and 64‐bit architecture, as well as for serial and parallel execution. The MOLCAS environment allows the user to include, in a simple way, new codes integrated with libraries and other MOLCAS modules. The key features of the MOLCAS environment include a modular structure, an easy‐to‐use environment, an application programming interface (API) library for solving common computational and system‐oriented problems, a solid verification control system, and tools for a distributed development. © 2004 Wiley Periodicals, Inc. Int J Quantum Chem, 2004
Numerical investigations are an important research tool in quantum information theory. There already exists a wide range of computational tools for quantum information theory implemented in various programming languages. However, there is little effort in implementing this kind of tools in the Julia language. Julia is a modern programming language designed for numerical computation with excellent support for vector and matrix algebra, extended type system that allows for implementation of elegant application interfaces and support for parallel and distributed computing. QuantumInformation.jl is a new quantum information theory library implemented in Julia that provides functions for creating and analyzing quantum states, and for creating quantum operations in various representations. An additional feature of the library is a collection of functions for sampling random quantum states and operations such as unitary operations and generic quantum channels.