The routine use of electronic structure in many chemical simulation applications calls for efficient and easy ways to access electronic structure programs. We describe how the graphics processing unit (GPU) accelerated electronic structure program TeraChem can be set up as an electronic structure server, to be easily accessed by third-party client programs. We exploit Google’s protocol buffer framework for data serialization and communication. The client interface, called TeraChem protocol buffers (TCPB), has been designed for ease of use and compatibility with multiple programming languages, such as C++, Fortran, and Python. To demonstrate the ease of coupling third-party programs with electronic structure using TCPB, we have incorporated the TCPB client into Amber for quantum mechanics/molecular mechanics (QM/MM) simulations. The TCPB interface saves time with GPU initialization and I/O operations, achieving a speedup of more than 2x compared to a prior file-based implementation for a QM region with ~250 basis functions. We demonstrate the practical application of TCPB by computing the free energy profile of p-HBDI- – a model chromophore in green fluorescent proteins – on the first excited singlet state using Hamiltonian replica exchange (H-REMD) for enhanced sampling. All calculations in this work have been performed with the freely-available version of TeraChem, which is sufficient for many QM region sizes in common use.
Supporting Information for “TeraChem Protocol Buffers (TCPB): Accelerating QM and QM/MM Simulations with a Client-Server Model”
General installation instructions. Instructions for running TeraChem in server mode. Additional PyTCPB usage information. How to run TCPB examples. Technical details about TCPB functions. Usage details for QM/MM simulations in Amber. Histograms of ϕ_I values from the umbrella sampling simulation.
Supporting Information for "TeraChem Protocol Buffers (TCPB): Accelerating QM and QM/MM Simulations with a Client-Server Model"
Examples of how to use TCPB from Fortran, C++, and Python, including when MM interactions are computed by OpenMM interfaced with TeraChem. Input files for all QM/MM simulations reported in this work.