9 research outputs found

    The OpenModelica integrated environment for modeling, simulation, and model-based development

    Get PDF
    OpenModelica is a unique large-scale integrated open-source Modelica- and FMI-based modeling, simulation, optimization, model-based analysis and development environment. Moreover, the OpenModelica environment provides a number of facilities such as debugging; optimization; visualization and 3D animation; web-based model editing and simulation; scripting from Modelica, Python, Julia, and Matlab; efficient simulation and co-simulation of FMI-based models; compilation for embedded systems; Modelica- UML integration; requirement verification; and generation of parallel code for multi-core architectures. The environment is based on the equation-based object-oriented Modelica language and currently uses the MetaModelica extended version of Modelica for its model compiler implementation. This overview paper gives an up-to-date description of the capabilities of the system, short overviews of used open source symbolic and numeric algorithms with pointers to published literature, tool integration aspects, some lessons learned, and the main vision behind its development.Fil: Fritzson, Peter. Linköping University; SueciaFil: Pop, Adrian. Linköping University; SueciaFil: Abdelhak, Karim. Fachhochschule Bielefeld; AlemaniaFil: Asghar, Adeel. Linköping University; SueciaFil: Bachmann, Bernhard. Fachhochschule Bielefeld; AlemaniaFil: Braun, Willi. Fachhochschule Bielefeld; AlemaniaFil: Bouskela, Daniel. Electricité de France; FranciaFil: Braun, Robert. Linköping University; SueciaFil: Buffoni, Lena. Linköping University; SueciaFil: Casella, Francesco. Politecnico di Milano; ItaliaFil: Castro, Rodrigo Daniel. Consejo Nacional de Investigaciones Científicas y Técnicas. Oficina de Coordinación Administrativa Ciudad Universitaria. Instituto de Investigación en Ciencias de la Computación. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales. Instituto de Investigación en Ciencias de la Computación; ArgentinaFil: Franke, Rüdiger. Abb Group; AlemaniaFil: Fritzson, Dag. Linköping University; SueciaFil: Gebremedhin, Mahder. Linköping University; SueciaFil: Heuermann, Andreas. Linköping University; SueciaFil: Lie, Bernt. University of South-Eastern Norway; NoruegaFil: Mengist, Alachew. Linköping University; SueciaFil: Mikelsons, Lars. Linköping University; SueciaFil: Moudgalya, Kannan. Indian Institute Of Technology Bombay; IndiaFil: Ochel, Lennart. Linköping University; SueciaFil: Palanisamy, Arunkumar. Linköping University; SueciaFil: Ruge, Vitalij. Fachhochschule Bielefeld; AlemaniaFil: Schamai, Wladimir. Danfoss Power Solutions GmbH & Co; AlemaniaFil: Sjolund, Martin. Linköping University; SueciaFil: Thiele, Bernhard. Linköping University; SueciaFil: Tinnerholm, John. Linköping University; SueciaFil: Ostlund, Per. Linköping University; Sueci

    Automatic and Explicit Parallelization Approaches for Mathematical Simulation Models

    No full text
    The move from single core and processor systems to multi-core and many-processors systemscomes with the requirement of implementing computations in a way that can utilizethese multiple units eciently. This task of writing ecient multi-threaded algorithmswill not be possible with out improving programming languages and compilers to providethe mechanisms to do so. Computer aided mathematical modeling and simulationis one of the most computationally intensive areas of computer science. Even simpli-ed models of physical systems can impose a considerable amount of computational loadon the processors at hand. Being able to take advantage of the potential computationpower provided by multi-core systems is vital in this area of application. This thesis triesto address how we can take advantage of the potential computation power provided bythese modern processors to improve the performance of simulations. The work presentsimprovements for the Modelica modeling language and the OpenModelica compiler. Two approaches of utilizing the computational power provided by modern multi-corearchitectures are presented in this thesis: Automatic and Explicit parallelization. Therst approach presents the process of extracting and utilizing potential parallelism fromequation systems in an automatic way with out any need for extra eort from the modelers/programmers side. The thesis explains improvements made to the OpenModelicacompiler and presents the accompanying task systems library for ecient representation,clustering, scheduling proling and executing complex equation/task systems with heavydependencies. The Explicit parallelization approach explains the process of utilizing parallelismwith the help of the modeler or programmer. New programming constructs havebeen introduced to the Modelica language in order to enable modelers write parallelizedcode. the OpenModelica compiler has been improved accordingly to recognize and utilizethe information from this new algorithmic constructs and generate parallel code toimprove the performance of computations.The series name Linköping Studies in Science and Technology Licentiate Thesis is incorrect. The correct series name is Linköping Studies in Science and Technology Thesis.</p

    ParModelica : Extending the Algorithmic Subset ofModelica with Explicit Parallel LanguageConstructs for Multi-core Simulation

    No full text
    In today’s world of high tech manufacturing and computer-aided design simulations of models is at theheart of the whole manufacturing process. Trying to represent and study the variables of real worldmodels using simulation computer programs can turn out to be a very expensive and time consumingtask. On the other hand advancements in modern multi-core CPUs and general purpose GPUs promiseremarkable computational power. Properly utilizing this computational power can provide reduced simulation time. To this end modernmodeling environments provide different optimization and parallelization options to take advantage ofthe available computational power. Some of these parallelization approaches are based onautomatically extracting parallelism with the help of a compiler. Another approach is to provide themodel programmers with the necessary language constructs to express any potential parallelism intheir models. This second approach is taken in this thesis work. The OpenModelica modeling and simulation environment for the Modelica language has beenextended with new language constructs for explicitly stating parallelism in algorithms. This slightlyextended algorithmic subset of Modelica is called ParModelica. The new extensions allow modelswritten in ParModelica to be translated to optimized OpenCL code which can take advantage of thecomputational power of available Multi-core CPUs and general purpose GPUs

    Automatic and Explicit Parallelization Approaches for Equation Based Mathematical Modeling and Simulation

    No full text
    The move from single-core processor systems to multi-core and manyprocessor systems comes with the requirement of implementing computations in a way that can utilize these multiple computational units efficiently. This task of writing efficient parallel algorithms will not be possible without improving programming languages and compilers to provide the supporting mechanisms. Computer aided mathematical modelling and simulation is one of the most computationally intensive areas of computer science. Even simplified models of physical systems can impose a considerable computational load on the processors at hand. Being able to take advantage of the potential computational power provided by multi-core systems is vital in this area of application. This thesis tries to address how to take advantage of the potential computational power provided by these modern processors in order to improve the performance of simulations, especially for models in the Modelica modelling language compiled and simulated using the OpenModelica compiler and run-time environment. Two approaches of utilizing the computational power provided by modern multi-core architectures for simulation of Mathematical models are presented in this thesis: Automatic and Explicit parallelization respectively. The Automatic approach presents the process of extracting and utilizing potential parallelism from equation systems in an automatic way without any need for extra effort from the modellers/programmers. This thesis explains new and improved methods together with improvements made to the OpenModelica compiler and a new accompanying task systems library for efficient representation, clustering, scheduling, profiling, and executing complex equation/ task systems with heavy dependencies. The Explicit parallelization approach allows utilizing parallelism with the help of the modeller or programmer. New programming constructs have been introduced to the Modelica language in order to enable modellers to express parallelized algorithms to take advantage of the computational capabilities provided by modern multicore CPUs and GPUs. The OpenModelica compiler has been improved accordingly to recognize and utilize the information from these new algorithmic constructs and to generate parallel code for enhanced computational performance, portable to a range of parallel architectures through the OpenCL standard.Övergången från datorer med en processor till datorer med flera processorkärnor ställer krav på att implementera beräkningar på ett sådant sätt att dessa multipla beräkningsenheter kan användas effektivt. Skrivande av effektiva parallella algoritmer är mycket arbetskrävande och en stor källa till fel om inte programmeringsspråk och tillhörande kompilatorer kan förbättras till att erbjuda bättre stödmekanismer. Datorstödd matematisk modellering och simulering är ett av de mest beräkningsintensiva områdena inom datavetenskap. Även simuleringar av förenklade modeller av fysikaliska system kan vara mycket beräkningstungt med användning av standardprocessorer. Att kunna dra nytta av den beräkningskraft som erbjuds av moderna flerkärniga arkitekturer är mycket viktigt inom detta tillämpningsområde. Denna avhandling syftar till att ge bidrag till hur beräkningskraften hos moderna flerkärniga processor kan utnyttja för att öka prestanda för simuleringar, speciellt för modeller uttryckta i det ekvationsbaserade högnivåmodelleringsspråket Modelica, kompilerade och simulerade med användning av OpenModelica’s modellkompilator och beräkningsmiljö. Denna avhandling presenterar två metoder för att simulera matematiska modeller på ett sådant sätt att beräkningskraften hos moderna flerkärniga datorer kan utnyttjas: automatisk respektive explicit parallellisering. Den automatiska metoden utför automatiskt processen att extrahera och använda potentiell parallelism i ekvationssystem från den matematiska modellen utan att programmeraren eller modelleraren behöver göra någon extra ansträngning. I denna avhandling presenteras nya och förbättrade metoder tillsammans med förbättringar i OpenModelicakompilatorn samt ett nytt programbibliotek som stödjer effektiv representation, gruppering, planering, prestandamätning och exekvering av komplexa system av ekvationer och beräkningar, där dessa ofta är beroende av varandra. Den explicita parallelliseringsmetoden utnyttjar parallellism som uttrycks explicit med hjälp av programmeraren eller modelleraren. Nya språkkonstruktioner i Modelicaspråket har introduceras för att göra det möjligt för modellerare att på ett bekvämt sätt uttrycka parallelliserad algoritmer som kan utnyttja beräkningskraften som erbjuds av moderna flerkärniga standardprocessorer och grafikprocessorer. OpenModelicakompilatorn har utökats för att kunna hantera och utnyttja informationen från dessa nya språkkonstruktioner samt att generera parallell kod med ökad beräkningsprestanda. Den genererade koden är portabel till ett antal parallella datorarkitekturer genom OpenCL standarden. Dessutom presenteras prestandamätningar av testmodeller med användning av båda metoderna. Övergången från datorer med en processor till datorer med flera processorkärnor ställer krav på att implementera beräkningar på ett sådant sätt att dessa multipla beräkningsenheter kan användas effektivt. Skrivande av effektiva parallella algoritmer är mycket arbetskrävande och en stor källa till fel om inte programmeringsspråk och tillhörande kompilatorer kan förbättras till att erbjuda bättre stödmekanismer. Datorstödd matematisk modellering och simulering är ett av de mest beräkningsintensiva områdena inom datavetenskap. Även simuleringar av förenklade modeller av fysikaliska system kan vara mycket beräkningstungt med användning av standardprocessorer. Att kunna dra nytta av den beräkningskraft som erbjuds av moderna flerkärniga arkitekturer är mycket viktigt inom detta tillämpningsområde. Denna avhandling syftar till att ge bidrag till hur beräkningskraften hos moderna flerkärniga processor kan utnyttja för att öka prestanda för simuleringar, speciellt för modeller uttryckta i det ekvationsbaserade högnivåmodelleringsspråket Modelica, kompilerade och simulerade med användning av OpenModelica’s modellkompilator och beräkningsmiljö. Denna avhandling presenterar två metoder för att simulera matematiska modeller på ett sådant sätt att beräkningskraften hos moderna flerkärniga datorer kan utnyttjas: automatisk respektive explicit parallellisering. Den automatiska metoden utför automatiskt processen att extrahera och använda potentiell parallelism i ekvationssystem från den matematiska modellen utan att programmeraren eller modelleraren behöver göra någon extra ansträngning. I denna avhandling presenteras nya och förbättrade metoder tillsammans med förbättringar i OpenModelicakompilatorn samt ett nytt programbibliotek som stödjer effektiv representation, gruppering, planering, prestandamätning och exekvering av komplexa system av ekvationer och beräkningar, där dessa ofta är beroende av varandra. Den explicita parallelliseringsmetoden utnyttjar parallellism som uttrycks explicit med hjälp av programmeraren eller modelleraren. Nya språkkonstruktioner i Modelicaspråket har introduceras för att göra det möjligt för modellerare att på ett bekvämt sätt uttrycka parallelliserad algoritmer som kan utnyttja beräkningskraften som erbjuds av moderna flerkärniga standardprocessorer och grafikprocessorer. OpenModelicakompilatorn har utökats för att kunna hantera och utnyttja informationen från dessa nya språkkonstruktioner samt att generera parallell kod med ökad beräkningsprestanda. Den genererade koden är portabel till ett antal parallella datorarkitekturer genom OpenCL standarden. Dessutom presenteras prestandamätningar av testmodeller med användning av båda metoderna

    Automatic Task Based Analysis and Parallelization in the Context of Equation Based Languages

    No full text
    This paper presents an automatic parallelization approach for handling complex task systems with heavy dependencies, including methods of analyzing dependencies, representing them in a convenient way, and processing the resulting task graph representation. We present a library-based task system representation, clustering, profiling, and scheduling approach to simplify the otherwise tedious process of parallelizing complex task systems. We have implemented a flexible and robust task system handling library to manipulate and parallelize these complex task systems on shared memory multi-core and multi-processor systems. The implementation has been developed as part of the OpenModelica simulation environment. We demonstrate methods of extracting and utilizing parallelism in the context of mathematical modeling languages

    Parallelizing Equation-Based Models for Simulation on Multi-Core Platforms by Utilizing Model Structure

    No full text
    In today’s world of high tech manufacturing and computer-aided design simulations of models is at the heart of the whole manufacturing process. Trying to represent and study the variables of real world models using simulation computer programs can turn out to be a very expensive and time consuming task. On the other hand advancements in modern multi-core CPUs promise remarkable computational power. Modern modeling environments provide different optimization and parallelization options to take advantage of the available computational power. Some of these parallelization approaches are based on automatically extracting parallelism with the help of the model compiler or translator. Another approach is to provide the model programmers with the necessary language constructs to express any potential parallelism in their models. In this paper we present an automatic parallelization approach for Modelica models using Transmission Line Modeling (TLM). TLM is suitable for parallel simulations because larger models can be partitioned into smaller independent sub-models. TLM introduces parallelism into the system by decoupling subsystems using delays greater than the step size of the numerical solver. A prototype has been implemented in the OpenModelica Compiler (OMC) framework. Our approach re-uses the dependency analysis from the sequential translation step of OMC. With the help of the dependency analysis information the set of equations for a model is partitioned into a number of sub-systems. The resulting independent sub-systems are scheduled and executed in parallel. The run-time system for OMC has been improved to provide thread safety and handle parallelism while keeping the introduced overhead to minimum for normal sequential operation and maintaining portability

    The OpenModelica Integrated Environment for Modeling, Simulation, and Model-Based Development

    Get PDF
    OpenModelica is a unique large-scale integrated open-source Modelica- and FMI-based modeling, simulation, optimization, model-based analysis and development environment. Moreover, the OpenModelica environment provides a number of facilities such as debugging; optimization; visualization and 3D animation; web-based model editing and simulation; scripting from Modelica, Python, Julia, and Matlab; efficient simulation and co-simulation of FMI-based models; compilation for embedded systems; Modelica-UML integration; requirement verification; and generation of parallel code for multi-core architectures. The environment is based on the equation-based object-oriented Modelica language and currently uses the MetaModelica extended version of Modelica for its model compiler implementation. This overview paper gives an up-to-date description of the capabilities of the system, short overviews of used open source symbolic and numeric algorithms with pointers to published literature, tool integration aspects, some lessons learned, and the main vision behind its development.Funding agencies: Vinnova in the ITEA OPENPROD projectVinnova; Vinnova in the ITEA MODRIO projectVinnova; Vinnova in the ITEA OPENCPS projectVinnova; Vinnova in the ITEA EMPHYSIS projectVinnova; Vinnova in the ITEA EMBRACE projectVinnova; Vinnova RTISIM projectVinnova; Vin</p
    corecore