z-logo
Premium
An optimizing interpreter for multidimensional products in computational chemistry
Author(s) -
Cole Samuel J.,
Purvis George D.
Publication year - 1986
Publication title -
international journal of quantum chemistry
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.484
H-Index - 105
eISSN - 1097-461X
pISSN - 0020-7608
DOI - 10.1002/qua.560300759
Subject(s) - fortran , matrix multiplication , computer science , product (mathematics) , computation , code (set theory) , set (abstract data type) , computational science , coupled cluster , matrix (chemical analysis) , algorithm , parallel computing , chemistry , programming language , mathematics , physics , quantum , geometry , organic chemistry , quantum mechanics , chromatography , molecule
The multidimensional product between an N ‐dimensional array B and an M ‐dimensional array C produces an ( N + M − 2L )‐dimensional array A from the dot‐product‐like contraction of L pairs of dimensions in B and C. For example, in the multiplication\documentclass{article}\pagestyle{empty}\begin{document}$$A(i,j,k,l,...) = \sum\limits_{a,b,...} {B(i,a,j,b,...){\rm}C(l,a,b,k,...)}$$\end{document} indices a,b,… are contracted, and the remaining indices i,j,k,l,… are mapped from matrices B and C to the target matrix A . We have developed an algorithm, which we incorporated into a program called GENPRD, for interpreting the topological description of a general multidimensional matrix product, optimizing the execution path, and finally evaluating the product. No specific information about the nature of a given product is included in the program. Instead, GENPRD is driven by two tables: one specifies the indices to be contracted and the mapping of the uncontracted indices to the target array; the second one indicates the organization of the arrays in secondary storage. The tables are text files which are read at execution time. The information is then processed to form an optimized set of loops for evaluating the product and performing associated I/O. GENPRD is implemented in a program for quantum‐chemical computations using many‐body perturbation theory and the coupled‐cluster method. This implementation produced code that ran at 90% of the speed of the hand‐coded version. Ultimately, GENPRD will reduce the FORTRAN code from 20,000 lines to 2,000 lines.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here