Département de Mathématiques et Informatique Université Mohamed 1er Faculté des Sciences Département de Mathématiques et Informatique Un résultat de convergence des algorithmes parallèles asynchrones Application aux opérateurs maximaux fortement monotones Abdenasser BENAHMED
Plan Problème Méthodes directes / itératives pour le calcul numérique Algorithmes itératifs synchrones Algorithmes itératifs asynchrones L’algorithme général Résultats de convergence Notre résultat Application aux opérateurs monotones Cas spéciaux Conclusion
Problème La modélisation de beaucoup de phénomènes conduit à la résolution d’une équation du type f(x) = 0 , x E (1) E espace vectoriel Équation qu’on peut écrire sous la forme x = F(x) , x E (2) Les solutions de (2) sont appelés points fixes de F E = Rn
Méthodes directes / itératives pour le calcul numérique calculent la solution exacte en un nombre fini d’étapes gourmandes en mémoire (dimension n => stockage n3) Méthodes itératives (séquentielles) : évaluent la solution par approximations successives : xp+1 = F(xp) moins gourmandes en mémoire plus facilement parallélisable Exemple de 2 processeurs expliquant le déroulement des algorithmes parallèles synchrones et asynchrones
Algorithmes itératifs synchrones Les processeurs commencent la même itération au même moment Les échanges de données sont réalisées à la fin d'une itération Beaucoup de temps morts entre les itérations (périodes d’inactivité) Dégrade considérablement les performances des algorithmes parallèles xip+1 = Fi (x1p, x2p) i=1,2 phases de communication et d'attente phases de calcul 1 2 3 4 5 6 x1 Processeur 1 1 2 3 4 5 6 x2 Processeur 2 temps
Algorithmes itératifs asynchrones Les processeurs ne calculent pas forcément la même itération à un instant t (pas de synchronisation) Ils effectuent leurs itérations sans tenir compte de l'avancement des autres (pas d'ordre de calcul) Il n'y a plus d'attente des données venant d'autres processeurs pour commencer une itération Il n'y a plus de temps morts entre les itérations xip+1 = Fi (x1s1(p), x2s2(p)) i=1,2 1 2 3 4 5 6 7 8 Processeur 1 x1 1 2 3 4 5 6 7 8 Processeur 2 x2 temps
L’algorithme général : Décomposition de Rn processeurs chaque processeur communique avec les autres processeurs de façon asynchrone pour envoyer et recevoir des données Rn = Rn1 x Rn2 x … x Rn , n1 + n2 + … + n = n x Rn x = (x1,…, x) , xi Rni
L’algorithme général : Produit scalaire et normes x = (x1,…, x) et y = (y1,…, y) Chaque Rni est muni du produit scalaire euclidien (.,.)i de la norme associée ||..||i = (.,.)i1/2 L'espace Rn sera muni du produit scalaire (x,y) = ∑ (xi ,yi)i i=1 de la norme associée ||x|| = (x, x)1/2 et de la norme uniforme ||x|| = max{ ||xi||i , 1 ≤ i ≤ }
L’algorithme général : Définition F est une application de Rn vers Rn L’algorithme parallèle asynchrone associé à l’application F est défini par (3) J(p) est une suite de sous-ensembles non vides de {1,…, } si(p) sont des entiers inférieurs à p indexant des itérations antérieures à p
L’algorithme général : Définition (3) Cet algorithme décrit le comportement d'un processus itératif exécuté de façon asynchrone sur une machine parallèle comportant processeurs. A chaque itération p + 1, le ième processeur calcule xip+1 en utilisant (3) J(p) est l'ensemble des composantes mises à jour à l'itération p (stratégie de composantes) ri(p) = p si(p) représente le retard éventuel dû au ième processeur lors du calcul du ième bloc à l'itération p
L’algorithme général : Définition (3) Comment s'est développé cet algorithme au cours des années passées?
Résultats de convergence: Chazan & Miranker (1969) Pour résoudre le système linéaire Ax = b où A est une matrice symétrique définie positive sur Rn Problème linéaire de point fixe Mise à jour d’une seule composante Retards bornés Application contractive
Résultats de convergence: Miellou J.C. (1975) Généralise le résultat de Chazan & Miranker sur deux niveaux Problème non linéaire de point fixe Mise à jour de plusieurs composantes Retards bornés Application contractive en norme vectorielle
Résultats de convergence: Baudet G. (1978) Généralise le résultat de Miellou Problème non linéaire de point fixe Mise à jour de plusieurs composantes Retards non bornés Application contractive en norme vectorielle
Résultats de convergence: El Tarazi M.N. (1982) Plus simple dans la pratique Problème non linéaire de point fixe Mise à jour de plusieurs composantes Retards non bornés Application contractive en norme scalaire
Résultats de convergence: Bahi J.M. (2000) Systèmes singuliers Problème linéaire de point fixe Mise à jour de plusieurs composantes Retards bornés Application non-expansive
Notre résultat Problème non linéaire de point fixe Mise à jour de plusieurs composantes Retards bornés Application non-expansive
Notre résultat Théorème 1: (Résultat principal) Supposons : (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’) Alors pour tout x0 Rn, l’algorithme parallèle asynchrone associé à F converge vers x* point fixe de F
La preuve Elle se fait en trois étapes: La suite (|| xp u ||)pN est convergente grâce à (h2), (h3) et (h1) Donc la suite (xp)pN est bornée La suite (xpk)kN ((pk)kN est définie par (h0)), étant bornée, elle admet une sous-suite notée aussi (xpk)kN qui converge vers x* de Rn. Alors x* est un point fixe de F grâce à (h4), (h2) et (h0) et (i) xp x* pour la norme ||..|| quand p tend vers grâce à (i) et (ii) (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’)
Commentaires (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’) L'hypothèse (h0) signifie que de temps à autre (après quelques itérations) les processeurs se synchronisent et mettent à jours leurs données en les échangeant Cette sous-suite peut être programmée par l'utilisateur
Commentaires (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’) L'hypothèse (h1) signifie que les retards dus aux communications entre processeurs et aux différents temps de calcul sont bornés, ce qui revient à supposer qu'au bout d'au plus (s+1) itérations, tous les processeurs finissent par mettre à jour leurs données.
Commentaires L'hypothèse (h2) affirme que F admet un point fixe (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’) L'hypothèse (h2) affirme que F admet un point fixe L'hypothèse (h3) signifie que F est non-expansive par rapport à la norme uniforme ||..|| sur Rn
Commentaires (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’) L'hypothèse (h4) est vérifiée par une large classe d'opérateurs: la résolvante F = (I + cT )-1 (c > 0) associée à un opérateur T maximal monotone la projection pc d'un espace de Hilbert réel H sur un convexe fermé non vide C les opérateurs linéaires symétriques positifs et non-expansifs
L’algorithme de Jacobi Caractérisé par : si(p) = p i {1,…, } (tous les retards sont nuls) J(p) = {1,…, } (toutes les composantes sont réactualisée) (4) décrit un algorithme parallèle synchrone (sans retards) On peut se passer de l’hypothèse (h3) (4)
L’algorithme de Jacobi Théorème 2: Si F admet un point fixe u et si elle vérifie l’hypothèse (h4) alors l’algorithme parallèle de Jacobi converge dans Rn vers x* point fixe de F La preuve (i) La suite (|| xp-u ||)pN est convergente grâce à (h2), (h4) (ii) et (iii) sont similaires au théorème 1
Application aux opérateurs maximaux fortement monotones: Définitions H est un espace de Hilbert réel ((.,.) et ||..|| euclidien) Un opérateur multivoque T de H à domaine D(T) est dit monotone si x,x’ D(T), (y y’, x x’) ≥ 0 y Tx et y’ Tx’ a-fortement monotone (a > 0) si x,x’ D(T), ( y y’, x x’) ≥ a||x x’||2 y Tx et y’ Tx’ Les éléments x de D(T) vérifiant 0 Tx sont appelés solutions ou zéros de l’opérateur T H = Rn
Application aux opérateurs maximaux fortement monotones: Le théorème Soit T un opérateur multivoque maximal a-fortement monotone sur Rn (a > 0). Alors T admet une solution unique x* Tout algorithme parallèle asynchrone à retards bornés associé à l'application univoque F = (I + cT )-1 où c ≥ converge dans Rn vers la solution x* de T
Application aux opérateurs maximaux fortement monotones: La preuve C’est une application du théorème 1 On démontre que l’application F vérifie les hypothèses (h2), (h3) et (h4) (h0) une sous-suite {pk}kN telle que J(pk) = {1,…, } et si(pk) = pk i {1,…, } (h1) s N tel que i {1,…, } , p N, p s ≤ si(p) ≤ p (h2) u Rn , F(u) = u (h3) x,x’ Rn , ||F(x) F(x’)|| ≤ || x x’|| (h4) x,x’ Rn , ||F(x) F(x’)||2 ≤ (F(x) F(x’),x x’)
Application aux opérateurs maximaux fortement monotones: Remarque Méthode parallèle pour le calcul des solutions des opérateurs multivoques maximaux fortement monotones On peut se passer de la forte monotonie dans le cas de Jacobi
Application aux opérateurs maximaux monotones Théorème 4: Soit T un opérateur multivoque maximal monotone sur Rn admettant une solution. Alors, tout algorithme parallèle synchrone de Jacobi associé à l'application univoque F = (I + cT )-1 où c > 0 quelconque converge dans Rn vers x* solution de T C’est une application directe du théorème 2 Si F admet un point fixe u et si elle vérifie l’hypothèse (h4) alors l’algorithme parallèle de Jacobi converge dans Rn vers x* point fixe de F
Cas spéciaux On va construire des opérateurs maximaux monotones pour le : calcul du minimum de fonctionnelles calcul du point selle de fonctions selles calcul de solutions des programmes convexes calcul de solutions des problèmes de l’inégalité variationnelle
Cas spéciaux : Minimum de fonctionnelles f fonctionnelle de Rn vers R {+} convexe propre et s.c.i. f est un opérateur maximal monotone sur Rn
Cas spéciaux : Minimum de fonctionnelles f fonctionnelle de Rn vers R {+} convexe propre et s.c.i. Les zéros du sous-différentiel f sont les points de minimum de f 0 f(x0) f(x0) = min f(x) xRn
Cas spéciaux : Minimum de fonctionnelles f fonctionnelle de Rn vers R {+} convexe propre et s.c.i. f est a-fortement convexe (a > 0) f est un opérateur a-fortement monotone
Cas spéciaux : Minimum de fonctionnelles Corollaire 1: (cas asynchrone) f de Rn vers R {+} a-fortement convexe propre et s.c.i. (a > 0). Alors f admet un minimum unique x* Tout algorithme parallèle asynchrone à retards bornés associé à l'application univoque F = (I + cf )-1 où c ≥ converge dans Rn vers x* le point de minimum de f sur Rn Application du théorème 3 à l’opérateur T = f
Cas spéciaux : Minimum de fonctionnelles Corollaire 2: (cas synchrone) f de Rn vers R {+} convexe propre et s.c.i. telle que le problème de minimisation min f(x) admette une solution. xRn Alors Tout algorithme parallèle synchrone de Jacobi associé à l'application univoque F = (I + cf )-1 où c > 0 quelconque converge dans Rn vers un point de minimum de f sur Rn Application du théorème 4 à l’opérateur T = f
Cas spéciaux : Points selle L fonctionnelle de Rn x Rm vers [ ,+] Un point (x*,y*) de Rn x Rm vérifiant L(x*,y) ≤ L(x*,y*) ≤ L(x,y*), (x,y) Rn x Rm est appelé point selle de L L(x*,y*) = min L(x,y*) = max L(x*,y) xRn yRm
Cas spéciaux : Points selle L fonctionnelle de Rn x Rm vers [ ,+] L est convexe-concave si x L(x,y) est convexe y Rm y L(x,y) est concave x Rn L est fonction selle (Rockafellar) L est a-fortement convexe-concave (a > 0) si x L(x,y) est a-fortement convexe y Rm y L(x,y) est a-fortement concave x Rn
Cas spéciaux : Points selle L de Rn x Rm vers [ ,+] fonction selle et propre Si x L(x,y) est s.c.i. sur Rn y Rm y L(x,y) est s.c.s. sur Rm x Rn Alors L est fermée (Rockafellar)
Cas spéciaux : Points selle L fonctionnelle de Rn x Rm vers [ ,+] L(x0 ,y0) = le sous-différentiel de L au point (x0 ,y0) Rn x Rm C’est l’ensemble des (x,y) de Rn x Rm vérifiant L(x0,y’) (y,y’ y0) ≤ L(x0,y0) ≤ L(x’,y0) (x,x’ x0) (x’,y’) Rn x Rm
Cas spéciaux : Points selle L fonctionnelle de Rn x Rm vers [ ,+] Nous associons à la fonctionnelle L l'opérateur multivoque TL défini sur Rn x Rm par TL(x,y) = {(z,t) Rn x Rm : (z, t) L(x,y) } (x,y) Rn x Rm (0,0) TL(x,y) (x,y) est point selle de L Les points selle de L sont les solutions de l’opérateur TL TL est maximal monotone? fortement maximal monotone?
Cas spéciaux : Points selle Proposition (Rockafellar) Si L une fonction selle propre fermée sur Rn x Rm Alors TL est un opérateur maximal monotone sur Rn x Rm
Cas spéciaux : Points selle Lemme: Si L est une fonction a-fortement convexe-concave Alors TL est un opérateur a-fortement monotone
Cas spéciaux : Points selle Corollaire 3: (cas asynchrone) L a-fortement convexe-concave propre et fermée de Rn x Rm vers [ ,+]. Alors L admet un point selle unique (x*,y*) Tout algorithme parallèle asynchrone à retards bornés associé à l'application univoque F = (I + c TL)-1 de Rn x Rm vers Rn x Rm où c ≥ converge vers le point selle (x*,y*) de L Application du théorème 3 à l’opérateur T = TL
Cas spéciaux : Points selle Corollaire 4: (cas synchrone) L fonction selle fermée et propre de Rn x Rm vers [ ,+] admettant un point selle . Alors Tout algorithme parallèle synchrone de Jacobi associé à l'application univoque F = (I + c TL)-1 de Rn x Rm vers Rn x Rm où c > 0 quelconque converge vers un point selle de L Application du théorème 4 à l’opérateur T = TL
Cas spéciaux : Programme convexe Considérons le programme convexe Min f0(x) x C (P) fi(x) ≤ 0 , (1 ≤ i ≤ m) C convexe fermé non vide de Rn fi : C R sont des fonctions (finies) convexes et s.c.i. pour (0 ≤ i ≤ m) Contraintes qualifiées x0 C tel que fi(x0) < 0 , i {1,…, m}
Cas spéciaux : Programme convexe Le Lagrangien associe au problème (P) dans sa forme étendue est la fonctionnelle L définie sur Rn x Rm par m f0(x) + ∑ yi fi (x) si x C et y (R+)m i=1 L(x,y) = si x C et y (R+)m + si x C
Cas spéciaux : Programme convexe Le problème dual associé à (P) Max g0(y) (D) y (R+)m g0 : Rm R { } définie par g0 (y) = Inf L(x,y) xC
Cas spéciaux : Programme convexe Si (x*,y*) est un point selle du lagrangien L sur Rn x Rm , alors x* est une solution optimale du problème primal (P) et y* est une solution optimale du problème dual (D). Inversement Si le problème (P) admet une solution x* et si les contraintes sont qualifiées alors il existe y (R+)m tel que (x*,y*) soit point selle de la fonctionnelle L Nous pouvons alors énoncer :
Cas spéciaux : Programme convexe Corollaire 5: (cas synchrone) Supposons que le programme convexe (P) soit à contraintes qualifiées et admette une solution. Alors Tout algorithme parallèle synchrone de Jacobi associé à l'application univoque F = (I + c TL)-1 de Rn x Rm vers Rn x Rm où c > 0 quelconque converge vers (x*,y*) point selle de L, et donc x* est une solution du primal (P) et y* solution du dual (D). Application du corollaire 4 au lagrangien L
Cas spéciaux : Inégalité variationnelle C convexe fermé non vide de Rn A opérateur maximal monotone sur Rn à domaine C Chercher x* de C tel que y* A x* , (y*, x x*) ≥ 0 , x C Le cône normal de C en x est Nc(x) = { y Rn, (y, x z) ≥ 0 , z C }
Cas spéciaux : Inégalité variationnelle L’opérateur multivoque T défini sur Rn par Ax + Nc(x) si x C Tx = si x C est un opérateur maximal monotone (Rockafellar) Cet opérateur vérifie-t-il les conditions du théorème 3 ?
Cas spéciaux : Inégalité variationnelle Lemme 1: Si A est a-fortement monotone alors T est un opérateur a-fortement monotone
Cas spéciaux : Inégalité variationnelle Lemme 2: Le solutions de l’opérateur T sont exactement les solutions du problème de Inégalité variationnelle
Cas spéciaux : Inégalité variationnelle Corollaire 6: (cas asynchrone) C convexe fermé non vide de Rn et A un opérateur multivoque maximal a-fortement monotone défini sur C (a > 0). Alors Le problème de l’inégalité variationnelle admet une unique solution x* Tout algorithme parallèle asynchrone à retards bornés associé à l'application univoque F = (I + cT )-1 où c ≥ converge dans Rn vers la solution x* du problème de l’inégalité variationnelle Appliquer lemme 1, lemme 2 et théorème 3 à l’opérateur T
Cas spéciaux : Inégalité variationnelle Corollaire 7: (cas synchrone) C convexe fermé non vide de Rn et A un opérateur multivoque maximal monotone défini sur C tel que le problème de l’inégalité variationnelle admette une solution Alors Tout algorithme parallèle synchrone de Jacobi associé à l'application univoque F = (I + cT )-1 où c > 0 quelconque converge vers x* solution du problème de l’inégalité variationnelle Appliquer théorème 4 à l’opérateur T
Conclusion Notre travail Un algorithme parallèle asynchrone convergeant vers un point fixe Concerne le cas non linéaire non-expansif L’hypothèse (h4) est largement vérifiée Applications aux problèmes d’optimisation (non linaire) au problème de l'inégalité variationnelle
Merci de votre attention
Questions Algorithme Implémentable Communications Détection de convergence Procédure d’arrêt
Algorithme : Implémentation Difficile dans le cas général Implémentable dans le cas où T = f Nouvelle méthode (Solodov et Svaiter 2000) Choisir x0 Rn et prendre k = 0 Ayant xk , choisir k > 0 et k [0,1[ et trouver yk Rn et vk Tyk tel que 0 = vk + k (yk xk) + rk où || rk || ≤ k max {|| vk || , k ||yk xk ||} Stop si vk = 0 ou yk = xk Sinon , prendre xk+1 = xk (vk , xk yk ) || vk ||-2 vk prendre k = k+1 et repeter Hybrid Proximal Point algorithm HPPA
Algorithme : Communications Threads ( en anglais) veut dire processus légers ou tâches utilise RMI (Remote Method Invocation ) pour communiquer Threads d’envois : Créés à la demande Appellent la fonction correspondante d’empaquetage des données à envoyer Threads de réceptions: Activées l’arrivée d’un message Appellent la fonction de dépaquetage correspondante lorsqu’un message arrive Lors d’une réception, on réactualise xip+1
Algorithme : Détection de convergence Un processeur centralise les convergences locales de tous les processeurs Ce processeur se comporte de la même manière que tous les autres, mais doit juste effectuer une opération en plus Chaque processeur détermine sa convergence locale : On calcule la différence d’évolution entre 2 itérations On compte le nombre de fois consécutives où cette différence est inférieure à un seuil fixé Si le compteur dépasse un seuil, on considère qu’il y a convergence locale Envoie d’un message de convergence au processeur centralisateur S’il y a divergence après une convergence, envoie d’un message d’annulation de convergence Convergence globale détectée lorsque toutes les convergences locales sont reçues
Algorithme : Procédure d’arrêt Lorsqu’il détecte la convergence globale, le processeur centralisateur envoie un message d’arrêt général Quand les processeurs reçoivent le message d’arrêt, ils quittent la boucle d’itération L’arrêt nécessite la fin de tous les messages en cours
Jace : Présentation Java Asynchronous Computation Environment Environnement de calcul asynchrone Java Conçu et optimisé pour le calcul itératif asynchrone (calcul, communication) Architecture de Jace (trois entités principales) les Tâches le Démon le Spawner (Distributeur de tâches)
Jace : Architecture Les Tâches héritent d'une classe Jace nommée Task proposant les méthodes de communications et de synchronisations
Jace : Architecture Le Démon présent sur chaque machine participant au calcul contient tous les objets nécessaires pour : configurer la machine parallèle router les messages gérer les taches responsable de la synchronisation et de la communication entre les nœuds de calculs (réception et envoie de message) utilise RMI (Remote Method Invocation ) pour communiquer
Jace : Architecture Le Spawner (Distributeur de tâches) se charge de distribuer les tâches sur l'ensemble des processeurs suivant un certain protocole de distribution de tâches instancie à distance une tâche de calcul s'intégrant au démon