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