architectur parallèle.ppt

163
1 Parallélisme Professeur M. Hicham. MEDROMI

Upload: abdellah-afetasse

Post on 29-Nov-2015

145 views

Category:

Documents


6 download

TRANSCRIPT

  • *

    ParalllismeProfesseur M. Hicham. MEDROMI

  • *Plan

    Machines parallles Systme parallle Architecture Parallle Mini-projets

  • *Menu : plat du jourDfinition du paralllismeConcurrence versus distributionParalllisme dexcutionExemples de systmes distribusModlisation dynamiqueProblmes emblmatiquesDe la concurrenceDe la distributionParalllisme, concurrence et langageSystmes ractifs et lments en Java

  • *Dfinition du ParalllismeEn informatique, on dit que deux instructions, deux actions, deux calculs sont parallles si elles/ils ont lieu (leur excution a lieu) au mme instant

    Notion de simultanit Logique / relNotion de non dpendance

  • *Modle flot de donnes

  • *Trois niveaux de paralllismeParalllisme du monde rel AnalyseParalllisme de conception Concurrence, processusParalllisme dexcutionProcesseurs, circuits, rseaux

  • *Introduction(?) au paralllismeParalllismeutiliser plusieurs ordinateurs ensemble pour rsoudre des problmesplus gros (taille mmoire, espace disque)plus rapidement (puissance CPU)Mot cl : efficacitDiffrents domaines de recherchethoriquesalgorithmiqueordonnancementpratiquessupportsmodlessi on veut de lefficacit les deux sont videmment lies

  • *Environnement logiciel parallleComposants ncessaires pour lexcution dun programme parallleHardwareSystme dexploitationSupport dexcutionCompilateurApplication

  • *Modles de programmation parallleDfinies parle compilateurle support dexcutionButsfacilit de programmationproche du squentielproche dun modle de description dalgorithmes paralllesPRAMBSPefficacit = f(algorithme, compilateur, support, systme, hardware)portabilit = f(support, algorithme)scalabilitobsolescence du matrielutilisation de plusieurs sites pour la mme application (meta-computing)

  • *Les dbuts du paralllismeMultiprogrammationnotion de processussystme Multics (~65)toujours dactualit, au cur des UNIX et de NTProgrammation concurrenteles coroutines (Djikstra, 68)multiprogrammation grain plus finproblmes de synchronisationParalllisme simulpas de machine contenant rellement du paralllisme

  • *Paralllisme matriel : premire poqueProcesseurs vectoriels (Cray, ~1976)circuit spcifiqueoprations arithmtiques lmentaires (+, )donnes manipules : vecteurscalcule n additions en parallle au lieu dunecontient n ALUs au lieu dune avec un seul microcontrleur pour tousTraitement parallle sur des donnesmme opration sur un ensemble de donnesle paralllisme se fait sur les donnes (par opposition aux instructions)Paralllisme de donnesfonctionnement naturellement synchroneClassification traditionnelleSIMD : Single Instruction (flow) Multiple Data

  • *Modle paralllisme de donnesPrincipe algorithmiquedfinir des structures de donnes (souvent) rgulires (vecteurs, matrices)effectuer une suite doprations simples sur ces structuresExempleVecteur a[100];Vecteur b[100];Vecteur c[100];

    for i:= 1 to 100 doparc[i]:=a[i]+b[i];done

  • *Importance de la compilationLe compilateur doit tre intelligentDcoupage de la boucleSi le processeur vectoriel ne sait calculerque 50 additions en parallle

    -> 2 cycles au lieu dun

  • *CaractristiquesModle simple et naturelprogrammation simplepassage direct partir de lalgorithme squentielcompilateur peu compliqu crireefficacit peu prs garantie pour les architectures vectorielles et SIMD en gnralcas particulier : le pipe-line (processeurs super-scalaires)Adapt un certain type dapplicationscalcul sur des structures rguliresapplications scientifiques et certaines simulations

  • *MPLLangage data-paralllepour une machine prcise : Maspar MP-1machine SIMD de 1024 16384 processeursarchitecture : un processeur performant en scalaire qui commande 16384 processeurs scalaires qui font tous la mme chosechaque processeur a une mmoire locale associetopologie des communications : grille 2D torique

  • *Variables paralllesDeux types de variables dans le langagescalaire : rside dans la mmoire du processeur matreparallle : rside dans la mmoire de tous les processeurs esclavesSyntaxe la C

    int i;parallel int a,b,c; // dfinit les variables a,b et c sur tous les processeurs

    i=1; // effectu sur le matre seulementc=a+b; // effectu sur tous les processeurs en mme tempsa[0]=12; // effectu sur le processeur 0 seulement

  • *Communication entre les processeursAccs des cases mmoire distantespar localisation gographique dans les 8 directions possiblesN,S,E,W,NE,NE,SE,SWNW[4].a=12; // accde la valeur de a dun autre processeur

  • *Fonctionnement synchroneChaque instruction est dcode par le matre et excute par tous les processeursmodle fondamentalement synchronepas de conflit daccs des variables possibleComment est fait a[0]=12 ?Chaque processeur a un bit dactivationdit au processeur sil doit excuter linstruction ou pasactivation calcule par le compilateur complexitProgrammation de bas niveauC-like != fortran par exempledcoupage des structures par le programmeurmais compilateur sophistiqu quand mmeParalllisme de donnes sur architecture SIMD

  • *volution architecturaleDbut 90 : SIMD en perte de vitessecomposants spcifiques donc chersidem pour les rseauxdpass en performances pures par des composants standardspetit march donc prix levrapidement obsoltesRseaux locaux standards deviennent performantsFast-Ethernet, Myrinet, etc.vous avez vu a hierLes machines parallles deviennent MIMDprocesseur puissant standard+rseau dinterconnexion rapide

  • *Problmes du data-paralllismeIntelligence du compilateurparalllisation automatique des bouclescalcul des dpendances entre les donnescompliqu, sujet de recherche encore actuelleexploitation correcte des machines mme non SIMDrpartition des donnes sur les processeursproblmes dalignement, de dfaut de cacheGestion des structures de donnes irrgulirestype liste, arbres, toutes les dpendances complexes entre objetsle compilateur ne sen sort plus!Ncessit de langages plus volusHPF ou Fortran 90

  • *HPFExtension avec modification de la norme Fortran-90Dfini en 93But : avoir rapidement des compilateurs pouvant limplanterPurement orients donnes, ne contient plus de primitives de gestion de messages ou de synchroVise lefficacit sur architectures distribues aussiParalllisation non compltement automatiquedirectives fournies par le programmeur pour le placement des donnesmais conserve un modle data-parallle (boucles FORALL)

  • *Le modle HPFModle 4 niveauxObjets HPF normaux (tableau)mapps sur des templates qui reprsentent des groupes dalignementdfinit les contraintes dalignement sur et entre les objetspermet de spcifier aussi la faon de les distribuer sur les processeursces templates sont mapps sur des processeurs virtuels (machine abstraite possdant une topologie), spcification dune distributionles processeurs virtuels sont mapps sur les processeurs physiquesIntuitivementune opration entre deux objets est plus efficace sils sont sur le mme processeurces oprations peuvent tre excutes en parallle si elles peuvent tre ralises sur des processeurs diffrents

  • *Fonctionnement de HPFSpcification de dpendances entre les objetspar le mapping sur les templatespossibilitde lier deux objets pour les aligner de la mme manireles oprations entre objets aligns lidentique sont plus efficacespossibilit de raligner dynamiquement les objetsDistribution des objetsdfinit le mapping des objets sur un ensemble de processeurs abstraitsbut : rapprocher sur la grille des processeurs abstraits les objets qui interagissentdeux possibles : BLOCK (suite dlments contiges) et CYCLIC (pareil mais avec bouclage)Instruction FORALL~= au for parallle mais en plus puissant (description dintervalles,)

  • *Fonctionnement de HPF(2)Expression dindpendancedinstructionspar exemple deux instructions dans une boucleSpcification de fonctions localesne ncessitent pas de communications pour tre excutes -> efficacitRsumonslangage data-// pour architectures SIMD et MIMDalignement/distribution des donnesdirectives daide au compilateurmlange des apports de diffrents langageslargement utilis car disponibilit de compilateurs (Adaptor)

  • *Machine Parallle

  • *Machine ParallleUne machine parallle est essentiellement un ensemble de processeurs qui cooprent et communiquent

  • *ProcesseurUne machine parallle est essentiellement un ensemble de processeurs qui cooprent et communiquent

  • *Type de paralllisme

    On distingue classiquement quatre types principaux de paralllisme (Taxonomie de Tanenbaum):

    SISDSIMDMISDMIMDDe nos jours cette classification peut paratre un peu artificielle car le moindre micro-processeur courant inclut lui-mme plusieurs formes de micro-paralllisme.

  • *Micro-ParalllismePermet nanmoins d'expliquer les bases de l'architectures des ordinateurs, squentiels et parallles. Cette classification est base sur les notions de flot de contrle (deux premires lettres, I voulant dire ``Instruction'') et flot de donnes(deux dernires lettres, D voulant dire ``Data'').

  • *Description des machinesMachine SISDMachine SIMDMachine MISDMachine MIMD

  • *Machine SISDUne machine SISD (Single Instruction Single Data) Cest ce que l'on appelle d'habitude une machine de Von Neuman. Une seule instruction est excute et une seule donne (simple, non-structure) est traite tout instant. Le code suivant,int A[100];...for (i=1;100>i;i++) A[i]=A[i]+A[i+1];s'excute sur une machine squentielle en faisant les additions A[1]+A[2], A[2]+A[3], etc., A[99]+A[100] la suite les unes des autres.

  • *Machine SIMDUne machine SIMD (Single Instruction Multiple Data) peut tre de plusieurs types, parallle ou systolique. En gnral l'excution en parallle de la mme instruction se fait en mme temps sur des processeurs diffrents (paralllisme de donne synchrone). Examinons par exemple le code suivant crit en CM-Fortran sur la Connection Machine-5 avec 32 processeurs,

  • *Machine SIMDUne machine INTEGER I,A(32,1000)CMF$ LAYOUT A(:NEWS,:SERIAL) ... FORALL (I=1:32,J=1:1000) $ A(I:I,J:J)=A(I:I,J:J)+A(I:I,(J+1):(J+1))Chaque processeur i, 1 i 32 a en sa mmoire locale une tranche du tableau A: A(i,1), A(i,2), ..., A(i,1000). Il n'y a pas d'interfrence dans le calcul de la boucle entre les diffrentes tranches: tous les processeurs excutent la mme boucle sur leur propre tranche en mme temps

  • *Machine SIMDRparation d'un tableau sur les processeurs d'une machine SIMD typique

  • *Machine MISDUne machine MISD (Multiple Instruction Single Data) peut excuter plusieurs instructions en mme temps sur la mme donne. Cela peut paratre paradoxal mais cela recouvre en fait un type trs ordinaire de micro-paralllisme dans les micro-processeurs modernes : les processeurs vectoriels et les architectures pipelines.

  • *Machine MISDUn exemple de ``pipelinage'' d'une addition vectorielle est le suivant. Considrons le code:

    FOR i:=1 to n DO R(a+b*i):=A(a'+b'*i)+B(a''+b''*i);

    A, B et R sont placs dans des registres vectoriels qui se remplissent au fur et mesure du calcul. En ce sens, quand le pipeline est rempli, plusieurs instructions sont excutes sur la mme donne

  • *Machine MISD ``

    Temps

    A

    (

    i

    )

    B

    (

    i

    )

    R

    (

    i

    )

    1

    1

    .

    .

    .

    1

    .

    .

    .

    .

    .

    .

    .

    2

    2

    1

    .

    .

    2

    1

    .

    .

    .

    .

    .

    .

    3

    3

    2

    1

    .

    3

    2

    1

    .

    .

    .

    .

    .

    4

    4

    3

    2

    1

    4

    3

    2

    1

    .

    .

    .

    .

    5

    5

    4

    3

    2

    5

    4

    3

    2

    1

    .

    .

    .

    6

    6

    5

    4

    3

    6

    5

    4

    3

    2

    1

    .

    .

    etc.

  • *Machine MIMD

    Le cas des machines MIMD (Multiple Instruction Multiple Data) est le plus intuitif. On a plusieurs types d'architecture possibles :(1) Mmoire partage (Sequent)

    (2) Mmoire locale avec rseau de communication (Transputer,Connection Machine, local, par rseau d'interconnexion), ou systme rparti C'est le cas (2) que l'on va voir plus particulirement avec PVM. On pourra galement simuler le cas (1)

  • *Architecture simplifie d'une machine mmoire partage

  • *Machine MIMD

    Une machine MIMD mmoire partage (2) est principalement constitue de processeurs avec des horloges indpendantes, donc voluant de faon asynchrone, et communiquant en crivant et lisant des valeurs dans une seule et mme mmoire (la mmoire partage).

    Une difficult supplmentaire, que l'on ne dcrira pas plus ici, est que chaque processeur a en gnral au moins un cache de donnes, tous ces caches devant avoir des informations cohrentes aux moments cruciaux.

  • *Modle polydrique: fondements et application la paralllisation de programmes rguliers

  • *PrsentationPlanIntroduction la paralllisation automatiqueModle polydrique: fondementsOrdonnancement de bouclesParalllisation de programmes rguliersApplication: compilation pour FPGA

  • *Plan Introduction la paralllisation automatiqueHistoriqueTypes de machines paralllesModles pour les machines paralllesLangage de programmation parallle Un modle simple: les architectures systoliques

  • *HistoriqueClassification des machines parallles (Flynn)En fonction du contrle de squences dinstrutions Single Instruction Multiple Data : SIMDMultiple Instruction Multiple Data : MIMDEn fonction de lorganisation de la mmoireShared Memory: SMDistributed Memory: DM

  • *HistoriqueClassification des machines parallles En fonction du rseau dinterconnexionrseaux dinterconnexion dynamique pour SM (crossbar switch, rseaux base de bus, interconnection multi-tage)rseaux dinterconnexion statique pour DM (grille, arbre, hypercube) En fonction de lorganisation de la mmoireAutres types: rseaux de neuronnes,processor in memory (circuits reconfigurables)

  • *Tendances

    Chart1

    932511213500

    902351433200

    781982012300

    432182122700

    272432191100

    201962617160

    172182347240

    31772947190

    01343512121

    01613280101

    01753100141

    01573200212

    01183580195

    Single Processor

    SMP

    MPP

    SIMD

    Cluster

    NOW

    Sheet1

    #ListSingle ProcessorSMPMPPSIMDClusterNOW

    Jun-93932511213500

    Nov-93902351433200

    Jun-94781982012300

    Nov-94432182122700

    Jun-95272432191100

    Nov-95201962617160

    Jun-96172182347240

    Nov-9631772947190

    Jun-9701343512121

    Nov-9701613280101

    Jun-9801753100141

    Nov-9801573200212

    Jun-9901183580195

  • *Tendances, suiteGrappes de machines SMPPCs multiprocesseurs (Pentium,Alpha)Nuds de machines parallles (SP-3)Connexions de gros serveurs (Origin2K,SUN E10K).Processeurs du commerce.Logiciels standards performants.Linux, NT.

  • *Ecart Processeur/MmoireProc60%/an.(2X/1.5an)

  • *Hirarchies mmoires profondesContrleBus donnesStockagesecond.(Disque)ProcesseurRegistresMmoireprincipale(DRAM)CacheNiveau2(SRAM)CacheInterne1s10,000,000s (10s ms)100,000 s(.1s ms)Vitesse (ns):10s100s100sGsTaille (octets):KsMsStockagetertiaire(Disque/bande)TsMmoiredistribueMmoire DistanteGrappe10,000,000,000s (10s sec)10,000,000 s(10s ms)

  • *Plan Introduction la paralllisation automatiqueHistoriqueTypes de machines paralllesModles pour les machines paralllesLangage de programmation parallle Un modle simple: les architectures systoliques

  • *Modle P-RAMP processeurs, une mmoire partage (modle SIMD-SM)Les processeurs communiquent travers la mmoire partageChaque opration prend une unit de temps

  • *Modle BSPBSP: bulk synchronous parallelism (modle MIMD-DM)Un ensemble de paires processeurs-mmoiresLexcution consite en succession de super-step spars par des phases de communications (synchronisation)

  • *Modle plus prcisModlisation des cots de communicationcot-envoi(L)=+LModlisation de la hirarchie mmoireModlisation du matriel spcifique de la machineALU spcifiqueregistres

  • *Limites de la modlisationEn gnral, un modle est soit peu raliste, soit trop spcifiqueLa modlisation ne permet pas de se passer dexprimentation pour valuer un programme parallle.Maiselle aide comprendre la structure du calcul parallleelle permet de formaliser la notion de paralllisation

  • *Plan Introduction la paralllisation automatiqueHistoriqueTypes de machines paralllesModles pour les machines paralllesLangage de programmation parallle Un modle simple: les architectures systoliques

  • *Langage de programmation parallleLes langages sont la charnire des modles et des machinesLe langage idal serait:simple programmer (et debugger!)efficaceportable.. Il nexiste pas

  • *Exprimer le paralllismeParalllisme de donnesil exploite la rgularit des donnes et applique en parallle un mme calcul des donnes diffrentesParalllisme de contrleil consiste faire des tches diffrentes simultanmentParalllisme de fluxtechnique du travail la chainechaque donne subit une squence de traitement raliss en mode pipeline.

  • *Programmer les machinesMmoire partagesespace dadressage communmcanisme dexclusion mutuelleMmoire distibuecommunication par passage de messagelibrairie de communication

  • *Les langages data-paralllesFortran 77/90/95 + directivesLutilisateur spcifie une partie du paralllisme et la rpartition des donnesPrsent comme la boite noire pour la paralllisation dapplications Bonnes performances pour les codes rguliersQuelques vraies applications paralllisesBeaucoup de r-criture de codesOutil important pour lavenir du calcul numrique parallle

  • *Programmation data-parallleStyle de programmation caractris par:un flot de contrle unique: un seul programme dfinit les oprations data-parallles,un espace de nommage global: le programmeur voit une seule mmoire,des oprations parallles: le paralllisme dcoule des oprations appliques aux donnes distribues sur les processeurs,des directives de compilation.Les dtails de bas niveau (distribution effective des donnes, communications) sont transfrs du programmeur au compilateur.But : scarter des spcificits de la machine et encourager une diffusion plus large du paralllisme.

  • *Paralllisation dapplications numriquesAlgorithme squentielDistribution de donnesAlgorithme parallleprogramme HPF/OpenMPprogramme F77 + MPEtude perfs + monitoring

  • *High Performance FortranIssu dun forum runissant chercheurs, constructeurs et dveloppeurs dapplications.Bas sur Fortran 90 et destin aux machines MIMD DM.Directives de placement des donnes sur les processeurs.Constructions data-parallles (FORALL) et spcification du paralllisme (INDEPENDENT et PURE).Fonctions intrinsques et bibliothque standard.HPF-2 pour les applications irrgulires.Nombreux compilateurs et outils.Performances moyennes en gnral.

  • *Alignement et distribution

  • *Paralllisme impliciteLangage fonctionnels

    Langages dclaratifs

    Paralllisation de programmes squentiels

  • *Paralllisation automatique: difficultsAnalyse de dpendencesDo i=1,Na=0Do j=1,Na=a+B[i,j]C[i]=aDoAll i=1,Na[i]=0Do j=1,Na[i]=a[i]+B[i,j]C[i]=a[i]

  • *Paralllisation automatique: difficultsPointeurs

    Contrle dynamiqueDo i=1,NA[i]=B[i]=A[C[i]]While C>0 Do.

  • *Paralllisation automatique: difficultsGranularitPartitionnement des calculs en fonctions du rapport de cot calcul/communicationGnration de codeCompilation descommunications

  • *Outils utilisant le modle polydriquePico (HP Palo Alto)Compaan (U. Leiden, Berkeley)MMAlpha (INRIA Rennes)

  • *Compaan

  • *MMAlphaUniformisationDrivation RTLOrdonnancement

  • *Rfrences cours 1Transparent et Exos surWww.ens-lyon.fr/trissetP. Quinton et Y. Robert, Algorithmes et architectures systoliques, Masson, 1989. commence dater, mais la partie algorithmique et les chapitres 11 et 12 sont toujours d'actualit. V. Kumar, A. Grama, A. Gupta et G. Karypis, Introduction to Parallel Computing, Benjamin Cummings, 1994. Bonne introduction gnrale

  • *Plan Introduction la paralllisation automatiqueHistoriqueTypes de machines paralllesModles pour les machines paralllesLangage de programmation parallle Un modle simple: les architectures systoliques

  • *Le modle Open MP

  • *Prsentation de Open MPAPI portable, oriente mmoire partage existe pour C, C++, Fortran 77 et 90existe sur plusieurs architectures (UNIX et NT)Conu pour du paralllisme grain finessentiellement pour les bouclesutilisable aussi pour des algorithmes grain moyenPositionnement

  • *Exemple de boucleAnnotation sur les threads, les objets partags et privsA est partag, I est priv(local chaque thread)programc$omp parallel doc$omp& shared (A) private(I)do I=1,100...enddoc$omp parallelendADoPI=1I=2I=3I=4I=5I=6BarrireThread

  • *Duplication et recopie de variablesRecopie temporaire de variables partages (en C)#pragma omp threadprivate(A)struct Astruct A;#pragma omp parallel copyin(A){ ... }/* rgion parallle suivante */#pragma omp parallel{ ...} A recopi dans tous les threads saufdans le matreRcupre les valeurs de la rgion parallle prcdente

  • *Section critique et partage de variablesBarrire et exclusion mutuelle#pragma omp parallel private(i,j) shared(a,b,n,m,sum)

    for(j=1;j

  • *Comparaison avec les autres modles

    MPI

    Threads

    OpenMP

    Portable

    (

    ~=(

    (

    Scalable

    (

    (

    (

    Performance

    (

    (

    Data-parallel

    (

    (

    Haut niveau

    (

    Proche du squentiel

    (

    Prouvable

    (

  • *ParticularitsOrdonnancement peut tre effectu par le runtimedirective schedule spcifiable pour chaque bouclePossibilit de relaxer les contraintes de symchronisationlaiss des threads continuer leur excution mme si tous nont pas fini la bouclePourquoi utiliser OpenMP ?API portable et standard pour toutes les machines mmoire partageextension de langages existantsfacilit de portage dun code squentielsuffisament gnral pour des applications data-paralllescompilateurs largement disponibles

  • *Conclusion (provisoire) sur le data-//Premier type de paralllisme largement utiliscalculateurs vectorielsarchitecture SIMDAdapt autraitement sur des donnes rguliresarchitectures fortement couplesProgrammation aisemais crire les compilateurs est trs compliquvolution architecturale (importance des caches, des pipe-lines, )constructeurs jugs plus sur la qualit du code produit que sur les caractristiques de la machine (ex : Cray)Largement utilis pour beaucoup de codes scientifiquesmto, aronautique, ...

  • *Paralllisme matriel : seconde poqueFin des annes 80dclin des architectures tout-propritairesexemple type : Cray avec le T3D (processeurs ALPHA, rseau haut dbit propritaire)dclin des architectures SIMD : nouveaux types dapplications parallles envisageablesmergence de nouveaux modles de programmation Orients instructionsTendance actuelleprocesseurs standards + rseau standard (structure de grappes de machines) : pas trop cherarchitectures spcifiques (SGI Origin 2000, T3?) : chers, offrent des fonctionnalits spcifiques tant matrielles que logicielles

  • *Paralllisme dinstructionsParalllisme traditionnelapplication parallle = ensemble de flots dexcution concurrentsprogrammation guide par les instructionsncessit de partager de donnes, ventuellement doprations de synchronisation, structuration en tches /= en blocs de donnes sur lesquels effectuer des oprationsApplication parallle = ensemble de tches partageant des donnes (y accdant en parallle)Deux problmes principauxcomment structurer une application en tches ?comment communiquer pour partager les donnes,se synchroniser ?

  • *Paradigmes de programmationInterface des systmes dexploitation peu adaptegestion des processus : fork, exec, Communications : IPC, sockets, XDR, Diffrentes abstractions fournies par les supports dexcutionActivitsActeur, processus, objet actif, threads, CommunicationEnvoi de messages (synchrone ou asynchrone)Mmoire partage (objet, page, synchronisation, cohrence, )Appel de procdure distance Dfinissent des modles de programmation

  • *Schmas de programmation parallleMatre/Esclaveun coordinateur lance toutes les tches esclavescoordination centralise du travail et des I/OSPMDle mme programme sexcute sur diffrentes parties du mme problmeAsynchrone (MIMD?)ensemble de programmes diffrentschaque programme excute une fonction diffrente de l'applicationSchmas hybridesdata-flow, task farming, Dfinissent des schmas de communication et de synchronisation != modles de programmation

  • *Architectures de type SMP mmoire partage

  • *Caractristiques des SMPProcesseurs partagent physiquement la mmoireaccs au mme busParalllisme matriel au sein du systme ex: ensibull : 8(?) processeursComment exploiter ce paralllisme ?

  • *Exploitation des SMPApplications traditionnellesun processus UNIX par CPUpartage du temps au niveau du processus lourdApplications paralllesparalllisme intra-processusncessit de pouvoir multiprogrammer un processus lourdactivits encapsules dans le mme process UNIXprocessus lgers (threads)

  • *Les processus lgers (threads)Principeprocessus lourd encapsule les donnesprocessus lger contenu dans un processus lourdcontexte dexcution seulement : peu coteuxHistoriqueutilis pour la programmation systmedmonsrecouvrement latence communication/accs disqueplus rcemment utilis pour le calculpermet lexcution efficace de petites tchesexploitation des SMP

  • *Les threads POSIX : PthreadsInterface standard de programmation pour les threadsportabilit des programmes utilisant les threadsFontionnalitscration/destruction de threadssynchronisation (conditions, mutex, smaphores)ordonnancement, prioritssignauxAttributs dun thread POSIXcaractrisation de son tatpile, ordonnancement, donnes prives

  • *Cration dun thread POSIXCre un thread avec les attributs attrexcute la fonction start_routine avec arg comme argumenttid : identifieur du thread cr (quivalent au pid UNIX)

    Fork/joinPrimitives de synchronisationint pthread_create (pthread_t *tid,pthread_attr *attr,void* (*start_routine)(void *),void *arg);

  • *Utilisation des threads pour le calculExemple : produit de matricesun thread = calcul dune caseun thread = calcul dune ligne/colonneGranularit quelconqueimpossible avec des processus lourds : cot excessifefficacit=> cot gestion activits
  • *Utilisation des threads pour exploiter les architectures SMP

  • *PlanLes diffrents types de threadsThreads utilisateursThreads systmeCorrespondance entre les classes de threads dans SolarisOrdonnancement Politique standardPolitique spcifique (priorit, temps rel, )Conclusion

  • *Les processus lgers utilisateursLis lespace mmoire dun processusIndpendant du systme sous-jacentOrdonnanceurSystmeCPUCPUCPU

  • *AvantagesFaible cot des oprationsCration, destructionChangement de contexte lgerPossibilit den avoir un grand nombreSoupleRpartition du temps grable par le programmeur, pas de risque de blocage du systme

  • *InconvnientsPas de paralllisme intra-processusSous exploitation des machines SMPPartage du temps deux niveauxEntre les processus lourdsEntre les processus lgers dun mme processusPas de partage global au prorata du nombre de processus lgersPas de protection mmoire entre les activits

  • *Les processus lgers systmeGrs par le systme dexploitationExistent dans le noyau hors des applications

  • *AvantagesExploitation des SMPInteractions entre les activits applicatives et les activits noyau ?Ordonnancement global de toutes les activits Prise en compte par le systmeRpartition quitable (?) entre les utilisateurs au prorata de leurs activitsMcanisme de protection entre les activits

  • *InconvnientsGestion coteusePassage par le noyau = surcot importantMedium-weight threadsPlusieurs activits accdent au noyau simultanmentRentrance obligatoire du noyauOrdonnancement non contrlable par le programmeur

  • *Historique de SOLARISAnnes 80SunOS 4 (Solaris 1) : Noyau monolithique non rentrant de la famille BSDBibliothque de threads utilisateurs LWP au standard POSIXRcriture complte dbut des annes 90Solaris 2, threads systme, standard SysV, rentrant => Support des SMP

  • *Les threads de SolarisDeux types de threadsSystme : propres au noyau, scheduls par lui sur les processeurs => entits dexcutionUtilisateurs : standard POSIX, propre lespace mmoire dun processus => contexte dexcution (pile)Entits diffrentes de nature distincteComment les faire correspondre ?

  • *InteractionNotion de processeur virtuel (LWP)Interface entre les user et les kernel threadsIls sont associs aux processus lourdsLe nombre de LWPs est indpendant du nombre de threads utilisateurs du processusAu moins 1 LWP par processusAssociation possible entre threads utilisateurs et LWP

  • *ExempleSystmeCPUCPUCPUCPUCPU

  • *Utilisation des threadsUn paramtre lappel de pthread_create choisit entre la cration dun LWP ou dun thread userset_concurrency fixe le nombre de LWPs du processusQuand tous les LWPs dun processus sont bloqus, le systme en cre un dautoritLe noyau schedule les LWPs et ses threads propres sur les processeurs

  • *CaractristiquesConservation dune interface applicative portable (POSIX)Efficacit des threadsCration/destructionSynchronisationMapping sur les threads noyauxIndpendants des threads users

  • *PerformancesTemps de cration dun thread(Ultra SPARC 1, Solaris 2.5)

    Micro secondes

    Ratio

    Thread non lie

    50

    1

    Thread lie

    350

    6.7

    Fork()

    1700

    32.7

  • *Performances (2)Temps de synchronisation de threads(Ultra SPARC 1, Solaris 2.5)

    Micro secondes

    Ratio

    Threads non lies

    60

    1

    Threads lies

    360

    6

    Entre processus

    200

    3.3

  • *OrdonnancementOrdonnancement deux niveauxThreads sur les LWPsLWPs sur les processeursPolitique standard : partage du tempsRpartition homogne entre les LWPs (modulo les priorits)Rpartition entre les utilisateurs

  • *Classes dordonnanceurPossibilit de choisir un type dordonnancement par LWPTime-Sharing : priorit = pourcentage de temps processeur alloueReal-Time : priorit = ordre dexcutionLWP schedul par le noyauNouvelle versionRpartition entre les utilisateurs priment

  • *Architecture distribueArchitectures SMPlimites en taillemaximum : une centainespcialiseslies des constructeurs : coteuseDveloppement des rseauxlocaux : Fast-Ethernet, Myrinet, grande chelle : internetprix baissent, dbits augmententUtilisation darchitectures distribuespetite chelle (une salle, un btiment)grande chelle (pays, monde) : mtacomputingNouveau modle de programmation

  • *Modles bass sur lenvoi de messages

  • *Conclusion sur le passage de messagesModle simpleefficace sur tout rseau car proche du matrielabstractions manipules de bas niveauassembleur de la programmation parallleAdapt pour des schmas de programmation simplesmatre/esclave de baseSPMD avec protocole de partage rudimentaire (centralise)Inadapt pour des schmas compliqusalgorithmique distribue complexedebugage compliqu (interblocage, non dterminisme)rsultatet performances!

  • *Threads et distributionComment utiliser les threads dans un contexte distribu?Activits de faible granularitSMP en distriburecouvrement calcul/communicationDeux approchesenvoi de messagesles threads communiquent directement entre euxproblme de la dsignationalgorithmique distribue compliqueappel de procdure distanceidem au RPC (Remote Procedure Call)demande dexcution dun service distantcration dun processus pour excuter lappel la sauce JAVA : RMI

  • *Modles bass sur le RPC

  • *Pourquoi le RPC ?Constatpossibilit de dcomposer une application en tches indpendantes (processus)passage de donnes au dbut de lexcution, collecte des rsultats la fincomportement typique dun RPCMais les tches sont souvent de faible duresi ce sont des processus Unixcot gestion (cration, destruction, ordonnancement) > cot du travailSolutionles regrouper on retombe sur un systme passage de messagesutiliser des processus peu coteuxLes Processus lgers (threads)

  • *Comparaison avec les autres modles

    MPI

    Threads

    OpenMP

    Portable

    (

    ~=(

    (

    Scalable

    (

    (

    (

    Performance

    (

    (

    Data-parallel

    (

    (

    Haut niveau

    (

    Proche du squentiel

    (

    Prouvable

    (

  • *ConclusionBut de la programmation parallleefficacitDiffrents paramtres entrent en jeualgorithme paralllemodle de programmationperformances du support dexcutionquilibrage de charge, ordonnancementModles mmoire partagefacile utiliserperformances pas toujours au rendez-vous (sauf matriel spcifique)Modles passage de messageperformant sur architectures traditionnellecompliqu utiliser (peu naturel pour un programmeur)

  • *Solution ?Modle mulant une mmoire partagedcomposition en tches (processus)chaque tche accde des variables partagesliste des variablestype daccs (lecture, criture)les variables dfinissent des dpendances entre les tchesconstruction dun graphe de dpendancesutilisation de ce graphe pour dcider qui doit possder la variableCaractristiquesprogrammation facilite (proche du squentiel)minimisation des communications efficacit en rseaux et en SMP Athapascan-1

  • *Modliser le monde relLe monde est fait dacteurs ou dAgentLe monde est le lieu :dvnements (quelque chose se produit une date donne, sans dure)Lutilisateur dcroche sont tlphone.Le cours commenceDactivits (phnomnes continus)La sirne hurle La rivire couleLe fichier se charge

  • *Interaction monde rel systmeLes acteurs

    Le monde rel est fait dAgents particuliers que lon appelle acteursLe systme, que lon peut dcomposer sous forme dAgents, interagit avec les acteurs du monde relVanne

  • *Paralllisme de conceptionLes agents du systmes ont a priori une vie indpendanteCertains sont actifs, rpondent des vnements de lenvironnementCertains ne font que rpondre des sollicitations internes, lappelant attendant la rponse. Squentialit de la collaboration

  • *Paralllisme matriel - Paralllisme dexcutionDistributionPlusieurs machines ; plusieurs processeursPour des raisons de performancePour ajouter de la redondance (tolrance aux fautes)Pour tenir compte du caractre rparti de lapplication, des utilisateurs

  • *Distribution : exemple de dploiement

  • *Systmes distribus : exemplesRseau de stations de travailInternetIntranetUne voiture

  • *Systme distribu :

  • *Conception darchitecture : distribution (environnement ferm)Distribution physiqueMultiplexage automobile

    Isolation des fonctionsDiagnosticFlexibilit / modularit? Baisser les cots ?Imaages extraites de : System Level Design For Real Time ApplicationsA. Ferrari http://sancy.ensieta.fr/mda/ecoleMDA2002/presentations/Ferrari-RTSS-AF-4.pdf

  • *Conception darchitecture : distribution (environnement ferm)Imaages extraites de : System Level Design For Real Time ApplicationsA. Ferrari http://sancy.ensieta.fr/mda/ecoleMDA2002/presentations/Ferrari-RTSS-AF-4.pdf

  • *Centralized vs. Distributed Computing

  • *Paralllisme matriel - Paralllisme dexcutionConcurrenceParalllisme interne aux processeurs, aux machines2 ou plusieurs actions sont concurrentes si elles peuvent sexcuter simultanment

  • *Concurrence : exemple de dploiement

  • *Modle de conception modle dexcution Approche Compilation. Le paralllisme peut tre extrait par des outils informatique (parallliseurs, vectoriseurs, outils de synthse de circuits) partir dune description mathmatique dun problme ou partir dun programme squentiel.Approche Machine virtuelle. Le programmeur dispose du concept de concurrence et programme avec lhypothse dune machine virtuelle paralllisme infini. Des mcanismes lexcution sassure de lexcution du programme sur les ressources matrielles disponibles.

  • *Un modle en couches (Yet Another)Squentiel (jetons)Parallle choix-(rseau)Squentiel (bus, tampon de la carte rseau)Parallle choix-(API OS threads)Squentiel (OS internal)Parallle choix-(multiprocesseur) ????

  • *Menu : plat du jourDfinition du paralllismeConcurrence versus distributionParalllisme dexcutionExemples de systmes distribusModlisation dynamiqueProblmes emblmatiquesDe la concurrenceDe la distributionParalllisme, concurrence et langageSystmes ractifs et lments en Java

  • *Les trois composantes dune modlisationModle temporelModle FonctionnelModle structurel (agent)Que fait le systme?Squencement des actionsdans le monde rel/ le systme.Quels objets constituent le monde rel/le systme?

  • *Modlisation dynamique du systmeDcrit le comportement des agents et leur volution dans le temps

    Modle dynamique du systme identifie les diffrents vnements venant du monde externe et montre les enchanements dans le systme que provoquent ces vnements externesUMLDiagrammes dtat (au niveau dun objet)Diagrammes de squence ou collaboration (collaboration entre agentsDiagrammes dactivit

  • *Transitions dtatTransition provoque par un vnementNa pas de dure (au niveau analyse ou conception)Dclenche traitementDure dun tat

  • *Diagramme de squence : appel tlphonique

  • *Diagramme de squence : raccrocher

  • *Communication entre activitsDlgation Synchrone Appel de procdureAppel de procdure/ mthode distant RPC/RMI

    Message Synchrone (attente de lmetteur par une sorte daccus de rception)Asynchrone (lmetteur ne fait que dposer le message) Dsignation directe ou indirecte

  • *Attention :1) Communication par messages nimplique pas rseau.2) Rseau nimplique pas communication par messages. Rseau avec des messagesParadigme par messagesMmoire partageParadigme variables partagesTRANSPARENCE

  • *Menu : plat du jourDfinition du paralllismeConcurrence versus distributionParalllisme dexcutionExemples de systmes distribusModlisation dynamiqueProblmes emblmatiquesDe la concurrenceDe la distributionParalllisme, concurrence et langageSystmes ractifs et lments en Java

  • *Concurrence et distribution : les similitudesParalllisme

    Synchronisation

    Communication entre activits

  • *Concurrence : quelques problmes spcifiquesPartage de donnesAccs exclusif : exclusion mutuelleExemple plus loin

    quit - vivacitTous les processus auront finalement accs la ressource dsire (processeur, mmoire, imprimante )

  • *Distribution : quelques problmes spcifiquesPartage de linformationMise en commun de linformationCohrenceCommunication par message

  • *Distribu : communication par messagesLes messages peuvent se perdre, se dupliquer, saltrer On ne sait pas faire la diffrence entre un rseau en panne et un rseau lent Si je ne reois pas un message, cela peut vouloir dire :Que le site metteur est en panne, que le rseau est en panneQue le site metteur ou le rseau est surchargQue le message est perdu

    Quid de ltat global, dune heure globale ?

    Exemple le problme des 2 armes encerclant Napoleon (modle asynchrone)

  • *Un problme du distribu : le dsquencementdposer (C1, 8) ;retirer (C1, 7) ;clientBanqueSolution : accus de rception

  • *Diffusion atomique. Cohrence de cachesVariable/objet partag 3ABCD

  • *Diffusion atomique. Cohrence de cachesVariable/objet partag 43344ABCD

  • *Menu : plat du jourDfinition du paralllismeConcurrence versus distributionParalllisme dexcutionExemples de systmes distribusModlisation dynamiqueProblmes emblmatiquesDe la concurrenceDe la distributionParalllisme, concurrence et langageSystmes ractifs et lments en Java

  • *Paralllisme, concurrence et langage Langage squentiel (Basic, C, Pascal, C++) et utilisation de primitives de bas niveau d'un noyau ou excutif (API : Interface de Programmation dApplication)

    Langage parallle (Ada, Java, , VHDL) comportant directement le concept de processus / thread/ tches et les outils dexclusion mutuelle, de synchronisation et de communication

  • *Langage de haut niveauProgramme crit dans un langage de haut niveau (concept de processus, exclusion mutuelle, synchronisation)

    Compilation

    Code contenant des appels systmes de bas niveau

    JavaAda

  • *Linstruction concurrenteCONC Inst1 || Inst2 || Inst3 END CONCint x = ;int y = ;int min, max, produit ;CONCif (x
  • *Graphe de linstructionx=0;y=0;x=x+1;y=y+1;z=x+y;

  • *abcijMultiplication de deux matrices carrs

  • *Multiplication de matricesfor (int i=0; i < n; i++) conc for (int j=0; j < n ; j++) conc { double somme = 0.0; for (int k =0, k < n, k++) somme = a[i,k] * b[k,j] + somme ; c[i,j] := somme; }

  • *Un modle dexcution concurrent :Processus et threadsModle dexcutionFlot squentiel dexcution dinstructionsProcessus : zone mmoire protge Thread : processus lger au sein dun processus Flot squentielPartage mmoireThreads Java, thread utilisateurs POSIX, threads noyaux, lightweight process

  • *Threads JavaSorte de processus, cest dire un simple flot squentiel dexcutions dinstructionsCaractris par Un corps (body) : mthode run dun agentDes tats (state)Une priorit (priority)ProcessusThreads

  • *Process State Transition Diagram

  • *Processus JavaIl y a trois types de programmes Java : applications, applets et servlets, tous crits en tant que classes.Une application Java a une mthode main,et est excute comme un processus indpendant.Une applet ne possde pas de mthode main, et est excute au travers dun navigateur ou du programme appletviewer.Une servlet ne possde pas de mthode main, et est excute dans le contexte dun serveur web. Un programme Java est compil en bytecode, un code objet universel. Quand il est excut, le bytecode est interprt par une Machine Virtuelle Java Machine (JVM).

  • *Trois types de programmes JavaApplicationsun programme dont le byte code peut tourner sur nimporte quel systme qui possde une Machine Virtuelle Java (JVM). Une application peut tre standalone (monolithique) ou distribue (si il interagit avec dautres processus).AppletsUn programme dont le byte code est tlcharq dune machine distante et qui sexcute dans la Machine Virtuelle du navigateur.ServletsUn programme dont le byte code rside sur une machine distante et est excut sur requte dun client HTTP (un navigateur ?).

  • *Trois types de programmes Java

  • *Crer des threads en Java2 faonsPar hritage de la classe Thread

    Par implmentation de linterface Runnable

  • *Interface Runnable

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme On voit que derrire cette dfinition, il y a une notion de simultanit (au mme instant). De faon moins vidente, Il y a aussi une notion d'indpendance entre actions, instructions ou calculs. 2 calculs A et B sont dpendants 2 2 ssi le rsultat de B ne dpend pas du rsultat de A et vice versa. Ils se passent des choses qui nont rien voir les unes avec les autres. A fortiori, on sent que la dpendance nuit au paralllisme. Dpendance implique attente, synchronisation ou risque dincohrence, ce que lon appelle le non dterminisme.

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Ce premier modle, dit modle de flot de donnes, va nous permettre dintroduire ces notions de paralllisme et de non dpendance. Nous avons faire ici un graphe orient dont les nuds sont des calculs. Un calcul produit un ou plusieurs rsultats (arc sortants) partir dune ou plusieurs entres (arc entrants). Un arc entre 2 nuds A et B implique une dpendance entre 2 calculs. Cette relation est transitive. Et fortiori, deux calculs (deux nuds) sont non dpendants sil ny a pas de chemins entre ces nuds. Par exemple, T4 et T3 sont non dpendants. Ces deux calculs peuvent sexcuter (avoir lieu) au mme moment (simultanit). Mais rien noblige ce quils aient lieu au mme moment. Lun peut avoir lieu avant lautre. En fait, cette notion de non dpendance entre calculs correspond la notion de concurrence (une possibilit et non une obligation de calculs simultans).En fait, sur ce modle dit de donne, on peut appliquer diffrents mcanismes de contrle (diffrents mode dexcution).

    Le premier mode sappelle data driven (dirige par les donnes). Ds quune donne est disponible (un fait dans les systmes experts), on effectue tous les calculs (dductions) possibles. La donne en entre de T1 est disponible, on excute T1, puis on peut excuter T2 et T6, puis on peut excuter T7. Le degr de paralllisme effectif est de 2. Au plus, on a pu excuter 2 calculs simultans.Le second mode sappelle demand driven (dirig par le rsultat). On a besoin du rsultat T9, on en dduit que lon a besoin du rsultat de T4. On en dduit que lon a besoin de T0 et de T2, on en dduit que lon a besoin de T1. Le degr de paralllisme effectif a t de 2 (T0 et T2). Un mode compil. En fonction du degr de paralllisme effectif possible ( on dispose dune machine ne pouvant excuter plus de 2 calculs simultans), on essaye de minimiser le temps complet de calculs.

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Nous avons vu que le paralllisme peut exister au niveau matriel pour diffrentes raisons. cest le paralllisme dexcution.

    Il y a aussi le paralllisme de conception qui peut permettre de dexprimer du paralllisme dans la solution dun problme (on pense alors implmentation et mise en oeuvre).

    Le paralllisme de conception peut aussi tre le reflet du paralllisme du mode rel que lon veut simuler, ou avec qui on veut interagir vers un systme informatique construire (cest ce que le terme anglais embedded system traduit, un systme imbriqu dans le monde rel).

    Le monde rel est lui compos dacteurs, capables dactivit propre. En 1ere anne (programmation objet et modlisation objet - UML), on vous a dit que le monde rel tait form dobjets. Un objet avait un petit ct passif (des donnes et des mthodes appellables de lextrieur). Un acteur a son propre moteur qui gnre des vnements et dcleche des activits.

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme 1.MatParser. MatParser is a sequential to parallel compiler. It extracts all available parallelism present in a Matlab description. The Matlab however needs to be confined to a particular type called Nested Loop Programs. MatParser uses a very advance parametric integer programming (PIP) technique to find all available parallelism in terms of the parameters of the original program. 2.DgParser DgParser converts a single assignment program, generated by MatParser, into a Polyhedral Reduced Dependence Graph (PRDG) representation. A PRDG representation is much more amenable to mathematical manipulation. 3.Panda. Panda transforms the PRDG description of an algorithm into a network of parallel running Processes, the desired Kahn Process Network. This tool uses the Polylib library extensively. Using Polylib, Panda can generate Ehrhart polynomials that give a symbolic expression for the number of integer points available in arbitrary polyhedra. The conversion from the PRDG to a Process Network happens in three steps; domain scanning, domain reconstruction and linearization.

    The process networks that are being created by Compaan need to be made accessible in some kind, such that it can be simulated andanalyzed. We use the Ptolemy II framework, developed at UC Berkeley. We make a process network available in the PN-domain. Compaangenerates the network description in MoML, which is a modeling markup language based on XML used in Ptolemy II for specifyinginterconnections of parameterized components. The process generation step in this case, generates the Ptolemy II actors in thePN-domain. A MoML description can be executed as an application using a command-line interface or as a visual rendition in the PtolemyII block diagram editor Vergil. Two examples will show screen dumps of PN networks in Ptolemy II.

    Vergil screen dump of the process network of the QR algorithm. Vergil screen dumps of the process network of the Faddeev algorithm.

    The Ptolemy II framework enables us to combine the derived process network descriptions with predefined actors like sources to readMatrices and sinks to read and visualize Matrices. It also let us combine process networks with other domains, enabling the descriptionand simulation of more complex systems.

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Le flot de conception avec MMAlpha est dcompos en trois grande phase, ine phase duniformisation une phase dordonnancement et une phase de drivation dune spcification de niveau transfert de registre. A partir dun programme Alpha tel que celui que je vous ai prsent, on gnre une description du circuit ralisant le traitement en VHDL synthtisable. On peut ensuite finir la conception grce aux outils commerciaux pour une cible VLSI ou FPGA Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Le paralllisme existe au niveau du matriel. Cest le paralllisme dexcution.. Vous avez certainement entendu parler de calculateurs ou de machines parallles, de machines multi-processeurs, voir de clusters de machines. Une machine peut possder plusieurs processeurs capables chacun de dcoder et dexcuter des instructions. Le paralllisme dexcution peut exister pour diffrentes raisons :pour des raisons de performance (cest le domaine du calcul parallle, de lalgorithmique parallle). pour des raisons de tolrance aux fautespour tenir compte du caractre rparti des applications, des utilisateurs. Dans le cadre dun systme dinformation dune banque, on peut avoir intrt reporter certains traitements prs des utilisateurs (une succursale importante en Espagne, en Allemagne) pour mimiter le traffic rseau. On parlera alors de calcul, dalgorithmique, dapplications rpaties ou distribues. Ces deux adjectifs ayant un sens un peu diffrent en informatique, mais cel dpasse lobjectif de ce module.

    A lintrieur mme des processeurs, il y a aussi du paralllisme grain plus fin. Vous aurez loccasion daborder le domaine des circuits numriques et de leur conception. On vous montrera comme on peut utiliser diffrentes formes de paralllisme pour acclrer les calculs (additionneur ou multiplicateur rapide, dcodage et excution dinstruction).

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme En informatique on manipule des modles, on effectue des traductions/transformations (cest ce quon appelle la compilation) et on ralise des machines/systmes qui excutent (systmes dexploitation, machines matrielles).. Le point dpart, cest le formalisme dans le quel on exprime un problme (voire, et cest moins bien davoir faire cel , une solution)

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme On tombe ici sur un schma qui vous dj t prsente dans la formation sur les mthodes danalyse et de conception, et en particulier dans un cours sur le formalisme UML.Les deux dimensions les plus imprtantes sont le modle structurel et le modle dynanique.

    Module Systme Distribu et Paralllisme Module Systme Distribu et Paralllisme Dans dautres champs applicatifs (pilotage de procds industriels, systmes de tlcommunication, ...), la dimension dynamique prend une importance plus grande.

    Module Systme Distribu et Paralllisme