description language of calculation scheme for automatic simulation code generation akira amano...
Post on 25-Dec-2015
225 Views
Preview:
TRANSCRIPT
Description Language of Calculation Scheme for Automatic Simulation Code Generation
Akira Amano
College of Lifescience, Ritsumeikan University
1CellML workshop
2012
CellML workshop 2012 2
HD Physiology Project
Project Leader: Prof. Y. Kurachi (Osaka Univ.)2010-2015http://hd-physiology.jp/
HD Physiology Project
• Japanese title of this project“Integrative Multi-level Systems Biology for …”
• target– Multiscale in Biology– construct comprehensive simulation model of
drug induced heart arrhythmia
CellML workshop 2012 3
HD Physiology Project
• groups– platform (Kitano (SBML), Asai (isML PHML))– cardiac biology– pharmacokinetics
• integrate models of ...– whole heart excitation propagation– cell model including drug effect– circulation model– pharmacokinetics / pharmacodynamics
CellML workshop 2012 4
Biological function simulations are different from conventional models in:
• The complexity of the models• Multiple scale and physics (nano-sec, hour, Chemistry, dynamics, fluid ...)
Characteristics ofBiological Function Models (from IT view)
5CellML workshop 2012
• The complexity of the model• Multiple scale and physics
cardiac cell modelion channels
energy metabolism
ion transporters
contractionmechanism
latest model number of equations : more than 400 number of variables : more than 400
Characteristics ofBiological Function Models (from IT view)
6CellML workshop 2012
• The complexity of the model• Multiple scale and physics
Characteristics ofBiological Function Models
Coupling Calculation Scheme is usually built in in the simulation tools.
fluid mechanicsstructural mechanics
chemical reactionelectrophysiology
Coupling Calculation
Simulation of the heart beat
7CellML workshop 2012
Software Crisis!
CellML workshop 2012 8
Merlin Dorfman”Software Engineering”IEEE, 1997.
in 1970s: Software size increased exponentially. Large scale software project failed.
Software Engineering Structured Programming Languages Integrated Software Tools
Efficient handling of complex models⇒ use of Markup Languages
Software Engineering Tools for Complex Biological Models
9CellML workshop 2012
CellML FieldML
PHML
SBML
Cell physiological model description
Field (Organ) modeldescription
Systems Biology modeldescription
Declarative Description Models
Declarative description: every equation is true at any time
• High flexibility from mathematical description
combination of models, boundary cond.• Avoiding bugs by automatic processing of models
Software Engineering Tools for Complex Biological Models
10CellML workshop 2012
not declarative declarative
dtdxxx
xfdx
)(
dtdxxx
xfdx
ttt
tt
1
)(
• Lumped parameter models (ODE)simulation tools and markup languages
CellML, ...
calculation methods are simple (usually builtin)
• Distributed parameter models (PDE)simulation tools and markup languages (complex)
FieldML?, ...
calculation methods are complex
no general simulation software?
• Coupling simulation modelssimulation software are developed manually
Our approach: propose description language for calculation methods
What to be supported
CellML workshop 2012 11
Method: Designing declarative description of coupling calculation schemes.
use recurrence relations
1. start from single model discretization2. next consider coupling calculation
What to be supported
12CellML workshop 2012
Lumped parameter models (ODE)discretize in time
Euler, Runge Kutta, ...
Distributed parameter models (PDE)discretize in space (and time)
center difference, upwind difference, ...
Single Model Input Equations
13CellML workshop 2012
ttdt
dxtxtx )()(
2
112
)(
2
x
xxxx jjj
j
FTCS (forward time center space) original model equation
discretized equation
Discretization
14CellML workshop 2012
xdt
dx 2
2
112
)(
)(2)()()(
)()(
x
txtxtxtx
dt
dx
dt
dxtxtx
jjjj
tt
tt
Crank-Nicolson original model equation
discretized equation
Discretization
15CellML workshop 2012
xdt
dx 2
2
11
2
11
)(
)(2)()(
)(
)(2)()(
)()(2
x
txtxtx
x
txtxtx
txtx
jjj
jjj
jj
• calculation method becomes complex
• we can separate discretization scheme from calculation method
CellML/PHML
TecML
Relation(RelML)
Process of combining Model Equation with Calculation Scheme
Recurrence RelationEquations
CalculationScheme
ModelEquations
Variable Correspondence information between two files
Executable code
1st step 2nd step
16CellML workshop 2012
CellML Compileravailable at sourceforge
equation to programeasy! CPU, GPU PC cluster, super computer (K?)low efficiency buthigh and safe productivity
Single Model Calculation schemes:1. mathematical relation between discretized
variables2. calculation method of unknown variables
TecML(Time Evolution Calculation Markup Language): Description language to describe
• time evolution calculation method Euler, RungeKutta …
• spatial difference scheme center difference, upwind difference, ...
Declarative Description of Calculation Schemes
17CellML workshop 2012
model equations
time discretization
-rkdx/dt
xr
3
Concept of Calculation Scheme Description by Recurrence Relation
18CellML workshop 2012
1000) (n if
),(
),(
nend
n1n
n
n
0
n
nn
nn
init
11
}{
}{
}{
n
n
tn
tn
k
r
x
relation Recurrence relation
)1000(if][
][][][
][][
][][
]0[
1
3
nnend
nnn
nn
nn
init
t txx
δtktxtx
t -rtk
txtr
xx
(declarative description)
1st step: generate recurrence relation from model equations
TecML
RelML
Recurrence relation Executable code
2nd step: generate program to calculate recurrence relations
x[0] = xinit;tn=0;do{ r[tn] = x[tn]*x[tn]*x[tn]; k[tn] = - r[tn]; x[tn+1] = x[tn] + k[tn] * delta; tn = tn + 1;} while(!((tn-1) == 1000));xend = x[tn-1];
Concept of Calculation Scheme Description by Recurrence Relation
19CellML workshop 2012
(declarative description)
)1000(if][
][][][
][][
][][
]0[
1
3
nnend
nnn
nn
nn
init
t txx
δtktxtx
t -rtk
txtr
xx
CellML workshop 2012 20
Experiments on FHN, LR-I
Coupling Calculation Schemes
21CellML workshop 2012
Coupling calculation schemes:1. also mathematical relation between discretized
variables in several models2. calculation method of unknown variables
TecML Description language to describe
• coupling calculation scheme cell model + mechanical model convergence calculation different time step models
Example: Double Time LoopPhysiologically based Pharmacokinetic model calculation
22
time order: hour
time order: millisec
CellML workshop 2012
do { dose concentration calculate whole body model with large time step
do { concentration cell state calculate each cell model with small time step
} while ( !time1end() ); } while ( !time2end() );
Example: Double Time Loop
CellML workshop 2012 23
Recurrence relation Executable code
1000) (t if]c[t c
) ][t(k ]c[t ]c[t
])s[t ],(c[tf ][tk
1.0 c[0]
nnend
1ncn1n
nn1nc
c[0] = 1.0;tn=0;do { s[tn][0] = s[tn-1]; tm = 0; do { ks[tn][tm] = f2(c[tn],s[tn][tm]); s[tn][tm+1] = s[tn][tm] + ks[tn][tm]*delta1; tm++; } while (!(tm-1)==1000); s[tn] = s[tn][tm]; kc[tn] = f1(c[tn],s[tn]); c[tn+1] = c[tn] + kc[tn]*delta2; tn = tn + 1;} while(!((tn-1) == 1000));cend = c[tn-1];
Example: Double Time Loop
24
1000) (t if]][ts[t]s[t
)δ ]][t[t(k ]][ts[t ]][ts[t
])][ts[t ],(c[tf ]][t[tk
]s[t ][0]s[t
mmnn
2mnsmnmn
mnn2mns
1nn
outer while loopouter while loop
inner while loopinner while loop
CellML workshop 2012
CellML1:Cardiac Cell ModelCellML2:Blood Circulation ModelCellML3:Heart Finite Element (FE) Model
Example: Convergence Calculation
The dynamic model of the simple heart
25CellML workshop 2012
CellML1:Cardiac Cell Model
Example: Convergence Calculation
26CellML workshop 2012
CellML1: Cardiac Cell ModeldT/dt = kT = f1 (L, T)
CellML2:Blood Circulation ModelCellML2: Blood Circulation Model
dV/dt = kV = f3 (P)
Example: Convergence Calculation
27CellML workshop 2012
CellML3:Heart Finite Element (FE) ModelCellML3: Heart FE ModelV= f4 (P, T)L = f5 (V)nP = fPnext (P, V, Vtarget, P1, P2)nP1 = PnP2 = P1
e = |V – Vtarget|
FE model can only calculate volume from pressure.PLV is calculated by searching.
P1P2fpnext(P1,P2)
V1Vnext Vtarget
)1000(][
)1000(][
)][(][][
)][(][][
])[(][
])[],[(][
]0[
]0[
]0[
1
1
3
1
nnend
nnend
nVnn
nTnn
nnV
nnnT
init
init
init
tiftVV
tiftTT
tktVtV
tktTtT
tPftk
tTtLftk
PP
VV
TT
)]][[(]][[][
)]][[(]][[][
]][[]][[
]][[]][[
]][[]][[
][]][[]][[
]][[]][[
]][[]][[
])][[],][[],[
],][[],][[(]][[
])][[(]][[
])[],][[(]][[
][]0][[
][]0][[
][]0][[
1
1
212
111
1
12
1
21
5
4
2
1
mnrmnrn
mnrmnrn
mnmnr
mnmnr
mnmnr
nmnrmnr
mnrmn
mnrmn
mnrmnrn
mnrmnrPnextmn
mnrmnr
nmnrmnr
nnr
nnr
nnr
tteifttLtL
tteifttPtP
ttnPttP
ttnPttP
ttnPttP
tVttVtte
ttPttnP
ttPttnP
ttPttPtV
ttVttPfttnP
ttVfttL
tTttPfttV
tPtP
tPtP
tPtP
28CellML workshop 2012
Recurrence relation
Executable code
T[0]=Tinit;V[0]=Vinit;P[0]=Pinit;tn = 0;do{ Pr[tn][0]=P[tn]; P1r[tn][0]=P[tn]; P2r[tn][0]=P[tn]; tm = 0; do{ Vr[tn][tm]=f4(Pr[tn][tm],T[tn]); Lr[tn][tm]=f5(Vr[tn][tm]); nPr1[tn][tm]=fPnext((Pr[tn][tm],Vr[tn][tm],
V[tn],P1r[tn][tm],P2r[tn][tm]); nP1r1[tn][tm]=Pr[tn][tm]; nP2r1[tn][tm]=P1r[tn][tm]; er[tn][tm]=|Vr[tn][tm]-V[tn]|; Pr[tn][tm+1]=nPr1; P1r[tn][tm+1]=nP1r1; P2r[tn][tm+1]=nP2r1; tm = tm + 1; }while(!((er[tn][tm-1])<epsilon)); P[tn]=Pr[tn][tm-1]; L[tn]=L[rtn][tm-1]; dTdt0[tn]=f1(L[tn],T[tn]); dVdt0[tn]=f3(P[tn]); T[tn+1]=T[tn]+(dTdt0[tn]*delta); V[tn+1]=V[tn]+(dVdt0[tn]*delta); tn = tn + 1;}while(!((tn-1)==1000));Tend=T[tn-1];Vend=V[tn-1]:
29CellML workshop 2012
2nd step: calculation method
30CellML workshop 2012
Coupling calculation schemes:1. also mathematical relation between discretized
variables of several models2. calculation method of unknown variables
current status:• order of calculating eqns are analyzed• partly DAE calculation is supported (numerical differential method)• simple GPU support
advantages of our approach
31CellML workshop 2012
1. use of declarative description is flexible in ...combination of various modelscombining with boundary conditions
2. two step approachvarious target language / hardwares / libraries language: C, C++, Java, Java BigDecimal hardware: GPU, super computers library: various math library
Example: parallel code (GPGPU)
32
2D excitation propagation (LR1)
GPU was 60 times faster than single CPUWe can use any cell model to generate GPGPU 2D excitation propagation program.
CellMLSimulationProgram
Generator
C languageC language
CUDA CCUDA C
Single CPU
GPU
CPU (core i7 880)GPU (Tesla C2050)
The 1st HD Physiology International Symposium 20th
Jan, 2012
CellML workshop 2012 33
available at sourceforge (http://sourceforge.net/projects/cellmlcompiler/)• only single model time discretization available
• Euler, Runge Kutta (explicit method only)• fixed geometry excitation propagation with GPU
current project webpage
Summary
• Declarative description models are useful for simulation with complex models.– CellML, SBML, FieldML, PHML, ...
• Declarative description of coupling calculation scheme– proposed: TecML
• With declarative description coupling calculation scheme, simulation program can be generated with high flexibility.– various boundary conditions– parallel code for super computers
CellML workshop 2012 34
top related