Dual decomposition methods and parallel computing - LAAS-CNRS

Transcription

Dual decomposition methods and parallel computing - LAAS-CNRS
Dual decomposition methods and parallel computing
Jonas Koko
LIMOS UMR 6158 Université Blaise Pascal - CNRS
Dijon 29/06/2015
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
1 / 18
Plan
1
Un exemple de décomposition en EDP
2
Décomposition des fonctions partiellement séparables
3
Algorithme parallèle
4
Résultats numériques
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
2 / 18
Un exemple de décomposition en EDP
Dilemme du calcul parallèle
Paralléliser les méthodes existantes ou paralléliser les
problèmes ?
Adapter des anciennes méthodes ou créer de méthodes adaptées
aux nouvelles architectures ?
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
3 / 18
Un exemple de décomposition en EDP
Décomposition de domaine en EDP
Problème initial
Z
|∇u| dx −
min J(u) =
u∈V
Z
2
Ω
fudx
Ω
Partitionnement : Ω = Ω1 ∪ · · · ∪ Ωn
min J(u) = J1 (u1 ) + · · · + Jm (um )
uij = ui − uj = 0,
i 6= j.
Lagrangien :
L (u, λ) =
X
i
Jonas Koko (LIMOS)
Ji (ui ) +
X
(λij , ui − uj )
j6=i
Dual decomposition methods
Dijon 29/06/2015
4 / 18
Un exemple de décomposition en EDP
Algorithme Uzawa gradient conjugué
Elimination de u : λ 7→ ui (λ)
Problème dual quadratique
max J ∗ (λ)
λ
Maximisation de la fonctionnelle duale.
Le calcul de ∇J ∗ (λ) nécessite la résolution (en parallel) de
∇ui L (u, λ) = 0, i = 1, . . . , m
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
5 / 18
Un exemple de décomposition en EDP
Lagrangien augmenté ADMM
min J(u) = J1 (u1 ) + · · · + Jm (um )
ui − pij = 0, uj − pij = 0,
i 6= j.
Lagrangien augmenté
Xn
(λij , ui − pij ) + (λij , ui − pij )
o
r
[k ui − pij k2 + k uj − pij k2 ]
2
Lr (u, p, λ) = J(u) +
+
Méthodes basées sur le Lagrangien augmenté :
u k +1 = arg min Lr (u, pk , λk )
u
Jonas Koko (LIMOS)
p
k +1
λ
k +1
= arg min Lr (u k +1 , p, λk )
p
k
= λ + r (u k +1 − pk +1 )
Dual decomposition methods
Dijon 29/06/2015
6 / 18
Fonctions partiellement séparables
Quelques méthodes existantes
Evaluation parallèle du gradient (Mangasarian 1995, Conforti et
al. 1992)
Méthodes de décomposition (Conforti et al. 1997)
Méthodes multi-pas et multi-direction (Phua et al. 2005, Pardines
et al. 2006)
Coordinate descent (Richtarik et al. 2014)
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
7 / 18
Fonctions partiellement séparables
Problème d’optimisation semi-séparable
(P0 )
min f (x) = f1 (x1 ) + f2 (x2 )
x∈Rn
x1 , x2 sous-vecteurs de x, |xi | = ni , n1 + n2 > n
fi : Rni −→ R, de classe C 2
Exemple : Fonction de Rosenbrock
f (x) = 100(x12 − x2 )2 + (x1 − 1)2 + 100(x22 − x3 )2 + (x2 − 1)2
f1 (x1 , x2 ) = 100(x12 − x2 )2 + (x1 − 1)2
f2 (x2 , x3 ) = 100(x22 − x3 )2 + (x2 − 1)2
x1 = (x1 , x2 ), x2 = (x2 , x3 )
x1 ∩ x2 = (x2 )
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
8 / 18
Fonctions partiellement séparables
Problème d’optimisation semi-séparable
(P0 )
min f (x) = f1 (x1 ) + f2 (x2 )
x∈Rn
x1 , x2 sous-vecteurs de x, |xi | = ni , n1 + n2 > n
fi : Rni −→ R, de classe C 2
Exemple : Fonction de Rosenbrock
f (x) = 100(x12 − x2 )2 + (x1 − 1)2 + 100(x22 − x3 )2 + (x2 − 1)2
f1 (x1 , x2 ) = 100(x12 − x2 )2 + (x1 − 1)2
f2 (x2 , x3 ) = 100(x22 − x3 )2 + (x2 − 1)2
x1 = (x1 , x2 ), x2 = (x2 , x3 )
x1 ∩ x2 = (x2 )
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
8 / 18
Fonctions partiellement séparables
Décomposition
x12 = x21 = x1 ∩ x2
Convention :
x1 =
x11
x12
x2 =
x21
x22
Problème d’optimisation avec contraintes :


 min f1 (x1 ) + f2 (x2 )
x12 − x21 = 0,
(P1 )


(x1 , x2 ) ∈ Rn1 × Rn2 .
Variable auxiliaire : y12

min f1 (x1 ) + f2 (x2 )



 x12 − y12 = 0,
(P2 )

x21 − y12 = 0,



(x1 , x2 , y12 ) ∈ Rn1 × Rn2 × Rn12
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
9 / 18
Fonctions partiellement séparables
Décomposition
x12 = x21 = x1 ∩ x2
Convention :
x1 =
x11
x12
x2 =
x21
x22
Problème d’optimisation avec contraintes :


 min f1 (x1 ) + f2 (x2 )
