ISSN:
0020-7608
Keywords:
Computational Chemistry and Molecular Modeling
;
Atomic, Molecular and Optical Physics
Source:
Wiley InterScience Backfile Collection 1832-2000
Topics:
Chemistry and Pharmacology
Notes:
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.
Additional Material:
9 Tab.
Type of Medium:
Electronic Resource
URL:
http://dx.doi.org/10.1002/qua.560300759
Permalink