H2Pack

https://github.com/scalable-matrix/h2pack H2Pack is a high-performance, shared-memory parallel library for linear-scaling matrix-vector multiplication of kernel matrices based on their H2 matrix representations. H2Pack also provides functions for constructing and applying HSS matrix representations (including ULV decomposition and solve). The key feature of H2Pack is the efficient H2 matrix construction for kernel matrices using a hybrid compression method called the proxy point method. H2Pack supports kernel matrices based on translationally-invariant, symmetric kernel functions, e.g., Gaussian, Matern, Laplace, Stokes. H2Pack, written in C99, provides a C/C++ interface and an experimental Python interface.

GTFock

https://github.com/gtfock-chem GTFock is a toolkit for the distributed computation of the Fock matrix in quantum chemistry. It also includes infrastructure for performing self-consistent field (SCF) iterations to solve for the Hartree-Fock approximation. GTFock uses a new distributed algorithm for load balancing and reducing communication and has been demonstrated on 8100 nodes of Tianhe-2. The SCF component of GTFock uses density matrix purification to enhance scalability. GTFock separately constructs generalized Coulomb and exchange matrices can be used to parallelize various methods in quantum chemistry. GTFock can also be used as a benchmark and workload for high-performance computing research.

Simint

https://github.com/simint-chem Simint is a vectorized library for computing electron repulsion integrals (ERIs) in quantum chemistry using the Obara-Saika recurrence relations. Users can generate code for different microarchitectures to take advantatge of vectorization using SSSE3, AVX, AVX2, and AVX512 instructions. Vectorization is at the level of the primitive integrals, which is more effective than vectorization at the level of the contracted integrals. Functionality for first derivatives is also available. Simint was developed primarily by Ben Pritchard (while a postdoc in our group) with performance improvements from Hua Huang (current graduate student). For more information, on Simint, see Horizontal Vectorization of Electron Repulsion Integrals and Accelerating Quantum Chemistry with Vectorized and Batched Integrals.

StokesDT

http://xing-liu.github.io/stokesdt StokesDT is a code for Brownian dynamics simulations that accounts for hydrodynamic interactions. The code also supports Stokesian dynamics simulations. Hydrodynamic interactions are long-range interactions between particles mediated by the fluid. Conventionally, these interactions are modeled by the Rotne-Prager-Yamakawa (RPY) tensor. StokesDT is able simulate very large systems by using the particle-mesh Ewald (PME) technique applied to the RPY tensor. StokesDT is multithreaded code that can use Intel Xeon Phi acceleration. Implementation on other platforms including distributed memory parallel computers is planned. StokesDT can be used to simulate the interactions of macromolecules in living cells.








Older Software

ParaSails

http://computation.llnl.gov/casc/parasails ParaSails is a parallel sparse approximate inverse preconditioner for the iterative solution of large, sparse systems of linear equations. It is a self-contained module in the LLNL hypre library. ParaSails uses least-squares (Frobenius norm) minimization to compute a sparse approximate inverse. The sparsity pattern used is the pattern of a power of a sparsified matrix. ParaSails also uses a post-filtering technique to reduce the cost of applying the preconditioner.

BPKIT

http://bpkit.sourceforge.net BPKIT is a toolkit of block preconditioners for the iterative solution of linear systems. The most effective general purpose and black-box type of preconditioners are available, including block SSOR, block tridiagonal ILU, and the block extension of point ILU with level-of-fill. Any of these "global" preconditioners may be coupled with one of a large collection of "local" preconditioners for approximately or exactly inverting or solving with the diagonal or pivot blocks. These include a number of approximate inverse techniques. By combining a global and local preconditioner, a wide variety of preconditionings are possible, matched to the difficulty and structure of the problem.