Since the number of NAC vectors grows quadratically with the number of electronic states used in the simulation, the amount of electronic structure information needed for a single time step of a large molecular system can, very quickly, become prohibitively expensive to compute unless the work is parallelized across multiple computational nodes. Because each gradient and NAC computation can be performed independently from one another, we utilized the TeraChem Protocol Buffer (TCPB) library to efficiently distribute the workload across all available GPUs within a computing network. As opposed to running TeraChem with multiple input files, TeraChem is instead executed in a server mode that receives and transmits "job" information as requested by PySCES via the TCPB library. A request to perform a particular job (gradient and NAC) is sent to the server along with the atomic coordinates, the basis set, the electronic structure method, and any setting otherwise used in a traditional TeraChem input file. Once all of the required gradients and NAC vectors are computed (energies E i are also computed with each job), their results are summarized and used to update the molecular geometry.