Title: kajnyida.liu.se
1GridModelica High Level Modeling on the Grid Kaj
Nyström Dept. of Computer and Information
Science, Linköping University MathCore
Engineering AB kajny_at_ida.liu.se
kajny_at_ida.liu.se
2Modeling The way of doing things
- Modeling (like talk) is cheap, considering the
alternatives - Modeling is almost always possible
- Modeling gives extensive data even where
physical measuring might not always be
possible, or is too expensive. - Modeling is fast, especially on large systems
- Limiting factors
- Model complexity
- Computational power
kajny_at_ida.liu.se
3Modeling The way of doing things(2)
- Factors limiting usage of modeling
- Conservative engineers
- Domain knowledge
- Model complexity
- Computational power
kajny_at_ida.liu.se
4Modeling Dealing with complexity
- Traditionally high performance models have been
written in C or Fortran. - The Modelica language provides an object
oriented approach to modeling. - Main benefits from our point of view
- Acausal No need to do the mathematical
dirtywork yourself anymore. - Connection oriented Well defined interface
between all components (very useful for
parallelization). - Reusable Extensive object libraries exists.
kajny_at_ida.liu.se
5Modeling Dealing with complexity(2)
Example The DC-motor
kajny_at_ida.liu.se
6Modeling Dealing with complexity(3)
Example The DC-motor, modelica source code
model dcmotor Modelica.Electrical.Analog.Basic.R
esistor Resistor1 Modelica.Electrical.Analog.Ba
sic.Ground Ground1 Modelica.Electrical.Analog.B
asic.Inductor Inductor1 Modelica.Electrical.Ana
log.Basic.EMF EMF1 Modelica.Electrical.Analog.S
ources.ConstantVoltage ConstantVoltage1
Modelica.Electrical.Analog.Basic.Resistor
Resistor2(R10) equation connect(Resistor1.p,
ConstantVoltage1.p) connect(Resistor1.n,
Inductor1.p) connect(Inductor1.n, EMF1.p)
connect(ConstantVoltage1.n, Ground1.p)
connect(EMF1.n, Ground1.p) connect(EMF1.flange_
b, Inertia1.flange_a) connect(Resistor2.p,
Resistor1.p) connect(Resistor2.n,
Resistor1.n) end dcmotor
kajny_at_ida.liu.se
7Modeling Dealing with complexity(4)
Another example A robot, including visualization
kajny_at_ida.liu.se
8Problem 2 Computational Power
- The Grid is the solution (?) Computational
power for the masses. - Nordugrid middleware
- Resources Nordugrid and our own cluster
- This provides the computational power we needbut
it also just brings us to the next (big) problem
kajny_at_ida.liu.se
9Problem no 2 Computational Power
- The Grid is the solution (?) Computational
power for the masses. - Nordugrid middleware
- Resources Nordugrid and our own cluster
- This provides the computational power we needbut
it just brings us to the next (big) problem - Partitioning!
kajny_at_ida.liu.se
10Partitioning models on the Grid
An example abcd10abc2c-d-2ab-d4 How
would you solve this system?
kajny_at_ida.liu.se
11Partitioning models on the Grid (2)
- The grid has special features/misfeatures
- Latency, latency, latency, latency
- Heterogenity
- Close to infinite resources
- Unpredictability
- Unreliability
kajny_at_ida.liu.se
12Partitining the models
- We attack the problem on different levels
- High level partitioning - New Modelica
constructs to enable parallelism. - Medium level partitioning - Shared level memory
model (GridNestStep). - Low level partitioning Parallelizing the
generated C-code.
kajny_at_ida.liu.se
13High Level Partitioning
- Partitioning at Modelica model level
- Done by adding partitioning constructs to the
language and modification of the Modelica
compiler. - Considered methods are
- Weak Operators/Variables (Francesco Casella)
- Transmission Line Modeling method (Christos
Christopoulos) - Modelica specific ideas
kajny_at_ida.liu.se
14High Level Partitioning (2)
- The weak variables method
- Partition the model into physical domains
- Identify boundary variables
- Treat these variables as parameters on both
sides of boundary. - Use fast fixed step solvers but with different
step-size for both subsystems
kajny_at_ida.liu.se
15High Level Partitioning (3)
- The transmission line modeling method
- Partition the model fast and slow subsystems
- Insert delaying TLM-element between subsystems
- Calculate approximate loss in precision and
compensate if possible
kajny_at_ida.liu.se
16Medium Level Partitioning
- Grid level parallelization with GridNestStep
- Shared memory model for the grid
- Specific adaption for the grid is neccesary,
maximize time between syncs is absolutely
vital.
kajny_at_ida.liu.se
17Low Level Partitioning
- Primarily by task merging and common
parallelization techniques in parallel solvers - Task merging
- Partition code very fine grained
- Achive parallelism by a sequence of duplicating
tasks and merging very small jobs, depending on
computational and communication cost. - This can be done adaptively for large jobs
kajny_at_ida.liu.se
18Wrap up
- Parallelizing solving of large equation systems
is hard. - Latency is our worst enemy
- Different variants of speculative execution
might be our best friends - The grid might be a hype, but it is a useful
hype.
kajny_at_ida.liu.se
19Thank you for your attention Questions?
kajny_at_ida.liu.se