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 min J(u) = u 2 dx fudx u V Ω Ω Partitionnement : Ω = Ω 1 Ω n min J(u) = J 1 (u 1 ) + + J m (u m ) u ij = u i u j = 0, i j. Lagrangien : L (u, λ) = i [ Ji (u i ) + (λ ij, u i u j ) ] j i Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 4 / 18
Un exemple de décomposition en EDP Algorithme Uzawa gradient conjugué Elimination de u : λ u i (λ) 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 Lagrangien augmenté min J(u) = J 1 (u 1 ) + + J m (u m ) u i p ij = 0, u j p ij = 0, i j. L r (u, p, λ) = J(u) + {(λ ij, u i p ij ) + (λ ij, u i p ij ) + r } 2 [ u i p ij 2 + u j p ij 2 ] Méthodes basées sur le Lagrangien augmenté : u k+1 = arg min u L r (u, p k, λ k ) p k+1 = arg min p L r (u k+1, p, λ k ) λ k+1 = λ k + r(u k+1 p k+1 ) Jonas Koko (LIMOS) 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 (P 0 ) min x R n f (x) = f 1(x 1 ) + f 2 (x 2 ) x 1, x 2 sous-vecteurs de x, x i = n i, n 1 + n 2 > n f i : R n i R, de classe C 2 Exemple : Fonction de Rosenbrock f (x) = 100(x1 2 x 2) 2 + (x 1 1) 2 + 100(x2 2 x 3) 2 + (x 2 1) 2 f 1 (x 1, x 2 ) = 100(x1 2 x 2) 2 + (x 1 1) 2 f 2 (x 2, x 3 ) = 100(x2 2 x 3) 2 + (x 2 1) 2 x 1 = (x 1, x 2 ), x 2 = (x 2, x 3 ) x 1 x 2 = (x 2 ) Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 8 / 18
Fonctions partiellement séparables Problème d optimisation semi-séparable (P 0 ) min x R n f (x) = f 1(x 1 ) + f 2 (x 2 ) x 1, x 2 sous-vecteurs de x, x i = n i, n 1 + n 2 > n f i : R n i R, de classe C 2 Exemple : Fonction de Rosenbrock f (x) = 100(x1 2 x 2) 2 + (x 1 1) 2 + 100(x2 2 x 3) 2 + (x 2 1) 2 f 1 (x 1, x 2 ) = 100(x1 2 x 2) 2 + (x 1 1) 2 f 2 (x 2, x 3 ) = 100(x2 2 x 3) 2 + (x 2 1) 2 x 1 = (x 1, x 2 ), x 2 = (x 2, x 3 ) x 1 x 2 = (x 2 ) Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 8 / 18
Décomposition x 12 = x 21 = x 1 x 2 Convention : Fonctions partiellement séparables x 1 = [ x11 x 12 ] x 2 = [ x21 x 22 Problème d optimisation avec contraintes : min f 1 (x 1 ) + f 2 (x 2 ) (P 1 ) x 12 x 21 = 0, (x 1, x 2 ) R n 1 R n 2. ] Variable auxiliaire : y 12 (P 2 ) min f 1 (x 1 ) + f 2 (x 2 ) x 12 y 12 = 0, x 21 y 12 = 0, (x 1, x 2, y 12 ) R n 1 R n 2 R n 12 Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 9 / 18
Décomposition x 12 = x 21 = x 1 x 2 Convention : Fonctions partiellement séparables x 1 = [ x11 x 12 ] x 2 = [ x21 x 22 Problème d optimisation avec contraintes : min f 1 (x 1 ) + f 2 (x 2 ) (P 1 ) x 12 x 21 = 0, (x 1, x 2 ) R n 1 R n 2. ] Variable auxiliaire : y 12 (P 2 ) min f 1 (x 1 ) + f 2 (x 2 ) x 12 y 12 = 0, x 21 y 12 = 0, (x 1, x 2, y 12 ) R n 1 R n 2 R n 12 Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 9 / 18
Fonctions partiellement séparables Lagrangien augmenté λ = (λ 12, λ 21 ) R 2n 12 L r (x, y, λ) = f 1 (x 1 ) + f 2 (x 2 ) + λ 12 (x 12 y 12 ) + λ 21 (x 21 y 12 ) + r 2 x 12 y 12 2 + r 2 x 21 y 12 2 Equations de point-selle : [ ] 0 f 1 (x 1 ) + r(x 12 y 12 ) + λ 12 [ ] r(x21 y f 2 (x 2 ) + 12 ) + λ 21 0 = 0 = 0 r(x 12 y 12 ) r(x 21 y 12 ) λ 12 λ 21 = 0 x 12 y 12 = 0, x 21 y 12 = 0. Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 10 / 18
Fonctions partiellement séparables Lagrangien augmenté λ = (λ 12, λ 21 ) R 2n 12 L r (x, y, λ) = f 1 (x 1 ) + f 2 (x 2 ) + λ 12 (x 12 y 12 ) + λ 21 (x 21 y 12 ) + r 2 x 12 y 12 2 + r 2 x 21 y 12 2 Equations de point-selle : [ ] 0 f 1 (x 1 ) + r(x 12 y 12 ) + λ 12 [ ] r(x21 y f 2 (x 2 ) + 12 ) + λ 21 0 = 0 = 0 r(x 12 y 12 ) r(x 21 y 12 ) λ 12 λ 21 = 0 x 12 y 12 = 0, x 21 y 12 = 0. Jonas Koko (LIMOS) 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 (x k+1, y k+1 ) = arg min L r (x, y, λ k ) Mise à jour des multiplicateurs λ k+1 ij = λ k ij + r k (x k ij y k ij ), i 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. y 0, λ 0 donnés k 0. Calculer successivement x k+1, y k+1 et λ k+1 Résoudre simultanément (i.e. en parallèle) x k+1 i = arg min x i L r (x i, y k, λ k ), i = 1,, n Calculer la variable auxilaire y k+1 ij = 1 2 (xk+1 ij +x k+1 ij )+ 1 2r (λk ij +λk ij ), i, j = 1, 2, i j Mise à jour multiplicateurs λ k+1 ij = λ k + r(x k+1 i y k+1 ij ) 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. y 0, λ 0 donnés k 0. Calculer successivement x k+1, y k+1 et λ k+1 Repeter m fois 1 Résoudre simultanément (i.e. en parallèle) x k+1 i = arg min xi L r (x i, y k, λ k ), i = 1,, n 2 Calculer la variable auxilaire y k+1 ij Mise à jour multiplicateurs = 1 2 (xk+1 ij + x k+1 ij ) + 1 2r (λk ij + λ k ij ), λ k+1 ij = λ k + r(x k+1 i y k+1 ij ) 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 + Paramètres : r = 10, n = 10 6 n i(2x i x i 1 ) 2 i=2 Jonas Koko (LIMOS) Dual decomposition methods Dijon 29/06/2015 15 / 18
Résultats numériques Rosenbrock (non convex) function f (x) = n i=2 Paramètres : r = 10, m = 5, n = 5 10 5 [ 100(x 2 i 1 x i) 2 + (x i 1 1) 2] 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
Quelques références Résultats numériques 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