Exploiting Repeated Structures and Vectorization in Modelica

Research output: Contribution to book/Conference proceedings/Anthology/ReportConference contributionContributedpeer-review

Abstract

Large and highly-detailed Modelica models are frequently modeled by utilizing repeated structures, which is a repetition of various elements that are linked together in an iterative manner. While the Modelica language standard supports the representation of repeated structures, most Modelica compilers do not exploit their advantages for efficient simulations. Instead, all repeated
equations are flattened and all array variables are expanded. This leads to unnecessarily long compile times and higher memory consumption. Another aspect that has been yet inadequately considered and is closely connected to repeated structures is vectorization. The vector units of modern CPUs can be engaged to perform SIMD (Single Instruction, Multiple Data) operations, executing the same instruction on multiple data points in parallel. This reveals a high potential for faster simulations. This paper discusses the advantages of utilizing repeated structures for modeling in order to achieve both faster compilation and simulation times. The potentials of preserving for loops throughout compilation are demonstrated using a basic implementation in the
OpenModelica Compiler. The effect on the simulation time by enabling vectorization is demonstrated for an appropriate model.

Details

Original languageEnglish
Title of host publicationProceeding of the 11th International Modelica Conference
Pages265-272
Number of pages8
Publication statusPublished - Sept 2015
Peer-reviewedYes

Conference

Title11th International Modelica Conference
Conference number11
Duration21 - 23 September 2015
Website
Degree of recognitionInternational event
LocationPalais des Congrès de Versailles
CityVersailles
CountryFrance