x12 − x21 = 0,
(P1 )


(x1 , x2 ) ∈ Rn1 × Rn2 .
Variable auxiliaire : y12

min f1 (x1 ) + f2 (x2 )



 x12 − y12 = 0,
(P2 )

x21 − y12 = 0,



(x1 , x2 , y12 ) ∈ Rn1 × Rn2 × Rn12
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
9 / 18
Fonctions partiellement séparables
Lagrangien augmenté
λ = (λ12 , λ21 ) ∈ R2n12
Lr (x, y, λ) = f1 (x1 ) + f2 (x2 )
>
+ λ>
12 (x12 − y12 ) + λ21 (x21 − y12 )
r
r
k x12 − y12 k2 + k x21 − y12 k2
+
2
2
Equations de point-selle :
∇f1 (x1 ) +
∇f2 (x2 ) +
0
r (x12 − y12 ) + λ12
r (x21 − y12 ) + λ21
0
= 0
= 0
−r (x12 − y12 ) − r (x21 − y12 ) − λ12 − λ21 = 0
x12 − y12 = 0,
Jonas Koko (LIMOS)
x21 − y12 = 0.
Dual decomposition methods
Dijon 29/06/2015
10 / 18
Fonctions partiellement séparables
Lagrangien augmenté
λ = (λ12 , λ21 ) ∈ R2n12
Lr (x, y, λ) = f1 (x1 ) + f2 (x2 )
>
+ λ>
12 (x12 − y12 ) + λ21 (x21 − y12 )
r
r
k x12 − y12 k2 + k x21 − y12 k2
+
2
2
Equations de point-selle :
∇f1 (x1 ) +
∇f2 (x2 ) +
0
r (x12 − y12 ) + λ12
r (x21 − y12 ) + λ21
0
= 0
= 0
−r (x12 − y12 ) − r (x21 − y12 ) − λ12 − λ21 = 0
x12 − y12 = 0,
Jonas Koko (LIMOS)
x21 − y12 = 0.
Dual decomposition methods
Dijon 29/06/2015
10 / 18
Algorithme parallèle
Algorithme du Lagrangien augmenté (classique)
• k = 0. λ0 , r 0 .
• k ≥ 0. λk connu
Optimisation sans contrainte
(xk +1 , yk +1 ) = arg min Lr (x, y, λk )
Mise à jour des multiplicateurs
λkij +1 = λkij + r k (xkij − ykij ),
i 6= j
Mettre à jour les pénalités
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
11 / 18
Algorithme parallèle
Relaxation par blocs/ Directions alternées 1
Cas convexe
• k = 0. y0 , λ0 donnés
• k ≥ 0. Calculer successivement xk +1 , yk +1 et λk +1
Résoudre simultanément (i.e. en parallèle)
xki +1 = arg min Lr (xi , yk , λk ),
xi
i = 1, · · · , n
Calculer la variable auxilaire
ykij +1 =
1 k +1 k +1
1
(x +xij )+ (λkij +λkij ),
2 ij
2r
i, j = 1, 2,
i 6= j
Mise à jour multiplicateurs
λkij +1 = λk + r (xki +1 − ykij +1 )
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
12 / 18
Algorithme parallèle
Relaxation par blocs/ Directions alternées 2
Cas non convexe
• k = 0. y0 , λ0 donnés
• k ≥ 0. Calculer successivement xk +1 , yk +1 et λk +1
Repeter m fois
1
Résoudre simultanément (i.e. en parallèle)
xki +1 = arg min Lr (xi , yk , λk ),
xi
2
i = 1, · · · , n
Calculer la variable auxilaire
ykij +1 =
1 k +1
1
(x
+ xkij +1 ) + (λkij + λkij ),
2 ij
2r
Mise à jour multiplicateurs
λkij +1 = λk + r (xki +1 − ykij +1 )
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
13 / 18
Résultats numériques
Environnement de calcul
Machine Cluster Linux 176 coeurs
Solveur L-BFGS (Zhu et al. 1994) ;
Langage Fortran 95 + MPI
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
14 / 18
Résultats numériques
Quadratic tridiagonal (convex) function
f (x) = (x − 1)2 +
n
X
i(2xi − xi−1 )2
i=2
Paramètres : r = 10, n = 106
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
15 / 18
Résultats numériques
Rosenbrock (non convex) function
f (x) =
n h
X
2
100(xi−1
− xi )2 + (xi−1 − 1)2
i
i=2
Paramètres : r = 10, m = 5, n = 5 × 105
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
16 / 18
Résultats numériques
Perspectives
Choix automatiques de r et m
BFGS+L-BFGS ?
Extension au cas non semi-séparable ?
Nesterov parallèle ?
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
17 / 18
Résultats numériques
Quelques références
P. Le Tallec and R. Glowinski
Augmented Lagrangian and Operator-Splitting Methods.
SIAM, 1989.
P. Richtarik and M. Takac, Parallel coordinate descent for big data
optimization,
Mathematical Programming, 2015
J. Koko,Parallel Uzawa methods for large-scale minimization of
partially separable functions,
Journal Optimization Theory and Applications, 2013.
Jonas Koko (LIMOS)
Dual decomposition methods
Dijon 29/06/2015
18 / 18

Documents pareils