Abstract
The basic matrix library package (BML) provides a common application programming interface (API) for linear algebra and matrix functions in C and Fortran for quantum chemistry codes. The BML API is matrix format independent. Currently the dense, compressed sparse row, and ELLPACK-R sparse matrix data types are available, each with different implementations. We show how the second-order spectral projection (SP2) algorithm used to compute the electronic structure of a molecular system represented with a tight-binding Hamiltonian can be successfully implemented with the aid of this library.
Similar content being viewed by others
References
Merali Z (2010) Computational science: error, why scientific programming does not compute. Nature 467(7317):775–777. https://doi.org/10.1038/467775a
Watkins DS (2010) Fundamentals of matrix computations, 3rd edn. Wiley, New York
Niklasson AMN (2002) Expansion algorithm for the density matrix. Phys Rev B 66:155115
Mniszewski SM, Cawkwell MJ, Mohd-Yusof J, Bock N, Germann TC, Niklasson AMN (2015) Parallel linear scaling calculation of the density matrix in electronic structure theory. J Chem Theory Comput 11(10):4644–4654
Negre CFA, Mniszewski SM, Cawkwell MJ, Bock N, Wall ME, Niklasson AMN (2016) Recursive factorization of the inverse overlap matrix in linear-scaling quantum molecular dynamics simulations. J Chem Theory Comput 12(7):3063–3073. https://doi.org/10.1021/acs.jctc.6b00154
Cawkwell MJ, Sanville EJ, Mniszewski SM, Niklasson AMN (2012) Computing the density matrix in electronic structure theory on graphics processing units. J Chem Theory Comput 8(11):4094–4101
Cawkwell MJ, Wood MA, Niklasson AMN, Mniszewski SM (2014) Computation of the density matrix in electronic structure theory in parallel on multiple graphics processing units. J Chem Theory Comput 10(12):5391–5396
SimuNova (2016) Matrix template library (mtl). http://www.simunova.com/#en-mtl4-index-html. Accessed 30 Jan 2018
Mohr S, Dawson W, Wagner M, Caliste D, Nakajima T, Genovese L (2017) Efficient computation of sparse matrix functions for large-scale electronic structure calculations: the chess library. J Chem Theory Comput 13:4684–4698
Freely available software for linear algebra (2018) http://www.netlib.org/utk/people/JackDongarra/la-sw.html. Accessed 30 Jan 2018
Daydé MJ, Duff IS (1995) A block implementation of level 3 blas for risc processors (to appear)
Anderson E, Bai Z, Bischof C, Demmel J, Dongarra J, Du Croz J, Greenbaum A, Hammarling S, McKenney A, Ostrouchov S, Sorensen D (1994) LAPACK Users’ Guide, SIAM, release 2.0 Edition
Intel, Intel math kernel library (intel mkl) (2017) https://software.intel.com/en-us/intel-mkl. Accessed 30 Jan 2018
AMD, Amd core math library (acml) (2017) http://developer.amd.com/tools-and-sdks/archive/amd-core-math-library-acml/. Accessed 30 Jan 2018
AMD, Amd core math library clblas (2017) https://github.com/clMathLibraries/clBLAS. Accessed 30 Jan 2018
OpenBLAS, Openblas library (2017) http://www.openblas.net/. Accessed 30 Jan 2018
TACC, Gotoblas2 library (2017) https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2. Accessed 30 Jan 2018
Nvidia, cublas (2014) http://developer.nvidia.com/cuBLAS. Accessed 30 Jan 2018
Challacombe M (2000) A general parallel sparse-blocked matrix multiply for linear scaling scf theory. Comput Phys Commun 128(1):93–107. https://doi.org/10.1016/S0010-4655(00)00074-6
cppreference.com, Switch statement (2017) http://en.cppreference.com/w/c/language/switch. Accessed 30 Jan 2018
Vasquez F, Ortega G, Fernandez JJ, Garzon E (2010) Improving the performance of the sparse matrix vector product with gpus. In: 10th IEEE International Conference on Computer and Information Technology, pp 1146–1151
cppreference.com, Preprocessor (2017) http://en.cppreference.com/w/cpp/preprocessor/replace. Accessed 30 Jan 2018
Board OAR (2014) Openmp. http://openmp.org. Accessed 30 Jan 2018
The ecp homepage (2017) https://exascaleproject.org/. Accessed 30 Jan 2018
The dftb+ homepage (2017) https://www.dftbplus.org/. Accessed 30 Jan 2018
The siesta homepage. https://departments.icmab.es/leem/siesta/. Accessed 30 Jan 2018
Cp2k project homepage (2017) https://www.cp2k.org/. Accessed 30 Jan 2018
The adf modeling suite homepage (2017) https://www.scm.com/. Accessed 30 Jan 2018
The cpmd homepage (2017) http://www.cpmd.org/. Accessed 30 Jan 2018
The dacapo homepage (2017) https://wiki.fysik.dtu.dk/dacapo. Accessed 30 Jan 2018
The gamess homepage (2017) http://www.msg.chem.iastate.edu/gamess/. Accessed 30 Jan 2018
The gaussian homepage (2017) http://gaussian.com/. Accessed 30 Jan 2018
Bigdft homepage (2017) http://bigdft.org/Wiki/index.php?title=BigDFT_website. Accessed 30 Jan 2018
The vasp homepage (2017) http://www.vasp.at/. Accessed 30 Jan 2018
The turbomole homepage (2017) http://www.cosmologic.de/turbomole/home.html. Accessed 30 Jan 2018
The mopac homepage (2017) http://openmopac.net/. Accessed 30 Jan 2018
The jaguar homepage (2017) https://www.schrodinger.com/jaguar. Accessed 30 Jan 2018
Aradi B, Bock N, Mniszewski SM, Mohd-Yusof J, Negre C (2016) The basic matrix library manual. https://qmmd.github.io. Accessed 30 Jan 2018
Travis-CI, Travis-CI (2017) https://travis-ci.org/. Accessed 30 Jan 2018
Codecov, Codecov (2017) https://codecov.io/. Accessed 30 Jan 2018
Challacombe M (1999) A simplified density matrix minimization for linear scaling self-consistent field theory. J Chem Phys 110(5):2332–2342
Challacombe M, Bock N Fast multiplication of matrices with decay, CoRR abs/1011.3534. arXiv:1011.3534
Bock N, Challacombe M (2013) An optimized sparse approximate matrix multiply for matrices with decay. J Sci Comput 35(1):C72–C98. https://doi.org/10.1137/120870761
Sato N, Tinney W (1963) Techniques for exploiting the sparsity or the network admittance matrix. IEEE Trans Power Appar Syst 82(69):944–950
Tinney WF, Walker JW (1967) Direct solutions of sparse network equations by optimally ordered triangular factorization. Proc IEEE 55(11):1801–1809. https://doi.org/10.1109/PROC.1967.6011
Saad Y (2003) Iterative methods for sparse linear systems, 2nd edn. Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9780898718003
George A, Liu JW (1981) Computer solution of large sparse positive definite. Prentice Hall Professional Technical Reference, Upper Saddle River
Davis T (2006) Direct methods for sparse linear systems. Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9780898718881
Golub GH, Charles FVL (2007) Matrix computations. Johns Hopkins University Press, Baltimore
Gustavson FG (1978) Two fast algorithms for sparse matrices: multiplication and permuted transposition. ACM Trans Math Softw 4(3):250–269
Mohd-Yusof J, Sakharnykh N, Mniszewski SM, Cawkwell MJ, Bock N, Germann TC, Niklasson AMN (2015) Fast sparse matrix multiplication for QMD using parallel merge. In: GPU Technology Conference
Dongarra J, Gates M, Haidar A, Kurzak J, Luszczek P, Tomov S, Yamazaki I (2014) Accelerating Numerical Dense Linear Algebra Calculations with GPUs. In: Kindratenko V (ed) Numerical Computations with GPUs. Springer International Publishing, Cham, pp 3-28. https://doi.org/10.1007/978-3-319-06548-9_1
Sakurai JJ (1994) Modern quantum mechanics. Addison Wesley, Reading
Golub G, van Loan CF (1996) Matrix computations. Johns Hopkins University Press, Baltimore
Wilson G, Aruliah D, Brown CT, Hong NPC, Davis M, Guy RT, Haddock SH, Huff KD, Mitchell IM, Plumbley MD (2014) Best practices for scientific computing. PLoS Biol 12(1):e1001745
Aradi B, Hourahine B, Frauenheim T (2007) Dftb+, a sparse matrix-based implementation of the dftb method. J Phys Chem A 111(26):5678–5684, pMID: 17567110. https://doi.org/10.1021/jp070186p
Slater JC, Koster GF (1954) Simplified lcao method for the periodic potential problem. Phys Rev 94:1498–1524. https://doi.org/10.1103/PhysRev.94.1498
Elstner M, Porezag D, Jungnickel G, Elsner J, Haugk M, Frauenheim T, Suhai S, Seifert G (1998) Self-consistent-charge density-functional tight-binding method for simulations of complex materials properties. Phys Rev B 58:7260–7268. https://doi.org/10.1103/PhysRevB.58.7260
Löwdin PO (1956) Quantum theory of cohesive properties of solids. Adv Phys 5:3–164
Niklasson AM, Mniszewski SM, Negre CFA, Wall ME, Cawkwell MJ, Bock N (2016) PROGRESS version 1.0. https://github.com/lanl/qmd-progress. Accessed 30 Jan 2018
Acknowledgements
This article was approved for unlimited release with the following LA-UR number: ’LA-UR-17-29481’. This library was developed using funding from: (1) Basic Energy Sciences (LANL2014E8AN) and the Laboratory Directed Research and Development Program of Los Alamos National Laboratory. To tests these developments we used resources provided by the Los Alamos National Laboratory Institutional Computing Program, which is supported by the U.S. Department of Energy National Nuclear Security Administration. (2) Exascale Computing Project (17-SC-20-SC), a collaborative effort of two U.S. Department of Energy organizations (Office of Science and the National Nuclear Security Administration) responsible for the planning and preparation of a capable exascale ecosystem, including software, applications, hardware, advanced system engineering, and early testbed platforms, in support of the nation’s exascale computing imperative. First and second authors have equally contributed to the manuscript.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Library title
Basic Matrix Library (BML).
Library URL
https://zenodo.org/badge/latestdoi/20454/qmmd/bml.
Licensing provisions
BSD 3-clause.
Programming language
Fortran 90 and C.
Compilers
GNU and INTEL FORTRAN compilers.
Operating system
Unix/Linux.
Parallelization
Support for OpenMP and MPI.
External libraries
LAPACK and BLAS libraries.
Configuration and building
CMAKE for building, testing and packaging.
Purpose of the library
Matrix operations in several different formats handled through a common API.
Rights and permissions
About this article
Cite this article
Bock, N., Negre, C.F.A., Mniszewski, S.M. et al. The basic matrix library (BML) for quantum chemistry. J Supercomput 74, 6201–6219 (2018). https://doi.org/10.1007/s11227-018-2533-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-018-2533-0