Skip to main content

Object Oriented Mathematical Modelling and Compilation to Parallel Code

  • Chapter
Parallel Computing in Optimization

Part of the book series: Applied Optimization ((APOP,volume 7))

  • 336 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Article  MATH  Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. Francois E. Cellier. Continuous System Modeling. Springer-Verlag, 1991.

    MATH  Google Scholar 

  6. 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.

    Article  Google Scholar 

  7. 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.

    Article  MathSciNet  MATH  Google Scholar 

  8. Edward G. Coffman, Jr and Peter J. Denning. Operating System Theory. Prentice Hall, 1973.

    Google Scholar 

  9. R. Van Driessche and D. Roose. An improved spectral bisection algorithm and its application to dynamic load balancing. Parallel Computing, 21:29–48, 1995.

    Article  MathSciNet  MATH  Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Peter Fritzson, Lars Viklund, Johan Herber, and Dag Fritzson. High-level mathematical modeling and programming. IEEE Software, 12 (4): 77–87, July 1995.

    Article  Google Scholar 

  15. 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.

    MathSciNet  MATH  Google Scholar 

  16. 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.

    Article  Google Scholar 

  17. E. Hairer and G. Wanner. Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. Springer-Verlag, 1991.

    MATH  Google Scholar 

  18. 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.

    Google Scholar 

  19. Alan C. Hindmarsh. ODEPACK, A systematized collection of ODE solvers. IMACS Transactions on Scientific Computing, 1: 55–64, 1983.

    MathSciNet  Google Scholar 

  20. 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.

    Article  Google Scholar 

  21. High Performance Fortran Forum (HPFF). High performance fortran language specification, May 1993.

    Google Scholar 

  22. 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.

    Article  Google Scholar 

  23. George Karypis and Vipin Kumar. Analysis of multilevel graph partitioning. Technical Report 95-037, University of Minnesota, Department of Computer Science, Minneapolis, June 1995.

    Google Scholar 

  24. George Karypis and Vipin Kumar. Parallel multilevel graph partitioning. Technical Report 95-036, University of Minnesota, Department of Computer Science, Minneapolis, June 1995.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. Boontee Kruatrachue and Ted Lewis. Grain size determination for parallel processing. IEEE Software, pages 23–32, January 1988.

    Google Scholar 

  27. 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.

    Article  MathSciNet  MATH  Google Scholar 

  28. Virginia Mary Lo. Heuristic algorithms for task assignment in distributed systems. IEEE Transactions on Computers, 37 (11). 1384–1397, November 1988.

    Article  Google Scholar 

  29. C. McCreary and H. Gill. Automatic determination of grain size for efficient parallel processing. Communications of the ACM, 32 (9): 1073–1078, September 1989.

    Article  Google Scholar 

  30. Chao-Wei Ou and Sanjay Ranka. Parallel incremental graph partitioning. Technical Report SCCS-652, Northeast Parallel Architectures Center at Syracuse University, August 1994.

    Google Scholar 

  31. 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.

    Google Scholar 

  32. 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.

    Article  MathSciNet  MATH  Google Scholar 

  33. Vivek Sarkar. Partitioning and Scheduling Parallel Programs for Multi-processors. Research Monographs in Parallel and Distributed Computing. The MIT Press, Cambridge, Massachusetts, 1989.

    Google Scholar 

  34. 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.

    Google Scholar 

  35. 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.

    Article  Google Scholar 

  36. Harold S. Stone. Multiprocessor scheduling with aid of network flow algorithms. IEEE Transactions on Software Engineering, SE-3(l): 85–93, January 1977.

    Google Scholar 

  37. 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.

    MATH  Google Scholar 

  38. Peter Värbrand. Generalized Assignment Type Problems: Models and Solution Procedures. Ph.D. dissertation, Linköping University, September 1988.

    Google Scholar 

  39. 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.

    Google Scholar 

  40. Peter Wegner. Concepts and paradigms of object-oriented programming. OOPS Messenger, 1(1): 8–87, August 1990.

    Google Scholar 

  41. Stephen Wolfram. Mathematica — A System for Doing Mathematics by Computer. Addison-Wesley Publishing Company, second edition, 1991.

    Google Scholar 

  42. Wolfram Research, Inc, P.O. Box 6059, Champaign, IL, 61826-6059, USA. MathLink Reference Guide, 1993. Version 2. 2.

    Google Scholar 

  43. Tao Yang. Scheduling and Code Generation for Parallel Architectures. Ph.D. dissertation, Rutgers, The State University of New Jersey, May 1993.

    Google Scholar 

  44. 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.

    Article  Google Scholar 

  45. Michalewicz Zbigniew. Genetic Algorithms + Data Structures = Evolution Programs. Springer Verlag, 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics