Table of Contents Author Guidelines Submit a Manuscript
Scientific Programming
Volume 5 (1996), Issue 2, Pages 97-109

A Hybrid Imperative and Functional Molecular Mechanics Application

Thomas Deboni, John Feo, and Doug Peters

Lawrence Livermore National Laboratory, Livermore, CA 94550, USA

Received 19 April 1995; Accepted 19 June 1995

Copyright © 1996 Hindawi Publishing Corporation. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


Molecular mechanics applications model the interactions among large ensembles of discrete particles. They are used where probabilistic methods are inadequate, such as drug chemistry. This methodology is difficult to parallelize with good performance, due to its poor locality, uneven partitions, and dynamic behavior. Imperative programs have been written that attempt this on shared and distributed memory machines. Given such a program, the computational kernel can be rewritten in Sisal, a functional programming language, and integrated with the rest of the imperative program under the Sisal Foreign Language Interface. This allows minimal effort and maximal return from parallelization work, and leaves the work appropriate to imperative implementation in its original form. We describe such an effort, focusing on the parts of the application that are appropriate for Sisal implementation, the specifics of mixed-language programming, and the complex performance behavior of the resulting hybrid code.