Generating parallel code from object oriented mathematical models

For a long time efficient use of parallel computers has been hindered by dependencies introduced in software through low-level implementation practice. In this paper we present a programming environment and language called Object-Math (Object oriented Mathematical language for scientific computing), which aims at eliminating this problem by allowing the user to represent mathematical equation-based models directly in the system. The system performs analysis of mathematical models to extract parallelism and automatically generates parallel code for numerical solution. In the context of industrial applications in mechanical analysis, we have so far primarily explored generation of parallel code for solving systems of ordinary differential equations (ODEs), in addition to preliminary work on generating code for solving partial differential equations. Two approaches to extracting parallelism have been implemented and evaluated: extracting parallelism at the equation system level and at the single equation level, respectively. We found that for several applications the corresponding systems of equations do not partition well into subsystems. This means that the equation system level approach is of restricted general applicability. Thus, we focused on the equation-level approach which yielded significant parallelism for ODE systems solution. For the bearing simulation applications we present here, the achieved speedup is however critically dependent on low communication latency of the parallel computer.

[1]  J. Grosch,et al.  A Tool Box for Compiler Construction , 1990, CC.

[2]  P. S. Wang Graphical user interfaces and automatic generation of sequential and parallel code for scientific computing , 1988, Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.

[3]  Zhiyu Shen,et al.  An Empirical Study of Fortran Programs for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[4]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[5]  Peter Fritzson,et al.  Industrial application of object-oriented mathematical modeling and computer algebra in mechanical analysis , 1992 .

[6]  Peter Fritzson,et al.  Variant Handling, Inheritance and Composition in the ObjectMath Computer Algebra Environment , 1993, DISCO.

[7]  L. Petzold Automatic Selection of Methods for Solving Stiff and Nonstiff Systems of Ordinary Differential Equations , 1983 .

[8]  Yi -ling F. Chiang,et al.  Parallel multischeme computation , 1988, J. Sci. Comput..

[9]  FritzsonPeter,et al.  High-level Mathematical Modeling And Programming , 1995 .

[10]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[11]  Paul S. Wang,et al.  FINGER: A Symbolic System for Automatic Generation of Numerical Programs in Finite Element Analysis , 1986, J. Symb. Comput..

[12]  François E. Cellier,et al.  Continuous system modeling , 1991 .

[13]  Peter Fritzson,et al.  High-level Mathematical Modeling And Programming , 1995, IEEE Softw..

[14]  Manish Gupta,et al.  Demonstration of Automatic Data Partitioning Techniques for Parallelizing Compilers on Multicomputers , 1992, IEEE Trans. Parallel Distributed Syst..

[15]  Ben P. Sommeijer,et al.  Iterated Runge-Kutta Methods on Parallel Computers , 1991, SIAM J. Sci. Comput..

[16]  Elaine Kant,et al.  Synthesis of mathematical-modeling software , 1993, IEEE Software.