ABSTRACT
We discuss the use of dynamic programming languages such as Python to develop first-principles quantum chemistry programs for high-performance computing environments. Dynamic scripting programming languages, in general, have distinct advantages in terms of developer productivity over compiled languages such as C/C++ and Fortran, because of their ease of use and extensive libraries. Such "static" languages have clear performance advantages due to their optimizing compilers. In particular, we report on our experience developing a quantum chemistry program that attempts to combine the best of both worlds by using language binding techniques to bridge different programming languages.
- Valiev, M., Bylaska, E. J., Govind, N., Kowalski, K., Straatsma, T. P., Van Dam, H. J. J., Wang, D., Nieplocha, J., Apra, E., Windus, T. L. and de Jong, W. NWChem: A comprehensive and scalable open-source solution for large scale molecular simulations. Comput Phys Commun, 181 (May 13 2010), 1477.Google ScholarCross Ref
- Ishimura, K. SMASH, http://smash-qc.sourceforge.net.Google Scholar
- Hanenberg, S. An experiment about static and dynamic type systems: doubts about the positive impact of static type systems on development time. In Proc. of the ACM international conference on Object oriented programming systems languages and applications (OOPSLA 2010). pp. 22--35. http://doi.acm.org/10.1145/1869459.1869462 Google ScholarDigital Library
- Delorey, D. P., Knutson, C. D., and Chun, S. Do Programming Languages Affect Productivity? A Case Study Using Data from Open Source Projects. First International Workshop on Emerging Trends in FLOSS Research and Development (FLOSS'07: ICSE Workshops 2007), pp. 8. Google ScholarDigital Library
- Muller, R. P. PyQuante, http://pyquante.sourceforge.net.Google Scholar
- Plimpton, S. Fast Parallel Algorithms for Short-Range Molecular-Dynamics. J Comput Phys, 117 (Mar 1 1995), 1. Google ScholarDigital Library
- Python, https://www.python.org.Google Scholar
- Jensen, F. Introduction to Computational Quantum Chemistry. John Wiley & Sons Ltd, Chichester, 1999.Google Scholar
- Shimazaki, T. and Kubo, M. Efficient density functional theory calculations with weak hydrogen quantum effect: Electron density analysis. Chem Phys Lett, 525--26 (Feb 16 2012), 134.Google ScholarCross Ref
- Shimazaki, T. and Asai, Y. Electronic Structure Calculations under Periodic Boundary Conditions Based on the Gaussian and Fourier Transform (GFT) Method. J Chem Theory Comput, 5 (Nov 25 2009), 136.Google ScholarCross Ref
- CFFI, https://cffi.readthedocs.org/en/latest/Google Scholar
- NumPy, http://www.numpy.org.Google Scholar
- Cython, http://docs.cython.org.Google Scholar
- Swig, http://www.swig.org.Google Scholar
- Abrahams, D. Boost.Python, http://www.boost.org.Google Scholar
- Miyazaki, H., Kusano, Y., Okano, H., Nakada, K., Seki, K., Shimizu, T., Shinjo, N., Shoji, F., Uno, A., and Kurokawa, M. K computer: 8.162 PetaFLOPS massively parallel scalar supercomputer built with over 548k cores. In Proc. of the 2012 IEEE International Solid-State Circuits Conference (ISSCC) Digest of Technical Papers, pp. 192--194, 2012.Google ScholarCross Ref
- Shimazaki, T., Kosugi, T. and Nakajima, T. Range-Separation Density-Fitting Band Structure Calculation with Gaussian Auxiliary Function. J Phys Soc Jpn, 83 (Apr 4 2014), 054702.Google Scholar
- Shimazaki, T. and Nakajima, T. Dielectric-dependent screened Hartree-Fock exchange potential and Slater-formula with Coulomb-hole interaction for energy band structure calculations. J Chem Phys, 141 (Sep 21 2014), 114109.Google ScholarCross Ref
- Shimazaki, T. and Nakajima, T. Theoretical study of a screened Hartree-Fock exchange potential using position-dependent atomic dielectric constants. J Chem Phys, 142 (Feb 21 2015), 074109.Google ScholarCross Ref
- Shimazaki, T. and Nakajima, T. Theoretical study of exciton dissociation through hot states at donor-acceptor interface in organic photocell. Phys Chem Chem Phys, 17 (Apr 16 2015), 12538.Google ScholarCross Ref
- Shimazaki, T. and Nakajima, T. Gaussian-based cutoff scheme on Hartree--Fock exchange term of dielectric-dependent potential. Chem. Phys. Lett., 634 (June 9 2015), 83.Google ScholarCross Ref
- EigenExa: a High performance eigen-solver http://www.aics.riken.jp/labs/lpnctrt/EigenExa_e.html.Google Scholar
- Bahn, S. R. and Jacobsen, K. W. An object-oriented scripting interface to a legacy electronic structure code. Comput Sci Eng, 4 (Oct 7 2002), 56. Google ScholarDigital Library
- Anderson, E., Bai, Z., Bischof, C., Blackford, S., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A. and Sorensen, D. LAPACK User's Guide. Society for Industrial and Applied Mathematics, 1999. Google ScholarDigital Library
Index Terms
- Developing a high-performance quantum chemistry program with a dynamic scripting language
Recommendations
On the benefits and pitfalls of extending a statically typed language JIT compiler for dynamic scripting languages
OOPSLA '12Whenever the need to compile a new dynamically typed language arises, an appealing option is to repurpose an existing statically typed language Just-In-Time (JIT) compiler (repurposed JIT compiler). Existing repurposed JIT compilers (RJIT compilers), ...
On the benefits and pitfalls of extending a statically typed language JIT compiler for dynamic scripting languages
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsWhenever the need to compile a new dynamically typed language arises, an appealing option is to repurpose an existing statically typed language Just-In-Time (JIT) compiler (repurposed JIT compiler). Existing repurposed JIT compilers (RJIT compilers), ...
Adding dynamically-typed language support to a statically-typed language compiler: performance evaluation, analysis, and tradeoffs
VEE '12Applications written in dynamically typed scripting languages are increasingly popular for Web software development. Even on the server side, programmers are using dynamically typed scripting languages such as Ruby and Python to build complex ...
Comments