Transcript pps slides
c
cie
n
tific
o
m
p
u
tin
g
ADiCape
in a large-scale industrial problem
Monika Petera, Martin Bücker, Arno Rasch
Institute for Scientific Computing
RWTH Aachen University
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
Optimization Problem
o
m
p
u
tin
g
The Model:
A system of differential and algebraic equations (DAE):
Mx F ( x( p, t ), t )
where:
x - set of state variables
p - subset of parameters from x
Goal:
To minimize the objective function:
at the final time t f
AD Workshop - Nice 2005
min ( x( p, t ), p, t f )
p
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
Modeling languages
A model can be written in a one of modeling languages, e.g.
gPROMS, Modelica, and is usually represented as a system of
mathematical equations
An equation oriented approach does not make any
assumptions about how to solve a model or what quantities
are considered known and unknown.
CapeML – A Common Model Exchange Language for
Chemical Process Modeling designed for supporting the
modeling process.
CapeML is a neutral model exchange
representation based on the XML standard.
“CapeML – A Model Exchange Language for Chemical Process Modeling” - L.v.Wedel (TR May 2002)
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
A fragment of CapeML code
<Equation>
<BalancedEquation myID="V-0">
<Expression>
<Term>
<Factor>
<FunctionCall fcn.name=“sin">
<Expression>
<Term>
<Factor>
<VariableOccurrence
definition="V-car-alpha“/>
</Factor>
</Term>
</Expression>
</FunctionCall>
</Factor>
</Term>
</Expression>
sin( alpha ) beta
<Expression>
<Term>
<Factor>
<VariableOccurrence
definition="V-car-beta“/>
</Factor>
</Term>
</Expression>
</BalancedEquation>
</Equation>
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
DyOS- Dynamic Optimization
Software
takes 90% of the
computational time
Process System Engineering
RWTH Aachen University
DAE
ESO
model server
commercial
CapeML
ESO (Equation Set Object) - an internal representation of the computation tree.
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
The model of the Distillation Column
The model consists of 3 submodels:
• Swamp (1)
• Condenser (1)
• Tray (4)
and a set of connecting equations.
Condenser
Tray 1
Tray 2
Vapour_outlet
Liquid_inlet
Tray 3
Swamp
Tray 4
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
Jacobian sparsity structure
nV
connecting equations
# equations
nF 206
nF
Tray (4)
Swamp
Condenser
# variables
nV 410
# nonzeros
nnz 919 1.1%
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
Newton Step
o
m
p
u
tin
g
state variables:
xk 1 ( p) xk ( p) ( LU ) 1 F ( xk ( p))
LU- scaled system
Jacobian matrix
LU
( LU ) xk 1 ( p) F ( xk ( p))
F ( x0 ( p, t )) M
x
hj
d
xk ( p) sk ( p)
dp
d
dp
derivatives:
F xk ( p )
( LU ) sk 1 ( p )
xk ( p ) p
F
sk 1 ( p) sk ( p) ( LU )
sk ( p)
xk ( p)
1
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
Integration Algorithm
o
m
p
u
tin
g
Process System Engineering
RWTH Aachen University
( F ( x0 , p))
x
for j=1,...,jmax while convergence criterion not satisfied
Compute
A0
hj H / n j
M
hj
for k=0,...,j-1
LU A0
Reuse LU
decomposition
xk 1 xk ( LU ) 1 F ( xk ( p ))
sk 1
dF ( xk ( p ))
sk ( LU )
sk
dxk
1
M. Schlegel and W. Marquardt and R. Ehrig and U. Nowak:
“Sensitivity Analysis of Linearly-implicit Differential-algebraic
Systems by One-step Extrapolation” 2004
AD Workshop - Nice 2005
AD seeding
with
k
s
A
A
C
H
E
N
model server
c
ESO of DAE System
o
m
p
u
tin
g
ESO
cie
n
tific
CapeML
Modeling languages
model.mo
Transform to CapeML
CapeML
model.xml
XML
init_vars.xml
ESO
AD Workshop - Nice 2005
A
A
C
H
E
N
XSLT – Transform language
c
cie
n
tific
o
m
p
u
tin
g
ADiCape is based on XSLT Transformation Language.
On any XML-based language document eg. in CapeML, an
XSLT stylesheet is applied, to generate new document.
CapeML
document
XSLT
processor
transformed
CapeML
Stylesheet
ADiCape consists of 2 XSLT Stylesheets (at the moment)
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
ADiCape_var.xsl
o
m
p
u
tin
g
XML
init_vars.xml
V v22
...
Temp
...
v410
v1
gradients
for the dF/dTemp
g _ Temp[1] 0
...
Temp g _ Temp[22] 1
...
g _ Temp[410] 0
name="S.Temp"
<Variable myID="V_m_S.Temp" name="S.Temp" varID="V_SWAMP_Temp" view=“ovar">
<Experiment number="1" initial_value="85" result_value="0"/>
ADiCape_var.xs
l
dimension="410"
index="22"
<Vector name="S.g_Temp" varID="V_SWAMP_g_Temp" dimension="410"
view=“ovar">
initial_value="1"
<VectorVariable myID="V_m_S.g_Temp[22]"
name="S.g_Temp[22]" index="22">
name="S.g_Temp"
<Experiment number="1" initial_value="1" result_value="0"/>
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
ADiCape
o
m
p
u
tin
g
Modeling languages
model.mo
Transform to CapeML
CapeML
XML
XSLT
CapeML
model.xml
g_init_vars.xml
ADiCape_eq
g_model.xml
XML
XSLT
init_vars.xml
ADiCape_var
ESO
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
ADiCape_eq.xsl
o
m
p
u
tin
g
Templates:
<Equation>
<BalancedEquation myID="V-0">
<xsl:template match="Equation">
chain
rule ofdomain="V-g_i"/>
differentiation:
<Distribution
<xsl:template match=“Expression">
<Expression>
<xsl:template match=“FunctionCall">
<Term> f ( g ( x ))' f ' ( g ( x )) g ' ( x )
<xsl:template match="VariableOccurence">
<Factor>
<Equation>
<BalancedEquation myID="V-0">
<Expression>
function intrinsic:
<Term>
<Factor>
<FunctionCall fcn.name=“sin">
<Expression>
<Term>
<Factor>
<VariableOccurrence
definition="V-car-alpha“/>
</Factor>
</Term>
</Expression>
</FunctionCall>
</Factor>
</Term>
</Expression>
…
f
f'
sin( expr)
cos( expr)
cos( expr) sin( expr)
1
ln( expr)
(expr)
...
...
<FunctionCall fcn.name=“cos">
<Expression>
<Term>
<Factor>
differentiation of math-operations:
<VariableOccurrence
definition="V-car-alpha“/>
</Factor>
</Term>
</Expression>
</FunctionCall>
</Factor>
'
<Factor mul.op=“MUL”>
<VariableOccurrence
definition="V-car-g_alpha“/>
2
<DomainOccurrence domain=“V-g_i"/>
</Factor>
</Term>
</Expression>
A
A
C
H
E
N
…
( f g )' f ' g '
( f g )' f 'g f g '
AD Workshop - Nice 2005
f
f 'g f g '
g
g
c
cie
n
tific
ESO for the differentiated DAE
o
m
p
u
tin
g
Modeling languages
model.mo
Transform to CapeML
CapeML
XML
XSLT
CapeML
model.xml
g_init_vars.xml
ADiCape_eq
g_model.xml
XML
XSLT
init_vars.xml
ADiCape_var
g_ESO
ESO
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
XML ESO
o
m
p
u
tin
g
ESO
model server
CapeML
First derivatives
original DAE
ADiCape:
ESO
g_ESO
Call
Full Jacobian
Jacobian times Matrix
Call
m_eso
m_g_eso
XML ESO
get (F )
Call
DyOS
Sparse Jacobian matrices
with known sparsity pattern:
get (F ' )
do not calculate “zeros”
cut down number of operations
save space
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
Matrix compression
BUT HOW ??
Sparsity aware seeding
with CPR – Curtis-Powell-Reid
graph-coloring method!
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
Sparsity aware seeding
o
m
p
u
tin
g
206
=
*
410
dF
dx
13
dF
seed
dx
seed
AD Workshop - Nice 2005
13
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
Compressed Full Jacobian
size
time
full
206x410
55 min
compressed
206x13
3.4 s
factor
31.5
970 ?!
AD Workshop - Nice 2005
2.8 GHz Pentium 4
512MB cash
(31.52 970)
A
A
C
H
E
N
c
cie
n
tific
Future Work
o
m
p
u
tin
g
First derivatives
original DAE
ESO
Second derivatives
g_ESO
Call
Call
m_eso
m_g_eso
XML ESO
h_ESO
change DyOS System:
new Optimizer (IPOPT)*
which uses 2nd derivatives
change Integration Algorithm
get (F )
Call
DyOS
get (F ' )
* A. Wächter and L. T. Biegler: “On the
Implementation of a Primal-Dual Interior Point
Filter Line Search Algorithm for Large-Scale
Nonlinear Programming”, 2004
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
Second derivatives
o
m
p
u
tin
g
xk 1 ( p ) xk ( p ) ( LU ) 1 F ( xk ( p ))
( LU ) xk 1 ( p ) F ( xk ( p ))
( LU ) sk 1 ( p )
J s
F
sk
xk ( p )
d
dp
J d
sT H s
F
2F
T
( LU ) d k 1 ( p)
d k sk
sk
2
xk ( p )
xk ( p)
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
Summary and Conclusions
ADiCape is a source transformation tool employing the forward mode of
AD written for CapeML language
with Curtis-Powell-Reid method, calculation of a compressed sparse
Jacobian brings space savings and considerable speed-up
We expect DyOS integrator performance to considerably improve with
the use of AD-generated derivatives
With the new optimizer and precise AD second derivatives we hope to
considerably cut down the number of iterations of the Integrator.
AD Workshop - Nice 2005
A
A
C
H
E
N
c
cie
n
tific
o
m
p
u
tin
g
THANK YOU
FOR YOUR ATTENTION !
AD Workshop - Nice 2005
A
A
C
H
E
N