PARA'04 State-of-the-Art
in Scientific Computing
June 20-23, 2004 (Home page)

Updated: 3 March 2004

Semi-automatic generation of grid computing interfaces for numerical software libraries

E. Elmroth and R. Skelander
Department of Computer Science
Umea University
Sweden
email: {elmroth,rskelander}@cs.umu.se

The rapid development of basic grid computing infrastructure put strong demands on development of grid-enabled application software and software libraries. Some of the typical grid resource usage scenarios are based on the underlying idea that all small computations are performed on a single local computer, while large-scale computations automatically are distributed to appropriate and more powerful computing resource on the grid. Example include grid-empowered problem solving environments and web-based science portals.

For both these scenarios, there is an immediate need for interfacing standard software libraries on remote resources. The development of these interfaces tend to be both tedious and error-prone. This contribution presents a prototype for semi-automatic generation of NetSolve interfaces for complete numerical software libraries. NetSolve is a software for calling subroutines on remote systems. It supports interfaces for Fortran, C, Matlab, Mathematica, and Octave.

The front-end of the prototype performs a parsing of calling sequences, variable declarations, and source code documentation in order automatically determine all subroutine interfaces. Notably, the front-end needs to be tuned to the specific libraries^Ò documentation conventions and the programming language used. Depending on the level of consistency of the documentation, some parts of the calling sequence may not be uniquely determined by the automatic procedure. Such cases are reported and taken care of by hand.

The back-end, generating so called NetSolve Problem Description Files, is general and the interfaces generated are completely portable. If the original software includes software for testing and timing, it can directly be used to verify the correctness of the NetSolve interfaces, by simply linking with the NetSolve-enabled library instead of the standard library. Through a modification of the back-end, one may alternatively produce, e.g., a web-portal for the same library.

The prototype is demonstrated by generating NetSolve interfaces for the complete SLICOT library. SILCOT is a subroutine library comprising over 350 Fortran routines for numerical computations in the design and analysis of control systems. Based on our semi-automatic interface generator, we have produced NetSolve interfaces to the SLICOT routines, making them callable, on remote computers from F77, C, Matlab, Mathematics, and Octave.

Home page


2004-03-03