Parallel Code Generation in MathModelica / An Object Oriented Component Based Simulation Environment
2001 (English)In: Proceedings of Workshop on Parallel/High Performance Object-Oriented Scientific Computing (POOSC’01), 2001Conference paper (Refereed)
Modelica is an a-causal, equation based, object oriented modeling lan- guage for modeling and efficient simulation of large and complex multi domain systems. The Modelica language, with its strong software component model, makes it possible to use visual component programming, where large complex physical systems can be modeled and composed in a graphical way. One tool with support for both graphical modeling, textual programming and simulation is MathModelica. To deal with growing complexity of modeled systems in the Modelica language, the need for parallelization becomes increasingly important in order to keep sim- ulation time within reasonable limits. The first step in Modelica compilation results in an Ordinary Differential Equa- tion system or a Differential Algebraic Equation system, depending on the spe- cific Modelica model. The Modelica compiler typically performs optimizations on this system of equations to reduce its size. The optimized code consists of simple arithmetic operations, assignments, and function calls. This paper presents an automatic parallelization tool that builds a task graph from the optimized sequential code produced by a commercial Modelica compiler. Var- ious scheduling algorithms have been implemented, as well as specific enhance- ments to cluster nodes for better computation/communication tradeoff. Finally, the tool generates simulation code, in a master-slave fashion, using MPI.
Place, publisher, year, edition, pages
Electrical Engineering, Electronic Engineering, Information Engineering
IdentifiersURN: urn:nbn:se:liu:diva-110183OAI: oai:DiVA.org:liu-110183DiVA: diva2:743392
Fourth Workshop on Parallel/High-Performance Object-oriented Scientific Computing (POOSC'01) at the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'01), 14-18 October, 2001, Tampa Bay, USA