Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] adjk_v1_0.tar.gz(107 Kbytes)|
|Manuscript Title: Maple programs for generating efficient Fortran code for serial and vectorised machines.|
|Authors: C. Gomez, T. Scott|
|Program title: RMAKE|
|Catalogue identifier: ADJK_v1_0|
Distribution format: tar.gz
|Journal reference: Comput. Phys. Commun. 115(1998)548|
|Programming language: Maple.|
|Computer: DEC ALPHA 300 (150Mz).|
|Operating system: UNIX.|
|RAM: 1M words|
|Word size: 32|
|Keywords: Computer algebra, Computers, Software, Maple, Macrofort, Macroc, Efficient code, Generation, Vectorised machines, Blas, Transfor.|
|Classification: 5, 6.5.|
Nature of problem:
Many applications of current and fundamental research involve large problems requiring intensive computation. In the case of quantum chemistry and molecular physics, a computational bottleneck is the numerical calculation of the required molecular integrals to sufficient precision. In general, many computations require fast and efficient matrix calculations.
As a first example, we present a method for the rapid numerical evaluation of molecular integrals using optimised Fortran code generated by Macrofort. The method is based on the exploitation of common intermediates and the optimisation can be adjusted to both serial and vectorised computations. As a second example, we show how Transfor can efficiently transform Maple matrix operations into BLAS code.
The complexity of the use of Macrofort (or MacroC) is determined by the algorithmic complexity of the given expressions to be converted into Fortran (o rC) compounded with the complexity of Maple's optimiser. The complexity of Maple's optimiser is of order O(n) where n is the array size of the expressions to be converted. For program RMAKE, this means that as the angular quantum number L increases, the total size of the expressions gets larger and the speed of the code generation diminishes.
These programs were intended for the creation of efficient Fortran or C code. They are even useful to a programmer who is not interested in computer algebra per se. For example, the generated code can be a subroutine that is integrated inside an existing program (written by hand).
To generate about 700 lines of Fortran code (with BLAS routines) for Transfor (using Macrofort generated code) = 10 seconds.
|||M.B. Monagan, K.O. Geddes, G. Labahn, S.M. Vorkoetter, Maple V Programming Guide (Springer, New York, 1996).|
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|