AHA Algorithmes Hybrides et Adaptatifs MOAIS / ID-IMAG GILCO LMC-IMAG ARENAIRE MOVI Algorithmique, programmation parallèle, ordonnancement Optimisation combinatoire: gestion production, transport Algorithmique calcul exact Algorithmique calcul fiable Vision et interaction, reconstruction 3D Adaptabilité Les données varient Les ressources varient 7 3 6 0 1 8 0 0 5 Application Nécessité d’adaptation pour améliorer la performance Adaptabilité Les données varient Les ressources varient 7 3 6 0 1 8 0 0 5 Mesures sur les ressources Mesures sur les données Adaptations Ordonnancement • planification (scheduling) volume calculs / hétérogénéité • redistribution (load-balancing) Choix algorithme • séquentiels/parallèle(s) • approché/exact • en mémoire / out of core Calibrage • pré-paramétrage taille de blocs / cache choix d’instructions • gestion de priorités Objectif de AHA : vision intégrée de l’adaptation Approche algorithmique : combinaison auto-adaptative d’algorithmes avec comportement global justifié d’un point de vue théorique Contexte applicatif – Calcul fiable (LMC, ARENAIRE) : FFLAS (exact), MPIF (intervalles) => Adaptation : ressources: hiérarchie mémoire, unités de calcul (flottantes / entiéres), hybridation arithmétique approchée / intervalles / exacte utilisés par LinBox (www.linalg.org) – Vision artificielle (MOVI) : reconstruction 3D multi-caméras Adaptation : ressources hétérogènes (mono-pro / bipro) niveau de détail Grimage (MOVI, MOAIS) – Optimisation combinatoire (GILCO) : conception de réseaux pour le transport => Adaptation : ressources disponibles sur une grille hybridation méthodes exactes / méthodes approchées Verrou scientifique • Existant : Algorithmes qui intègrent une forme d’adaptabilité restreinte • Verrou : comment construire une combinaison d’algorithmes qui s’adapte automatiquement à l’ensemble du contexte d’exécution ? • Clef : trouver la combinaison qui permet de garantir la meilleure performance globale : – technique algorithmique classique en parallélisme « Cascading Divide&Conquer » (1991) • Aller plus loin : « poly-algorithme » Approche scientifique de AHA • • Problème à résoudre : f Plusieurs algorithmes (adaptifs) possibles: algo_f1, algo_f2(taille_bloc), … algo_fk • Chaque algorithme algo_fk est récursif : Adaptation choix de algo_fj pour chaque appel à f algo_fi ( n, … ) { …. f ( n - 1, … ) ; …. f ( n / 2, … ) ; … } // appels à des // // sous-problèmes • Auto-adaptation : le calcul progresse tout en permettant de remettre en cause des choix non pertinents. • Maîtriser le surcoût dû au choix (Work-first principle) Un exemple : calcul des préfixes • Entrées : P-1, a0, an-1 • Sorties : P-1*a0, P-1*a0*a1, …, P-1*a0*a1*…*an-1 • Problèmes d’adaptation sur deux machines M1 et M2 : – Algorithme séquentiel M1, M2 / Algorithme parallèle M1, M1+M2, … Tseq = n / T = log(n) mais T1 > 1.5 n – Taille de blocs : dépend machine – Adaptation aux données: opération * de coût variable – Contrainte de temps sur les résultats : * à précision adaptable • Comment peut-on les résoudre par combinaison récursive – auto-calibration à l’installation : taille de blocs; pré-distribution des données – Adaptation inactivité aux ressources M1 bloc Pm-1 = Préfixe(P-1, a0, am-1) Préfixe(Pm-1*Ru-1, au, an-1) M2 bloc Ru-1 = Préfixe(1, am, au-1) Prédistribution Exécution séquentielle par défaut pour chaque algorithme bloc M1 Pm-1 = Préfixe(P-1, a0, am-1) Préfixe(Pm-1*Ru-1, au, an-1) M2 Ru-1 = Préfixe(1, am, au-1) Algorithme auto-adaptatif : s’adapte au contexte (données+machine)) T = n + log(n) en pire cas, donc proche du temps séquentiel T = log(n) en meilleur cas ; 0.75n sur deux machines idéales Dans tous les cas, activité utile des ressources Conclusion • Approche algorithmique de l'adaptabilité • Clef pour l’exploitation de ressources mutualisées • Forte composante théorique avec validation expérimentale pour relever des défis applicatifs Questions ? Organisation de AHA • 1 fourniture transversale : AdSynth Description générique d’un algorithme adaptatif – Synthèse théorique des algorithmes adaptatifs / hybrides • Analyse, classification, complexité • Spécification d’un schéma générique – Défi : efficacité de l'adaptabilité sur des exemples simples – Validation : Plateforme d’expérimentation • Plateformes disponibles: serveurs(bi-procs), clusters (grimage, icluster2), grilles (ciment, grid5000) • Pas de multi-processeurs (bi-processeurs insuffisants) : – SMP = premier cadre d’utilisation: essentiel pour transférer la technologie – Valider l’approche : reproductibilité des expérimentations participation à l’acquisition d’un SMP (quadri-processeurs au moins) • 3 fournitures dans chaque domaine applicatif – Calcul fiable adaptatif – Optimisation combinatoire – Reconstruction 3D Justifications • Technologique – Disponibilité des architectures fédératives • Grimage, Ciment, … Grid’5000 – Visibilité du pôle Grenoblois sur ces plateformes – Fédérer les développements logiciels [ROXANE] • Vision intégrée de l’adptabilité • Politique – Concrétiser les relations existantes autour d’une problématique émergente: les algorithmes adaptatifs • Algorithmique LMC, ARENAIRE, MOAIS, GILCO • Grimage : MOVI / MOAIS – Pas de moyens pour de gros clusters : on doit exploiter des ressources hétérogènes, non-uniformes (ex: CERN) • Sociétale : – Indirecte : à travers les défis applicatifs : • Reconstruction 3D temps réel : environnements de travail collaboratif • Optimisation : gestion de production, stockage, transport – Adaptabilité = clef pour la mutualisation de ressources sinon vacantes donc polluantes Contexte scientifique (1/2) • Mécanismes d’adaptation exploités effectivement et prouvés – Atlas [2001] bibliothèque algèbre linéaire dense (FFLAS) • Choix entre algorithmes par bloc ou scalaire ? • Auto-calibration de la taille des blocs à l’installation sur la machine – FFTW (1998, … ) = algorithme récursif adaptatif • Choix de la meilleure découpe possible à chaque appel récursif ? • Pré-calcul de la découpe optimale pour la taille n du vecteur sur la machine – Cilk (1998, …) Athapascan (2000, …) : parallélisme récursif • Choix entre exécution parallèle ou séquentielle pour chaque appel récursif ? • « Work-first principle » : Exécution séquentielle optimisée sauf si inactivité Contexte scientifique (2/2) • Résultats théoriques récents : combinaison d’algorithmes avec justification théorique – Tâches moldables : Ordonnancement bi-critère avec garantie [Trystram&al 2004] • Combinaison récursive alternatiive d’approximation pour chaque critère • Auto-adaptation avec performance garantie pour chaque critère – Algorithmes « Cache-Oblivious » [Bender&al 2004] • Découpe récursive par bloc qui minimise les défauts de page • Auto-adaptation à la hiérarchie mémoire (B-tree) – Algorithmes « Processor-Oblivious » [Roch&al 2005] • Combinaison récursive de 2 algorithmes séquentiel et parallèle • Auto-adaptation à l’inactivité des ressources Collaborations • LinBox (UD, NCSU, UWO) • Transports : A.Barra, R.Balassiano (UFRJ/PUC, Rio), F.Loureiro (UF de Ceara, Fortaleza) • Reconstruction 3D / Grimage : MOVI / Brown university • Algorithmes « oblivious », adaptatifs : – M. Bender Stony Brook – C. Leiserson MIT (AtomicCilk) Questions ? Contexte technologique • Disponibilité effective d’architectures agglomérant des ressources hétérogènes, non-uniformes – Machines (hiérarchie mémoire, SMP UMA/NUMA) – Clusters : nœuds de calcul (x86, IA64, PowerPC,…) , I/O (caméras, projecteurs, …) – Grille : • locale [CIMENT] • nationale [Grid5000] Bilan financier Approche scientifique (1/4) • Description générique d’un algorithme adaptatif – Synthèse théorique des algorithmes adaptatifs / hybrides • Analyse, classification, complexité • Plateforme d’expérimentation – Machine SMP quadri-processeurs – Modèles de perturbation / Reproductibilité • Défi: – rendre, grâce à l’adaptabilité, le calcul sur processeurs non uniformes aussi efficace que sur processeur uniforme • Fourniture AdSynth: Investissement 8k € / Fnct 6k € / Missions 12 k € = 26k € Approche scientifique (2/4) • Calcul fiable adaptatif – Calcul exact d’un signe (arithmétique exacte/flottante/intervalles) – Existant : FFLAS / MPFI • – Adaptabilité : • • • Exploitation de ressources parallèles Hybridation arithmétique exacte / intervalles/ flottante – Calcul flottant avec garantie d’erreur ou d’exactitude : » Calcul exact d’un signe » Résolution de système par pré-conditionnement flottant – (arithmétique exacte/flottante/intervalles) Défi: – • Utilisant Atlas / BLAS (calculs flottants avec garantie) Rendre le calcul exact aussi efficace que le numérique Fourniture AdCalc: Investissement 8k € / Fnct 6k € / Missions 6 k € = 20k € Approche scientifique (3/4) • Optimisation combinatoire adaptative: problème de transport à Fortalerza, Brésil Critères: compromis entre qualité de services clients (temps de transport,fréquence des bus, # de transferts, % de satisfaction) et coûts de l’opérateur de transport (couverture, # de lignes, # de bus, # de conducteurs) • Adaptabilité : parallélisme adaptatif + méthodes hybrides (approchées-exactes) • Méthode exacte (PLNE+CPLEX) • Méthodes approchées (Recherche Tabou) solutions de meilleure qualité • Défi: – • Transport urbain avec #villes = 1OOO Fourniture AdOpt: Investissement 3k € / Vacations 10k € / Missions 5k € = 18k € Approche scientifique (4/4) • Reconstruction 3D multi-caméras temps réel • 6 caméras Adaptabilité : en fonction des ressources: • • • • 25 caméras Changement de contexte (arrivée de nouvelle personne, …) : niveau de détail (oct-tree, … ), redéploiement Ajout/retrait/ déplacement de quelques caméras : auto-calibration dynamique, … Défi: – 12 caméras Précision, fluidité et latence (interaction mondes réel / virtuel) Fourniture AdOpt: Vacations 9k € / Missions 6k € = 15k €