Abstract
The current state of the art in programming for scientific computing is still rather low-level. The mathematical model behind a computing application usually is written using pen and paper, whereas the corresponding numerical software often is developed manually in Fortran or C. This is especially true in application areas such as mechanical analysis, where complex non-linear problems are the norm, and high performance is required. Ideally, a high-level programming environment would provide computer support for these development steps. This motivated the development of the ObjectMath system. Using ObjectMath, complex mathematical models may be structured in an object oriented way, symbolically simplified, and transformed to efficient numerical code in C++ or Fortran.
However, many scientific computing problems are quite computationally demanding, which makes it desirable to use parallel computers. Unfortunately, generating parallel code from arbitrary mathematical models is an intractable problem. Therefore, we have focused most of our efforts on a specific problem domain where the main computation is to solve ordinary differential equation systems where most of the computing time is spent in application specific code, rather than in the serial solver kernel. We have investigated automatic parallelisation of the computation of ordinary differential equation systems at three different levels of granularity: the equation system level, the equation level, and the clustered task level. At the clustered task level we employ domain specific knowledge and existing scheduling and clustering algorithms to partition and distribute the computation.
Preview
Unable to display preview. Download preview PDF.
References
Thomas L. Adam, K. M. Chandy, and J. R. Dickson. A comparison of list schedules for parallel processing systems. Communications of the ACM, 17 (12): 685–690, December 1974.
Mats Andersson. Omola — an object-oriented language for model representation. Licentiate thesis, Department of Automatic Control, Lund Institute of Technology, P.O. Box 118, S-221 00 Lund, Sweden, May 1990.
Niclas Andersson and Peter Fritzson. Generating parallel code from object oriented mathematical models. In Proceedings of the Fifth ACM SIGPLAN Symposium om Principles and Practice on Parallel Programming, pages 48–57, July 1995.
P. Bouvry, J. Chassin de Kergommeaux, and D. Trystram. Efficient solutions for mapping parallel programs. In Seif Haridi, Khayri Ali, and Peter Magnusson, editors, EURO-PAR’95 Parallel Processing, volume 966 of Lecture Notes in Computer Science, pages 379–390. Springer-Verlag, August 1995.
Francois E. Cellier. Continuous System Modeling. Springer-Verlag, 1991.
Vipin Chaudhary and J. K. Aggarwal. A generalized scheme for mapping parallel algorithms. IEEE Transaction on Parallel and Distributed Systems, 4 (3): 328–346, March 1993.
Yi-Ling F. Chiang, Ji-Suing Ma, Kuo-Lin Hu, and Chia-Yo Chang. Parallel multischeme computation. Journal of Scientific Computing, 3 (3): 289–306, 1988.
Edward G. Coffman, Jr and Peter J. Denning. Operating System Theory. Prentice Hall, 1973.
R. Van Driessche and D. Roose. An improved spectral bisection algorithm and its application to dynamic load balancing. Parallel Computing, 21:29–48, 1995.
Hilding Elmqvist. Object-oriented modeling and automatic formula ma- nipilation in dymola. In Torleif Iversen, editor, SIMS’93, Applied Simulation in Industry — Proceedings of the 35th SIMS Simulation Conference. Scandinavian Simulation Society, June 1993.
Vadim Engelson, Peter Fritzson, and Dag Fritzson. Automatic generation of user interfaces from data structure specifications and object-oriented aplication models. In Proceedings of European Conference on Object- Oriented Programming (ECOOP). Linz, Austria, July 1996.
Dag Fritzson and Peter Fritzson. Equational modeling of machine elements — applied to rolling bearings. Technical Report LiTH-IDA-R-91-05, Department of Computer and Information Science, Linköping University, S-581 83, Linköping, Sweden, March 1991.
Peter Fritzson and Niclas Andersson. Generating parallel code from equa-tions in the ObjectMath programming environment. In Jens Volkert, editor, Parallel Computation, volume 734 of Lecture Notes in Computer Science, pages 217–232. Springer-Verlag, 1993.
Peter Fritzson, Lars Viklund, Johan Herber, and Dag Fritzson. High-level mathematical modeling and programming. IEEE Software, 12 (4): 77–87, July 1995.
Apostolos Gerasoulis and Tao Yang. A comparison of clustering heuristics for scheduling directed acyclic graphs on multiprocessors. IEEE Transaction on Parallel and Distributed Systems, 16: 276–291, 1992.
Apostolos Gerasoulis and Tao Yang. On the granularity and clustering of directed acyclic task graphs. IEEE Transaction on Parallel and Distributed Systems, 4 (6): 686–701, June 1993.
E. Hairer and G. Wanner. Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. Springer-Verlag, 1991.
B. Hendrickson and Rfobert] Leland. An improved spectral load balancing method. In 6th SIAM Conference on Parallel Processing for Scientific Computing, pages 953–961, Philadelphia, 1993. SIAM.
Alan C. Hindmarsh. ODEPACK, A systematized collection of ODE solvers. IMACS Transactions on Scientific Computing, 1: 55–64, 1983.
Edwin S. H. Hou, Nirwin Ansari, and Hong Ren. A genetic algorithm for multiprocessor scheduling. IEEE Transaction on Parallel and Distributed Systems, 5 (2): 113–120, February 1994.
High Performance Fortran Forum (HPFF). High performance fortran language specification, May 1993.
M. Ashraf Iqbal and Shahid H. Bokhari. Efficient algorithms for a class of partitioning problems. IEEE Transaction on Parallel and Distributed Systems, 6 (2): 170–185, February 1995.
George Karypis and Vipin Kumar. Analysis of multilevel graph partitioning. Technical Report 95-037, University of Minnesota, Department of Computer Science, Minneapolis, June 1995.
George Karypis and Vipin Kumar. Parallel multilevel graph partitioning. Technical Report 95-036, University of Minnesota, Department of Computer Science, Minneapolis, June 1995.
Charles H. Koelbel, David B. Loveman, Robert S. Schreiber, Guy L. Steele Jr., and Mary E. Zosel. The High Performance Fortran Handbook. Scientific and Engineering Computation Series. The MIT Press, 1994.
Boontee Kruatrachue and Ted Lewis. Grain size determination for parallel processing. IEEE Software, pages 23–32, January 1988.
Joseph Y-T Leung, Oliver Vornberger, and James D. Witthoff. On some variants of the bandwidth minimization problem. SIAM Journal on Computing, 13 (3): 650–667, August 1984.
Virginia Mary Lo. Heuristic algorithms for task assignment in distributed systems. IEEE Transactions on Computers, 37 (11). 1384–1397, November 1988.
C. McCreary and H. Gill. Automatic determination of grain size for efficient parallel processing. Communications of the ACM, 32 (9): 1073–1078, September 1989.
Chao-Wei Ou and Sanjay Ranka. Parallel incremental graph partitioning. Technical Report SCCS-652, Northeast Parallel Architectures Center at Syracuse University, August 1994.
Chao-Wei Ou, Sanjay Ranka, and Geoffrey Fox. Fast and parallel mapping algorithms for irregular problems. Technical Report SCCS-729, Northeast Parallel Architectures Center at Syracuse University, December 1994.
Linda Petzold. Automatic selection of methods for solving stiff and nonstiff systems of ordinary differential equations. SIAM J. Sci. Stat. Comput., 4 (1): 136–148, March 1983.
Vivek Sarkar. Partitioning and Scheduling Parallel Programs for Multi-processors. Research Monographs in Parallel and Distributed Computing. The MIT Press, Cambridge, Massachusetts, 1989.
Chien-Chung Shen and When-Hsiang Tsai. A graph matching approach to optimal task assignment in distributed computing systems using a mini- max criterion. IEEE Transactions on Computers, C-34(3): 197–203, March 1985.
Gilbert C. Sih and Edward A. Lee. Declustering: A new multiprocessor scheduling technique. IEEE Transaction on Parallel and Distributed Systems, 4 (6): 625–637, June 1993.
Harold S. Stone. Multiprocessor scheduling with aid of network flow algorithms. IEEE Transactions on Software Engineering, SE-3(l): 85–93, January 1977.
P. J. van der Houwen and B. P. Sommeijer. Iterated Runge-Kutta methods on parallel computers. SIAM J. Sci. Stat Comput, 12 (5): 1000–1028, September 1991.
Peter Värbrand. Generalized Assignment Type Problems: Models and Solution Procedures. Ph.D. dissertation, Linköping University, September 1988.
Lars Viklund and Peter Fritzson. ObjectMath - an object-oriented language and environment for symbolic and numerical processing in scientific computing. Scientific Programming, 4: 229–250, 1995.
Peter Wegner. Concepts and paradigms of object-oriented programming. OOPS Messenger, 1(1): 8–87, August 1990.
Stephen Wolfram. Mathematica — A System for Doing Mathematics by Computer. Addison-Wesley Publishing Company, second edition, 1991.
Wolfram Research, Inc, P.O. Box 6059, Champaign, IL, 61826-6059, USA. MathLink Reference Guide, 1993. Version 2. 2.
Tao Yang. Scheduling and Code Generation for Parallel Architectures. Ph.D. dissertation, Rutgers, The State University of New Jersey, May 1993.
Tao Yang and Apostolos Gerasoulis. DSC: Scheduling parallel tasks on an unbounded number of processors. IEEE Transaction on Parallel and Distributed Systems, 5 (9): 951–967, September 1994.
Michalewicz Zbigniew. Genetic Algorithms + Data Structures = Evolution Programs. Springer Verlag, 1994.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1997 Kluwer Academic Publishers
About this chapter
Cite this chapter
Andersson, N., Fritzson, P. (1997). Object Oriented Mathematical Modelling and Compilation to Parallel Code. In: Migdalas, A., Pardalos, P.M., Storøy, S. (eds) Parallel Computing in Optimization. Applied Optimization, vol 7. Springer, Boston, MA. https://doi.org/10.1007/978-1-4613-3400-2_5
Download citation
DOI: https://doi.org/10.1007/978-1-4613-3400-2_5
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4613-3402-6
Online ISBN: 978-1-4613-3400-2
eBook Packages: Springer Book Archive