Skip to main content
Log in

The basic matrix library (BML) for quantum chemistry

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  1. Merali Z (2010) Computational science: error, why scientific programming does not compute. Nature 467(7317):775–777. https://doi.org/10.1038/467775a

    Article  Google Scholar 

  2. Watkins DS (2010) Fundamentals of matrix computations, 3rd edn. Wiley, New York

    MATH  Google Scholar 

  3. Niklasson AMN (2002) Expansion algorithm for the density matrix. Phys Rev B 66:155115

    Article  Google Scholar 

  4. 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

    Article  Google Scholar 

  5. 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

    Article  Google Scholar 

  6. 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

    Article  Google Scholar 

  7. 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

    Article  Google Scholar 

  8. SimuNova (2016) Matrix template library (mtl). http://www.simunova.com/#en-mtl4-index-html. Accessed 30 Jan 2018

  9. 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

    Article  Google Scholar 

  10. Freely available software for linear algebra (2018) http://www.netlib.org/utk/people/JackDongarra/la-sw.html. Accessed 30 Jan 2018

  11. Daydé MJ, Duff IS (1995) A block implementation of level 3 blas for risc processors (to appear)

  12. 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

  13. Intel, Intel math kernel library (intel mkl) (2017) https://software.intel.com/en-us/intel-mkl. Accessed 30 Jan 2018

  14. AMD, Amd core math library (acml) (2017) http://developer.amd.com/tools-and-sdks/archive/amd-core-math-library-acml/. Accessed 30 Jan 2018

  15. AMD, Amd core math library clblas (2017) https://github.com/clMathLibraries/clBLAS. Accessed 30 Jan 2018

  16. OpenBLAS, Openblas library (2017) http://www.openblas.net/. Accessed 30 Jan 2018

  17. TACC, Gotoblas2 library (2017) https://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2. Accessed 30 Jan 2018

  18. Nvidia, cublas (2014) http://developer.nvidia.com/cuBLAS. Accessed 30 Jan 2018

  19. 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

    Article  MATH  Google Scholar 

  20. cppreference.com, Switch statement (2017) http://en.cppreference.com/w/c/language/switch. Accessed 30 Jan 2018

  21. 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

  22. cppreference.com, Preprocessor (2017) http://en.cppreference.com/w/cpp/preprocessor/replace. Accessed 30 Jan 2018

  23. Board OAR (2014) Openmp. http://openmp.org. Accessed 30 Jan 2018

  24. The ecp homepage (2017) https://exascaleproject.org/. Accessed 30 Jan 2018

  25. The dftb+ homepage (2017) https://www.dftbplus.org/. Accessed 30 Jan 2018

  26. The siesta homepage. https://departments.icmab.es/leem/siesta/. Accessed 30 Jan 2018

  27. Cp2k project homepage (2017) https://www.cp2k.org/. Accessed 30 Jan 2018

  28. The adf modeling suite homepage (2017) https://www.scm.com/. Accessed 30 Jan 2018

  29. The cpmd homepage (2017) http://www.cpmd.org/. Accessed 30 Jan 2018

  30. The dacapo homepage (2017) https://wiki.fysik.dtu.dk/dacapo. Accessed 30 Jan 2018

  31. The gamess homepage (2017) http://www.msg.chem.iastate.edu/gamess/. Accessed 30 Jan 2018

  32. The gaussian homepage (2017) http://gaussian.com/. Accessed 30 Jan 2018

  33. Bigdft homepage (2017) http://bigdft.org/Wiki/index.php?title=BigDFT_website. Accessed 30 Jan 2018

  34. The vasp homepage (2017) http://www.vasp.at/. Accessed 30 Jan 2018

  35. The turbomole homepage (2017) http://www.cosmologic.de/turbomole/home.html. Accessed 30 Jan 2018

  36. The mopac homepage (2017) http://openmopac.net/. Accessed 30 Jan 2018

  37. The jaguar homepage (2017) https://www.schrodinger.com/jaguar. Accessed 30 Jan 2018

  38. 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

  39. Travis-CI, Travis-CI (2017) https://travis-ci.org/. Accessed 30 Jan 2018

  40. Codecov, Codecov (2017) https://codecov.io/. Accessed 30 Jan 2018

  41. Challacombe M (1999) A simplified density matrix minimization for linear scaling self-consistent field theory. J Chem Phys 110(5):2332–2342

    Article  Google Scholar 

  42. Challacombe M, Bock N Fast multiplication of matrices with decay, CoRR abs/1011.3534. arXiv:1011.3534

  43. 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

    Article  MathSciNet  MATH  Google Scholar 

  44. Sato N, Tinney W (1963) Techniques for exploiting the sparsity or the network admittance matrix. IEEE Trans Power Appar Syst 82(69):944–950

    Article  Google Scholar 

  45. 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

    Article  Google Scholar 

  46. 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

    Book  MATH  Google Scholar 

  47. George A, Liu JW (1981) Computer solution of large sparse positive definite. Prentice Hall Professional Technical Reference, Upper Saddle River

    MATH  Google Scholar 

  48. Davis T (2006) Direct methods for sparse linear systems. Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9780898718881

    Book  MATH  Google Scholar 

  49. Golub GH, Charles FVL (2007) Matrix computations. Johns Hopkins University Press, Baltimore

    MATH  Google Scholar 

  50. Gustavson FG (1978) Two fast algorithms for sparse matrices: multiplication and permuted transposition. ACM Trans Math Softw 4(3):250–269

    Article  MathSciNet  Google Scholar 

  51. 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

  52. 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

    MATH  Google Scholar 

  53. Sakurai JJ (1994) Modern quantum mechanics. Addison Wesley, Reading

    Google Scholar 

  54. Golub G, van Loan CF (1996) Matrix computations. Johns Hopkins University Press, Baltimore

    MATH  Google Scholar 

  55. 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

    Article  Google Scholar 

  56. 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

    Article  Google Scholar 

  57. 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

    Article  MATH  Google Scholar 

  58. 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

    Article  Google Scholar 

  59. Löwdin PO (1956) Quantum theory of cohesive properties of solids. Adv Phys 5:3–164

    Article  MathSciNet  Google Scholar 

  60. 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

Download references

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

Authors

Corresponding author

Correspondence to Christian F. A. Negre.

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-018-2533-0

Keywords

Navigation