Techniques d ordonnancement pour les SoC

Dimension: px
Commencer à balayer dès la page:

Download "Techniques d ordonnancement pour les SoC"

Transcription

1 Techniques d ordonnancement pour les SoC Pierre Boulet équipe WEST Ordonnancement DEA informatique Lille p. 1/104

2 Plan Ordonnancement de tâches Placement sur SoC Ordonnancement de nids de boucles Cas du traitement de signal systématique Ordonnancement DEA informatique Lille p. 2/104

3 Ordonnancement de tâches Ordonnancement DEA informatique Lille p. 3/104

4 Le problème dans un contexte informatique ordonnancer des tâches sous-programmes processus fils d exécution affecter à chaque tâche une date d exécution (un processeur) avec contraintes de ressources ou non problème fondamental gestion efficace de la concurrence sur les architectures modernes Ordonnancement DEA informatique Lille p. 4/104

5 Références Computer and Job-Shop Scheduling Theory par Coffman chez John Willey & Sons, 1976 Task Scheduling in Parallel and Distributed Systems par El-Rewini, Lewis et Ali chez Prentice Hall, 1994 Scheduling Theory and Its Applications coordonné par Chrétienne, Coffman, Lenstra et Liu chez John Willey & Sons, 1995 Scheduling and Automatic Parallelization par Darte, Robert et Vivien chez Birkhäuser, 2000 Ordonnancement DEA informatique Lille p. 5/104

6 Exemple : programme séquentiel DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO : b(j) = b(j) - a(j,i) * x(i) ENDDO Résolution d un système triangulaire Ax = b A matrice de taille n n b et x vecteurs de taille n ordre séquentiel (< s ) des tâches : T 1,1 < s T 1,2 < s... < s T 1,n < s T 2,2 < s... < s T 2,n < s T 3,3 < s... < s T n,n Ordonnancement DEA informatique Lille p. 6/104

7 Exemple : graphe de tâches DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO : b(j) = b(j) - a(j,i) * x(i) ENDDO quelles tâches peuvent être calculées indépendamment? dépendances de données identifier les variables communes T i,i produit x(i) utilisé par T i,j, i < j n T i,j produit b(j) utilisé par T i+1,j Ordonnancement DEA informatique Lille p. 7/104

8 Dépendances exprimer la concurrence en respectant la sémantique du programme deux tâches sont dépendantes ( ) si elles accèdent à une même variable un des accès est une écriture conditions de Bernstein T T ou ou Lectures(T ) Ecritures(T ) Ecritures(T ) Lectures(T ) Ecritures(T ) Ecritures(T ) Ordonnancement DEA informatique Lille p. 8/104

9 Graphe de dépendances en cas de dépendance, respect de l ordre séquentiel construction d un ordre partiel ( ) (< s ) + clôture transitive de l intersection de la relation de dépendance et de l ordre séquentiel représentation par un DAG (graphe direct acyclique) omission habituelle des arcs de transitivité Ordonnancement DEA informatique Lille p. 9/104

10 Ord. sans communications définition du problème Entrée : graphe de tâches G = (V, E, w) nombre de sommets ( V ) fini arêtes (E) = contraintes de précédence sommets étiquetés par temps de calcul de la tâche (w : V N) Sortie : affectation (σ : V N) de dates de début d exécution pour chaque sommet respectant les contraintes de dépendances σ(u) + w(u) σ(v) pour tout (u, v) E Ordonnancement DEA informatique Lille p. 10/104

11 Ord. sans communications contraintes nombre de processeurs limité ou non un processeur n exécute qu une tâche à la fois alloc(t ) = alloc(t ) σ(t ) + w(t ) σ(t ) ou σ(t ) + w(t ) σ(t ) objectif : minimier la latence temps total d exécution L(σ) = max v V (σ(v) + w(v)) min v V σ(v) Ordonnancement DEA informatique Lille p. 11/104

12 Accélération définition : s(σ, p) = Seq L(σ, p) avec Seq = v V w(v) propriétés s(σ, p) p Seq = L opt (1)... L opt (p) L opt (p + 1)... L opt ( ) Ordonnancement DEA informatique Lille p. 12/104

13 Sans limite de ressources nombre de processeurs illimité définitions PRED(v) = prédécesseurs immédiats de v SUCC(v) = successeurs immédiats de v v est une entrée du DAG ssi PRED(v) = v est une sortie du DAG ssi SUCC(v) = niveau haut de v, nh(v) = plus grand poids d un chemin d une entrée à v (sans compter v) facile niveau bas de v, nb(v) = plus grand poids d un chemin de v à une sortie (en incluant v) Ordonnancement DEA informatique Lille p. 13/104

14 Ordonnancement optimal définition : σ free (v) = nh(v), v V ordonnancement au plus tôt théorème : σ free est optimal corrolaire : on peut trouver un ordonnancement optimal en temps O( V + E ) pas de délais de communication nombre de processeurs illimité remarque : σ free n est pas le seul ordonnancement optimal ordonnancement au plus tard Ordonnancement DEA informatique Lille p. 14/104

15 Exemple DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO ENDDO temps de calcul : w(t i,i ) = 2 w(t i,j ) = 1, i < j n L(σ free, ) = 3n 1 : b(j) = b(j) - a(j,i) * x(i) Ordonnancement DEA informatique Lille p. 15/104

16 Avec p processeurs mauvaise nouvelle NP-complet bonne nouvelle heuristiques garanties (au plus 2 optimal) heuristiques de liste difficile Ordonnancement DEA informatique Lille p. 16/104

17 Heuristiques de liste définition heuristiques gloutonnes à chaque pas de temps, démarrer le plus de tâches possible plusieurs choix possibles priorités tâche libre à l instant t v FREE(σ, t) σ(v) t et u PRED(v), σ(u) + w(u) t ordonnancement de liste aucun processeur n est laissé délibérément inactif t, FREE(σ, t) = r 1 et q processeurs disponibles démarrer min(r, q) tâches Ordonnancement DEA informatique Lille p. 17/104

18 Heuristiques de liste structures de données graphe G tableau A : # de prédécesseurs de chaque tâche tas Q : tâches prêtes valuées par priorité tas P : processeurs valués par date de fin d exécution pseudo-code Q=entrées(G); P =vide; t=-1; tant_que Q<>vide faire t =événement_suivant(p,t); Mise_à_jour(t,A,Q); Allocation(t,P,Q); t=t ; fin_tant_que complexité = O( V log V + E ) implémentation Ordonnancement DEA informatique Lille p. 18/104

19 Exemple DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO ENDDO temps de calcul : w(t i,i ) = 2 : b(j) = b(j) - a(j,i) * x(i) w(t i,j ) = 1, i < j n priorité = niveau bas n = 6, p = 2, L(σ chemin critique, p) = 17 Ordonnancement DEA informatique Lille p. 19/104

20 Ord. avec communications complique énormément les choses problème NP-complet même sans contrainte de ressources modélisation habituelle comm(t, T ) = O si alloc(t ) = alloc(t ) c(t, T ) sinon coût de communication indépendant des processeurs de plus en plus réaliste contraintes sur l ordonnancement e = (u, v) E, σ(u) + w(u) σ(v) si alloc(u) = alloc(v) σ(u) + w(u) + c(u, v) σ(v) sinon Ordonnancement DEA informatique Lille p. 20/104

21 Sans limite de ressources heuristique de Hanen et Munier garantie à au plus 4 3 de l optimal programmation linéaire relaxation en rationnels (polynomial) d un programme en entiers (NP-difficile) basée sur l idée de successeur favori l unique successeur de T vérifiant σ(t ) < σ(t ) + w(t ) + c(t, T ) Ordonnancement DEA informatique Lille p. 21/104

22 Avec p processeurs bien évidemment NP-complet deux classes d heuristiques (la plupart non garanties) heuristiques de liste heuristiques de regroupement (clustering) Ordonnancement DEA informatique Lille p. 22/104

23 Heuristiques de liste chemin critique naïf priorité = niveau bas calculé en supposant communication systématique chemin critique amélioré allouer une tâche libre au processeur qui permet son exécution le plus tôt en tenant compte des décisions déjà prises on peut allouer à un processeur non libre Ordonnancement DEA informatique Lille p. 23/104

24 Exemple DO i = 1, n T^ache T i,i : x(i) = b(i) / a(i,i) DO j = i+1, n T^ache T i,j ENDDO : b(j) = b(j) - a(j,i) * x(i) ENDDO temps de calcul : w(t i,i ) = 2, w(t i,j ) = 1, i < j n temps de communication uniformes = 4 n = 6, p = 2, L(σ chemin critique amélioré, p) = 28 moins bon que tous sur le même processeur! (Seq = 26) Ordonnancement DEA informatique Lille p. 24/104

25 Heuristiques de regroupement deux étapes regrouper des tâches allouer ces groupes et décider de l ordonnancement final regroupement toujours itératif faire diminuer le temps parallèle estimé plusieurs stratégies selon les plus longs chemins annuler les communications coûteuses une arête à la fois sur le plus long chemin courant heuristiques aussi pour la deuxième phase peu d arguments pour choisir :-( Ordonnancement DEA informatique Lille p. 25/104

26 Récapitulation graphe de dépendance ordonnancement sans communications sans limite de ressources algorithme polynomial optimal à p processeurs NP-complet, heuristiques garanties à 2 optimal ordonnancement avec communications sans limite de ressources NP-complet, heuristique garantie à 4 3 optimal à p processeurs NP-complet, heuristiques non garanties Ordonnancement DEA informatique Lille p. 26/104

27 Placement sur SoC Ordonnancement DEA informatique Lille p. 27/104

28 Contexte placement et ordonnancement d applications de contrôle/commande ou de traitement de signal contraintes temps réel sur architectures hétérogènes, distribuées, embarquées méthodologie Adéquation Algorithme Architecture (AAA) développée à l INRIA Rocquencourt, projet Sosso, puis action Ostre implémentée dans le logiciel SynDEx références web AAA : thèse de Thierry Grandpierre : Ordonnancement DEA informatique Lille p. 28/104

29 Démarche graphe de description de l architecture graphe de description de l algorithme flot de données placement et ordonnancement automatique heuristique de liste ordonnancement statique, non préemptif placement des calculs placement des données placement des communications objectif = minimiser la latence génération d un exécutif Ordonnancement DEA informatique Lille p. 29/104

30 Description de l architecture objectif permettre l ordonnancement granularité adaptée représenter fidèlement le comportement de l architecture prendre en compte les moyens de communications exprimer tout le parallélisme potentiel modéliser finement les arbitrages des ressources partagées graphe orienté sommets = machines à états finis Ordonnancement DEA informatique Lille p. 30/104

31 Modèle d architecture cinq types de sommets opérateurs mémoires RAM (registres, RAM partagées ou non) contenant données, programmes ou les deux memoires SAM (FIFOs) bus (bus/mux/demux/arbitres) communicateurs (DMA) liens représentent transferts possibles de données orientés Ordonnancement DEA informatique Lille p. 31/104

32 Principes de modélisation minimiser nombre de sommets encapsuler séquence de bux/mux/demux/arbitres dans un seul sommet encapsuler arbitre dans sommet RAM ou SAM règles chaque opérateur connecté à une RAM programme et au moins une RAM données chaque RAM partagée ou SAM connectée à au moins deux sommets opérateurs ou communicateurs pas de connexion directe entre RAM/SAM insertion de bus/arbitre là où nécessaire Ordonnancement DEA informatique Lille p. 32/104

33 Communicateurs séquenceur autonome d opérations de transfert de données nécessite connexion à une RAM contenant ces opérations modélise un canal de DMA + sa programmation par le processeur pas d équivalent matériel direct permet ordonnancement communications en concurrence avec calculs Ordonnancement DEA informatique Lille p. 33/104

34 Exemples simples d architectures architectures monoprocesseur générales Von Neumann Harvard DSP pouvant accéder simultanément à deux opérandes et une opération architectures multiprocesseurs régulières SIMD, MIMD à mémoire partagée/distribuée Ordonnancement DEA informatique Lille p. 34/104

35 à un communicateur et d autre part à l opérateur. Le Bus/Mux/Demux permet de sélectionner laquelle des SAM est accédée par l opérateur. Les deux ports de mémoires externes permettent à l opérateur et aux communicateurs d accéder aux deux mémoires externes, il y a donc arbitrage que nous modélisons par deux sommets Bus/Mux/Demux/Arbitre ( et ) entre les RAM externes, l opérateur et les communicateurs. Les Bus/Mux/Demux à modélise la capacité, pour chaque communicateur, d accéder soit à une SAM, soit à la mémoire externe. DSP TMS320C40 b10 C1 b1 S1 operateur b7 b8 R0 R1 b9 C2 C3 b2 b3 S2 S3 C4 b4 S4 C5 b5 S5 C6 b6 S6 b11 R loc R0,R1 : mémoires RAM internes partagées R loc,r glob: mémoires RAM externes partagées C0 à C6 : communicateurs S1 à S6 : mémoires SAM b1 à b8, b10 : bus/mux/demux b9, b11, b12 : bus/mux/demux /arbitre b12 R glob Ordonnancement DEA informatique Lille p. 35/104

36 Architecture quadri TMS320C EXEMPLES DE MODÉLISATIONS DE MACHINES 45 TMS320C40-1 TMS320C40-2 C1 S1 C1 operateur R0 R1 C2 C3 C4 S2 S3 S4 S2 S3 S4 C2 C3 C4 R0 R1 operateur C5 S5 S5 C5 C6 C6 R loc R loc S6 R glob S6 R loc R loc C6 C6 C5 S5 S5 C5 operateur R1 R0 C4 C3 C2 S4 S3 S2 S4 S3 S2 C4 C3 C2 R1 R0 operateur C1 C1 S1 TMS320C40-4 TMS320C40-3 FIG. 1.39: Modélisation d une architecture composée de 4 TMS320C40 Ordonnancement DEA informatique Lille p. 36/104

37 Caractérisation étiquetage des sommets par indications de capacités sommet caractéristiques opérateur liste opérations et durées bande passante d accès aux mémoires communicateur liste d opérations bande passante d accès aux mémoires mémoire capacité et bande passante max RAM partagée politique d arbitrage mesures ou estimations Ordonnancement DEA informatique Lille p. 37/104

38 Modélisation de l algorithme graphe de flot de données sommets = opérations atomiques arcs = dépendances de données répétition infinie implicite (flot) sommets retards pour dépendances inter-répétitions graphe acyclique sauf présence de retards Ordonnancement DEA informatique Lille p. 38/104

39 Factorisation regroupement d opérations répétitives moins puissant qu Array-OL pour le SPMD exprime aussi des dépendances inter-répétitions utilise des sommets particuliers D (Diffusion) : diffusion à toutes les répétitions F (Fork) : découpage J (Join) : regroupement I (Iterate) : dépendance inter-répétition nécessite une valeur initiale exemple : produit matrice-vecteur Ordonnancement DEA informatique Lille p. 39/104

40 Autres caractéristiques flot infini = factorisation implicite E = capteurs correspond à F S = actionneur correspond à J $ = retard correspond à I sommets constantes paramètres calculés une seule fois conditionnelles arcs de conditionnement destination exécutée seulement si entrée vraie et autres données présentes sommet merge pour fusionner résultats d opérations exclusives Ordonnancement DEA informatique Lille p. 40/104

41 Caractérisation pour chaque opération durée d exécution sur chaque opérateur qui peut l exécuter taille mémoire programme nécessaire taille mémoire données nécessaire pour chaque dépendance type de données taille Ordonnancement DEA informatique Lille p. 41/104

42 Modèle d implantation représente une implantation particulière d une application sur une architecture résultat de l heuristique de placement construit par raffinements successifs étiquetage du graphe d algorithme Ordonnancement DEA informatique Lille p. 42/104

43 Étape préliminaire : routage construction des chemins de communication entre les opérateurs suite de sommets bus, RAM, SAM et communicateurs deux types iso-opérateur une par RAM connectée à l opérateur inter-opérateurs conservation des plus courtes uniquement s il y en a plusieurs, communications parallèles possibles Ordonnancement DEA informatique Lille p. 43/104

44 Allocation spatiale : distribution partitionnement allocation des opérations aux opérateurs allocation des dépendances aux routes communication ajout de sommets dans graphe d algorithme avec association avec éléments du graphe d architecture communication communicateurs (read/write, send/receive, sync) allocation mémoires (données, programmes, communications) identité bus/mux/demux cas des conditionnelles Ordonnancement DEA informatique Lille p. 44/104

45 Exemple d algorithme distribué Graphe d architecture: Graphe d algorithme partitionné (avant communication) : Opr1 Opr2 Opr3 OPR2 C11 R1 a1 C12 S1 C21 R2 a2 C22 C23 S2 C31 R3 a3 C32 A d1 d2 B d3 C OPR1 d6 D d5 d4 OPR3 E Graphe d algorithme après distribution : i /a1 /c12 a /S1 a /R1 ad i /a1 ap B B a ap A /R1 /R1 /R1 /R1 a /R1 B /Opr1 ad A A /R1 /Opr1 a /R1 C /Opr1 a i ap /R1 /a1 C ad C /R1 /R1 S3 s r i /c21 /a2 a /R2 ap D a /s1 i s r /c12 /c21 s /c11 ad D /R2 /R2 D /opr2 a /s3 a /R2 i /a2 a /R2 s /c23 /a2 s /c23 a /s2 r r /c31 /c32 a /s2 r /c31 i i /a3 a /R3 i a : sommets allocation données ap A à ap E : sommets allocation programme ad A à ad E : sommets allocation données (variables internes) i : sommets identité s,r : sommets SENDs et RECEIVEs /a3 a /R3 a /R3 /a3 E /opr3 ap E /R3 ad E /R3 Ordonnancement DEA informatique Lille p. 45/104

46 Ordonnancement proposer un ordre total des opérations sur opérateurs communicateurs réalisation : ajout d arcs de précédence supplémentaires entre opérations affectées au même opérateur contraintes ordre des opérations dans une SAM ajout éventuel de sommets de synchronisation Ordonnancement DEA informatique Lille p. 46/104

47 Exemple d algorithme ordonnancé Graphe d architecture: Graphe d algorithme avant distribution : Opr1 Opr2 Opr3 OPR2 C11 Graphe d algorithme après distribution : ad A /R1 /Opr1 a /R1 /R1 /a1 /c12 /Opr1 a /S1 ad ap B i B a ap /R1 A /R1 /R1 /R1 a /R1 A R1 a1 C12 a S1 i C21 C B ap C ad C /R1 /R1 R2 s a2 C22 S3 C23 /a1 a i /R1 /a1 r S2 i /c21 /a2 C31 R3 a3 a /R2 a /s1 i s r /c12 /c21 s /c11 C32 ap D ad D /R2 /R2 D /opr2 a /s3 A d2 B d3 a /R2 i /a2 a /R2 s OPR1 /c23 C /a2 s /c23 a /s2 r r d1 /c31 /c32 a /s2 r /c31 d6 D a : sommets allocation données ap A à ap E : sommets allocation programme ad A à ad E : sommets allocation données (variables internes) i : sommets identité s,r : sommets SENDs et RECEIVEs : dépendances de données : précédences i /a3 i /a3 a /R3 i d5 a /R3 a /R3 /a3 d4 ap E /R3 ad E /R3 /opr3 E E OPR3 Ordonnancement DEA informatique Lille p. 47/104

48 Optimisation construction d un graphe d implantation à partir d un graphe d algorithme et d un graphe d architecture avec un objectif objectif respect de contraintes de temps latence = cadence minimisation latence heuristique Ordonnancement DEA informatique Lille p. 48/104

49 Heuristique de liste routage initialisation liste avec opérations sans prédécesseurs tant que liste non vide sélectionner opération dans la liste choix meilleur opérateur pour chaque opération restriction liste candidats pour éviter inactivité opérateurs choix candidat en fonction de son urgence mettre à jour liste suppression candidat choisi ajout de ses successeurs ordonnançables Ordonnancement DEA informatique Lille p. 49/104

50 Détails heuristique choix meilleur opérateur pour une opération ordonnancement sur tous les opérateurs possibles construction des communications associées calcul des fonctions de coût si égalité, choix en fonction de la mémoire libre restante restriction liste candidats suppression candidats dont date de début au plus tôt date de fin au plus tôt de celui qui a la plus petite date de début au plus tôt fonction de coût, urgence allongement chemin critique sinon opposé flexibilité d ordonnancement différence entre ordonnancement au plus tard et ordonnancement au plus tôt Ordonnancement DEA informatique Lille p. 50/104

51 Cas particuliers sommets constantes considérés ordonnancés par l heuristique à la fin, allocation sur chaque opérateur consommant leurs données duplication éventuelle ordonnancement avant toutes les autres opérations sommets retards dépendances inter-itérations implantés par une copie de données ordonnançables après prédécesseurs et successeurs Ordonnancement DEA informatique Lille p. 51/104

52 Bilan heuristique d ordonnancement/placement architecture hétérogène graphe de flot de données prend en compte communications et allocation mémoire suite de la chaîne de traitement de SynDEx compaction de la mémoire génération de code exécutable extensions possibles modèles applications et architectures SPMD (à la Array-OL) modèles matériels de FPGA ou d ASIC autres objectifs (consommation, surface, tolérance aux pannes) heuristique plus sophistiquée Ordonnancement DEA informatique Lille p. 52/104

53 Ordonnancement de nids de boucles Ordonnancement DEA informatique Lille p. 53/104

54 Nids de boucles DO i=1,n DO j=i,n+1 DO k=j-i,n S 1 S 2 ENDDO ENDDO DO r=1,n boucles non parfaitement imbriquées vecteur d itération valeur des indices englobants domaine d itération domaine des indices englobants opérations instances des instructions S 3 ENDDO ENDDO Ordonnancement DEA informatique Lille p. 54/104

55 Ordre séquentiel (1/2) ordre d exécution des opérations opérations d une même instruction S(I) < seq S(J) I < lex J < lex = ordre lexicographique ou {I 1 < J 1 } ou {I 1 = J 1 et I 2 < J 2 } ou... ou {I 1 = J 1 et... et I n 1 = J n 1 et I n < J n } entre instructions du même bloc ordre textuel < text Ordonnancement DEA informatique Lille p. 55/104

56 Ordre séquentiel (2/2) cas général : opérations S(I) et T (J) notations : S (resp. T ) englobé par n S (resp. n T ) boucles n S,T boucles englobantes communes Ĩ (resp. J) = I (resp. J) tronqué aux ns,t premières composantes 3 cas : si Ĩ < lex J alors S(I) < seq T (J) si J <lex Ĩ alors T (J) < seq S(I) si Ĩ = J alors S(I) < seq T (J) S < text J Ordonnancement DEA informatique Lille p. 56/104

57 Modèle de boucles instructions décrites par leur vecteur d itération leur position dans le texte domaines d itération = polyèdres un point entier dans ce polyèdre = un vecteur d itération possible boucles correspondant au modèle : bornes = fonctions affines des indices des boucles englobantes pas = 1 Ordonnancement DEA informatique Lille p. 57/104

58 Dépendances de données conditions de Bernstein il y a dépendance de données entre S(I) et T (J) ssi accès à la même variable et un accès en écriture dépendance orientée selon ordre séquentiel notation : S(I) T (J) trois types de dépendances de données, toujours entre deux accès consécutifs dans l ordre séquentiel dépendance de flot : écriture pour S(I), lecture pour T (J) anti-dépendance : lecture pour S(I), écriture pour T (J) dépendance de sortie : écriture pour S(I), écriture pour T (J) Ordonnancement DEA informatique Lille p. 58/104

59 Exemple DO i=1,n DO j=1,n a(i+j)=a(i+j-1)+1 ENDDO ENDDO espace d itération? dépendances de données dépendances de flot? anti-dépendances? dépendances de sortie? Ordonnancement DEA informatique Lille p. 59/104

60 Analyse de dépendances de nombreuses méthodes proposées en une vingtaine d années différentes abstractions distances de dépendance niveaux de dépendance vecteurs de direction polyèdres/cônes de dépendance graphes de flot de données formules de Presburger à chaque abstraction son ou ses analyses (tests) Ordonnancement DEA informatique Lille p. 60/104

61 Graphe de dépendance étendu (GDE) le graphe de dépendance général (voir cours précédent) sommets = toutes les opérations ne peut pas être généré à la compilation taille proportionnelle au nombre d opérations dépend des valeurs des paramètres de taille du problème pas forcément adapté au calcul de l ordonnancement dans certains cas représentable de façon compacte programmes à contrôle statique taille proportionnelle au nombre d instructions Ordonnancement DEA informatique Lille p. 61/104

62 Vecteur/ensemble de distance distance de dépendance correspondant à une dépendance S(I) p T (J) due à une paire p de références = J Ĩ( Nn S,T ) toujours lexicographiquement positive ensemble de distances (de dépendance) E p S,T = {( J Ĩ) (I, J) Nn S Nn T, S(I) p T (J)} Ordonnancement DEA informatique Lille p. 62/104

63 Graphe de dépendance réduit (GDR) représentation compacte mais approximative du GDE exacte dans le cas des programmes à contrôle statique sommets = instructions arête entre S et T si (I, J) N n S N n T S(I) T (J) une arête par paire p de références étiquetée par une sur-approximation D e des ensembles de distances si S(I) T (J) dans le GDE alors e = (S, T ) dans le RDG telle que J Ĩ D e graphe de dépendance apparent (GDA) dépendances apparaissant si on déroule le GDR GDA = GDE si analyse exacte Ordonnancement DEA informatique Lille p. 63/104

64 Approximations des ensembles de distance niveaux de dépendance utilisés dans l algorithme de détection du parallélisme d Allen et Kennedy vecteurs de direction utilisés dans l algorithme de Wolf et Lam polyèdres de dépendance utilisés dans l algorithme de partition en super-nœuds d Irigoin et Triolet Ordonnancement DEA informatique Lille p. 64/104

65 Niveaux de dépendance dépendance S(I) T (J) indépendante des boucles si Ĩ = J niveau dépendance portée par une boucle si Ĩ J niveau = rang de la première coordonnée non nulle de J Ĩ Ordonnancement DEA informatique Lille p. 65/104

66 Vecteurs de direction vecteur de dépendance uniforme quand la taille de l ensemble de distances associé est de taille indépendante de la taille de l espace d itération sinon, vecteur de direction vecteur de dimension n S,T à valeurs dans Z {, +, } (Z {+, }) chaque coordonnée = approximation de toutes les valeurs de la coordonnée correspondante des vecteurs de distance z+ si toujours z (+ = 1+) z si toujours z ( = 1 ) si valeurs dans Z Ordonnancement DEA informatique Lille p. 66/104

67 Exemple de GDR DO i=2,n S 1 : s(i)=0 DO j=1,i-1 S 2 : s(i)=s(i)+a(i,j)*b(j) ENDDO : b(i)=b(i)-s(i) S 3 ENDDO GDR par niveaux GDR par vecteurs de direction Ordonnancement DEA informatique Lille p. 67/104

68 Limites des approximations réduisent le nombre d ordonnancements possibles analyse exacte des dépendances pas toujours possible ou trop coûteuse développement d un algorithme de détection du parallélisme capacité limitée par cette approximation en général on ignore la forme de l espace d itération optimalité par rapport à l approximation algorithme de Feautrier programmes à contrôle statique travaille sur l analyse exacte des dépendances tient compte de la forme de l espace d itération limité par les transformations de boucles recherchées le plus puissant à l heure actuelle Ordonnancement DEA informatique Lille p. 68/104

69 Algorithme d Allen et Kennedy utilise les niveaux de dépendance but : pour chaque instruction détecter le nombre maximal de boucles englobantes parallèles transformations de code utilisées : distribution de boucles son inverse, la fusion de boucles optimal par rapport à l approximation choisie Ordonnancement DEA informatique Lille p. 69/104

70 Distribution de boucles toutes les instances de S peuvent être exécutées avant toutes les instances de T s il n y a pas de dépendance de T vers S cas simple : une boucle autour de S 1 et S 2 S 1 S 2, distribution de S 1 avant S 2 S 2 S 1, distribution de S 2 avant S 1 pas de dépendance, tous codes valides S 1 S 2 et S 2 S 1, pas de distribution valide inversion des instructions possible si toutes dépendances portées cas général : calculer les composantes fortement connexes du RDG les trier topologiquement distribuer les boucles autour Ordonnancement DEA informatique Lille p. 70/104

71 Allen-Kennedy(G,k) appeler Allen-Kennedy(GDR par niveaux, 1) enlever de G toutes les arêtes de niveau < k calculer les composantes fortement connexes de G pour chaque composante C, dans l ordre topologique faire si C est une seule instruction, S, sans arête alors générer boucles // autour de S sinon soit l = min e C l(e) (l(e) =niveau de e) générer boucles // du niveau k à l 1 générer boucle séquentielle au niveau l appeler Allen-Kennedy(C,l + 1) Ordonnancement DEA informatique Lille p. 71/104

72 Exemple Allen-Kennedy DO i=...,... DO j=...,... DO k=...,... S 1 S 2 ENDDO S 3 S 4 ENDDO ENDDO S 1 S S 4 S Ordonnancement DEA informatique Lille p. 72/104

73 Transformations unimodulaires principalement pour les boucles parfaitement imbriquées changement de l ordre d itération considérer corps de boucle indivisible caractérisé par une matrice unimodulaire matrice entière à inverse entière parcours dans l ordre lexicographique de I = T.I formalisme englobe de nombreuses transformations permutation renversement torsion Ordonnancement DEA informatique Lille p. 73/104

74 Génération de code code de départ DO I D S(I) ENDDO après transformation par T DO I T (D) S(T 1.I ) ENDDO algorithmes de génération du code d itération basés sur de la programmation linéaire en nombres entiers ou l élimination de Fourier-Motzkin Ordonnancement DEA informatique Lille p. 74/104

75 Validité conserver l ordre des dépendances dépendances indépendantes des boucles inchangées dépendances portées par les boucles S i (I) S j (J) implique T.I < lex T.J soit T.(J I) > lex 0 Ordonnancement DEA informatique Lille p. 75/104

76 Méthode de l hyperplan idée : choisir T telle que pour chaque vecteur d de dépendance T.d > lex 0 et même première composante de T.d > 0 une boucle séquentielle englobant des boucles parallèles si s est la 1 re ligne de T, s.d 1 s est la normale à un hyperplan d équation s.x = 0 ordonnancement selon s.i = t théorème : un tel vecteur s existe toujours preuve constructive il faut encore construire la matrice unimodulaire utilisation de la forme normale de Hermite Ordonnancement DEA informatique Lille p. 76/104

77 Exemple hyperplan DO i=1,n DO j=1,n a(i+j)=a(i+j-1)+1 ENDDO ENDDO vecteurs de dépendance : {(1, 1); (1, 2); (1, 0); (0, 1)} vecteur d hyperplan : s = (3, 1) matrice unimodulaire : T = ( ) DO j=4,4*n DO// i=max(1,ceil((j-n)/3)),min(n,floor((j-1)/3)) a(j-2*i)=a(j-2*i-1)+1 ENDDO// ENDDO Ordonnancement DEA informatique Lille p. 77/104

78 État de l art de nombreuses méthodes différentes modélisations optimalité de l algorithme relatif à la modélisation seulement une étape analyse de dépendances : plusieurs modèles découvrir le parallélisme : ordonnancement bien compris placement : pas mûr adaptation de la granularité : nombreux travaux applicabilité restreinte Ordonnancement DEA informatique Lille p. 78/104

79 Cas du traitement de signal systématique Ordonnancement DEA informatique Lille p. 79/104

80 Contexte langage Array-OL deux niveaux de description global : graphe de tâches local : itérations data-parallèles placement et ordonnancement sur SoC architecture hétérogène références thèse de Julien Soula Principe de Compilation d un Langage de Traitement de Signal rapport LIFL02-11 de Philippe Dumont Étude des transformations d un code Array-OL dans Gaspard Ordonnancement DEA informatique Lille p. 80/104

I L AS «Compilation pour les systèmes embarqués» II Méthodes d analyse et d optimisation de programmes

I L AS «Compilation pour les systèmes embarqués» II Méthodes d analyse et d optimisation de programmes I L AS «Compilation pour les systèmes embarqués»...situation et problématique II Méthodes d analyse et d optimisation de programmes...approche collaborative et exemples de techniques Philippe Clauss ICPS-LSIIT,

Plus en détail

Contributions aux environnements de programmation pour le calcul intensif

Contributions aux environnements de programmation pour le calcul intensif Contributions aux environnements de programmation pour le calcul intensif Habilitation à diriger des recherches Pierre Boulet équipe WEST Pierre.Boulet@lifl.fr - http://www.lifl.fr/~boulet/hdr/ Soutenance

Plus en détail

WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS

WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS WP2T23 «APPLICATION de de REFERENCE» Prototypage rapide d une application de traitement d images avec SynDEx EADS Avec l appui de l INRIA www-rocq.inria.fr/syndex 1 PLAN I. Présentation du sujet II. Présentation

Plus en détail

Chapitre 5. Méthodologie AAA d Adéquation Algorithme Architecture

Chapitre 5. Méthodologie AAA d Adéquation Algorithme Architecture Partie II. Méthodologie formelle pour l utilisation du parallélisme d opérations des architectures multicomposants Chapitre 5. Méthodologie AAA d Adéquation Algorithme Architecture Yves Sorel INRIA-Rocquencourt

Plus en détail

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Chapitre 1 Architecture des calculateurs 1.1 Introduction Ce paragraphe n a pas la prétention de présenter un cours d informatique. D une manière générale, seuls les caractéristiques architecturales qui

Plus en détail

Résolution générique à la volée de systèmes d équations booléennes et applications

Résolution générique à la volée de systèmes d équations booléennes et applications Résolution générique à la volée de systèmes d équations booléennes et applications Radu Mateescu INRIA Rhône-Alpes / VASY Plan Introduction Systèmes d équations booléennes d alternance 1 Algorithmes de

Plus en détail

Multiplication par une constante entière

Multiplication par une constante entière Multiplication par une constante entière Vincent Lefèvre Juin 2001 Introduction But : générer du code optimal à l aide d opérations élémentaires (décalages vers la gauche, additions, soustractions). Utile

Plus en détail

Ordonnancement avec exclusion mutuelle par un graphe d intervalles ou d une classe apparentée : complexité et algorithmes ~ Frédéric Gardi

Ordonnancement avec exclusion mutuelle par un graphe d intervalles ou d une classe apparentée : complexité et algorithmes ~ Frédéric Gardi Ordonnancement avec exclusion mutuelle par un graphe d intervalles ou d une classe apparentée : complexité et algorithmes ~ Frédéric Gardi - 14 Juin 2005 - - Faculté des Sciences de Luminy - 1. Introduction

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI Chapitre 6 Modélisation en P.L.I. 6.1 Lien entre PL et PLI (P) problème de PL. On restreint les variables à être entières : on a un problème de PLI (ILP en anglais). On restreint certaines variables à

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce Heuristique et métaheuristique IFT1575 Modèles de recherche opérationnelle (RO) 8. Optimisation combinatoire et métaheuristiques Un algorithme heuristique permet d identifier au moins une solution réalisable

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre Recherche opérationnelle Programmation linéaire et recherche opérationnelle Ioan Todinca Ioan.Todinca@univ-orleans.fr tél. 0 38 41 7 93 bureau : en bas à gauche Tentative de définition Ensemble de méthodes

Plus en détail

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr Ordonnancement Temps Réel Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr 2 Plan de la présentation 1. Introduction aux systèmes temps réel 1.1 Différents modèles de tâches 1.2

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Sanity Check. bgcolor mgcolor fgcolor

Sanity Check. bgcolor mgcolor fgcolor Sanity Check bgcolor mgcolor fgcolor 0 1 2 3 4 5 6 7 8 9 10 Compilation pour cibles hétérogènes: automatisation des analyses, transformations et décisions nécessaires, François Irigoin et Ronan Keryell

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

C09: Conception parallèle

C09: Conception parallèle méthodologie de conception en quatre étapes virtualisation applications structurées et non structurées aspect analytique: S, E Accélération Amdahl Accélération Gustafson Surcharge de parallélisation Conception

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

Cours de spécialité mathématiques en Terminale ES

Cours de spécialité mathématiques en Terminale ES Cours de spécialité mathématiques en Terminale ES O. Lader 2014/2015 Lycée Jean Vilar Spé math terminale ES 2014/2015 1 / 51 Systèmes linéaires Deux exemples de systèmes linéaires à deux équations et deux

Plus en détail

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)

Plus en détail

GEL 1001 Design I (méthodologie)

GEL 1001 Design I (méthodologie) GEL 1001 Design I (méthodologie) Technique 2 Systèmes embarqués et fiabilité Hiver 2013 Département de génie électrique et de génie informatique Plan Système embarqué Ordinateur et architecture Von Neumann

Plus en détail

Enoncé des travaux pratiques. du cours OpenMP

Enoncé des travaux pratiques. du cours OpenMP Enoncé des travaux pratiques Enoncé des travaux pratiques du cours OpenMP Enoncé des travaux pratiques : description Description Les travaux pratiques se dérouleront sur les nœuds vargas (grappes de 35

Plus en détail

Introduction à la programmation // sur GPUs en CUDA et Python

Introduction à la programmation // sur GPUs en CUDA et Python Introduction à la programmation // sur GPUs en CUDA et Python Denis Robilliard Équipe CAMOME: C. Fonlupt, V. Marion-Poty, A. Boumaza LISIC ULCO Univ Lille Nord de France BP 719, F-62228 Calais Cedex, France

Plus en détail

Introduction à la programmation en variables entières Cours 3

Introduction à la programmation en variables entières Cours 3 Introduction à la programmation en variables entières Cours 3 F. Clautiaux francois.clautiaux@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 272 Sommaire Notion d heuristique Les algorithmes gloutons

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

Systèmes de Fichiers

Systèmes de Fichiers Systèmes de Fichiers Hachage et Arbres B Serge Abiteboul INRIA February 28, 2008 Serge Abiteboul (INRIA) Systèmes de Fichiers February 28, 2008 1 / 26 Systèmes de fichiers et SGBD Introduction Hiérarchie

Plus en détail

Planifica(on du stockage intermédiaire dans l industrie du shampoing

Planifica(on du stockage intermédiaire dans l industrie du shampoing dans l industrie du shampoing R. Belaid, V. T kindt, C. Esswein, rabah.belaid@etu.univ-tours.fr Université François Rabelais Tours Laboratoire d Informatique 64 avenue Jean Portalis, 37200, Tours Journées

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail

Exercices théoriques

Exercices théoriques École normale supérieure 2008-2009 Département d informatique Algorithmique et Programmation TD n 9 : Programmation Linéaire Avec Solutions Exercices théoriques Rappel : Dual d un programme linéaire cf.

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Analyse et mesure de performances du calcul distribué

Analyse et mesure de performances du calcul distribué Analyse et mesure de performances du calcul distribué Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma CruCID Workshop, EMI, Rabat, 5 au 7 juillet 1999 Motivation Types d applications

Plus en détail

Mémoire virtuelle. Généralités

Mémoire virtuelle. Généralités Mémoire virtuelle Généralités La pagination pure - Conversion d adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page -

Plus en détail

Rapport de TER: Analyse de pointeur dans LLVM

Rapport de TER: Analyse de pointeur dans LLVM Rapport de TER: Analyse de pointeur dans LLVM Aurélien CHEMIER Janvier-Février 2014 Résumé Les optimisations réalisées à l intérieur d un compilateur, pour améliorer l efficacité du code généré, ont besoin

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Sortie : OUI si n est premier, NON sinon. On peut voir Premier aussi comme une fonction, en remplaçant OUI par 1 et NON par 0.

Sortie : OUI si n est premier, NON sinon. On peut voir Premier aussi comme une fonction, en remplaçant OUI par 1 et NON par 0. Université Bordeaux 1. Master Sciences & Technologies, Informatique. Examen UE IN7W11, Modèles de calcul. Responsable A. Muscholl Session 1, 2011 2012. 12 décembre 2011, 14h-17h. Documents autorisés :

Plus en détail

Gestion dynamique des tâches dans les grappes

Gestion dynamique des tâches dans les grappes Gestion dynamique des tâches dans les grappes une approche à base de machines virtuelles Fabien Hermenier Équipe ASCOLA, École des Mines de Nantes 26 novembre 2009 Fabien Hermenier (ASCOLA) Gestion dynamique

Plus en détail

Systèmes temps réel Concepts de base. Richard Grisel Professeur des Universités Université de Rouen

Systèmes temps réel Concepts de base. Richard Grisel Professeur des Universités Université de Rouen Systèmes temps réel Concepts de base Richard Grisel Professeur des Universités Université de Rouen 1 Systèmes temps réel - Choix Gestion des ressources Ordonnancement ( Scheduling ), Tolérance aux fautes

Plus en détail

Cours 1: Introduction à l algorithmique

Cours 1: Introduction à l algorithmique 1 Cours 1: Introduction à l algorithmique Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique 2 Aujourd hui Calcul de x n Maximum Complexité d un problème Problème

Plus en détail

Multi-processeurs, multi-cœurs et cohérence mémoire et cache

Multi-processeurs, multi-cœurs et cohérence mémoire et cache Multi-processeurs, multi-cœurs et cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Rappel système d exploitation & Parallélisme L unité d exécution pour un système d exploitation

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Synchronisation des Processus et les sémaphores

Synchronisation des Processus et les sémaphores Synchronisation des Processus et les sémaphores Achraf Othman Support du cours : www.achrafothman.net 1 PLAN Spécification du problème Section Critique (SC) Exclusion Mutuelle Principe Propriétés Réalisation

Plus en détail

Optimisation en nombres entiers

Optimisation en nombres entiers Optimisation en nombres entiers p. 1/83 Optimisation en nombres entiers Michel Bierlaire michel.bierlaire@epfl.ch EPFL - Laboratoire Transport et Mobilité - ENAC Optimisation en nombres entiers p. 2/83

Plus en détail

Programmation Linéaire Cours 1 : programmes linéaires, modélisation et résolution graphique

Programmation Linéaire Cours 1 : programmes linéaires, modélisation et résolution graphique Programmation Linéaire Cours 1 : programmes linéaires, modélisation et résolution graphique F. Clautiaux francois.clautiaux@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 Motivation et objectif du cours

Plus en détail

Notion de complexité

Notion de complexité 1 de 27 Algorithmique Notion de complexité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www-igm.univ-mlv.fr/ hivert Outils mathématiques 2 de 27 Outils mathématiques : analyse

Plus en détail

Le «thread local storage» et son utilisation

Le «thread local storage» et son utilisation Résumé Les allocations mémoire sont généralement plus coûteuses que d ordinaire en environnement multi-thread. En effet, la majorité des algorithmes d allocation en usage dans les systèmes d exploitation

Plus en détail

Ordonnancement des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA

Ordonnancement des processus. Didier Verna. didier@lrde.epita.fr http://www.lrde.epita.fr/ didier. Systèmes d Exploitation. Didier Verna EPITA 1/16 Ordonnancement des processus didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/16 Table des matières 1 Ordonnancement et réquisition d ordonnancement 2 d ordonnancement Premier arrivé premier

Plus en détail

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Analyse Statique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 12 mai 2007 1 / 38 Indécidabilité de la Terminaison

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Unité Systèmes d'information CM : 45h - TD : 60h - TP : 12h - Coeff 2 Systèmes de Gestion de Bases de Données Modéliser

Plus en détail

Deuxième partie II ALGORITHMES DANS LES GRAPHES

Deuxième partie II ALGORITHMES DANS LES GRAPHES Deuxième partie II ALGORITHMES DANS LES GRAPHES Représentation des graphes Représentation en mémoire : matrice d incidence / Matrice d incidence Soit G = (, E) graphe simple non orienté avec n = et m =

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Le problème du flot maximal avec contraintes sur le nombre de chemins

Le problème du flot maximal avec contraintes sur le nombre de chemins Le problème du flot maximal avec contraintes sur le nombre de chemins Jérôme Truffot, Christophe Duhamel, Philippe Mahey jerome.truffot@isima.fr, christophe.duhamel@isima.fr, philippe.mahey@isima.fr LIMOS,

Plus en détail

Systèmes d Exploitation Chapitre 6 Sémaphores

Systèmes d Exploitation Chapitre 6 Sémaphores Systèmes d Exploitation Chapitre 6 Sémaphores F. Moal 2012/2013 Par DIJKSTRA 1971 Idée : encapsuler les solutions diverses au pb de la section critique pour fournir une interface unique et assurer la portabilité.

Plus en détail

Pratique de logiciels de planification

Pratique de logiciels de planification Pratique de logiciels de planification MASTER TECHNOLOGIE & HANDICAP Université Paris 8 Sommaire Introduction Organisation d un projet Les principaux axes de la planification Gestion des tâches Gestion

Plus en détail

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Jonathan Lejeune LIP6-UPMC/CNRS, Inria 19 septembre 2014 Directeur : Pierre Sens Encadrants : Luciana Arantes et

Plus en détail

Table des matières I La programmation linéaire en variables continues 1 Présentation 3 1 Les bases de la programmation linéaire 5 1.1 Formulation d'un problème de programmation linéaire........... 5 1.2

Plus en détail

Plus courts et plus longs chemins

Plus courts et plus longs chemins Plus courts et plus longs chemins Complément au chapitre 8 «Une voiture nous attend» Soit I={1,2,,n} un ensemble de tâches à ordonnancer. La durée d exécution de chaque tâche i est connue et égale à p

Plus en détail

Parallélisme. Cours 1

Parallélisme. Cours 1 Parallélisme Cours 1 TD : 20% - TP : 30% - Examen : 50% Feuille A4 manuscrite (pas de photocopie) Fabrice.Huet@etu.unice.fr (prendre rdv par mail pr le contacter) A quoi sert le parallélisme? Augmenter

Plus en détail

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1 INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 4 : Multiprocesseurs Sylvain Martel - INF6500 2 Multiprocesseurs Type SISD SIMD MIMD Communication Shared memory Message-passing Groupe

Plus en détail

Introduction à la Programmation Sylvain Tisserant

Introduction à la Programmation Sylvain Tisserant INFO 1 Introduction à la Programmation Sylvain Tisserant Mes coordonnées Enseignant-Chercheur Professeur au département IRM depuis sa création (ES2I, ESIL, Polytech Marseille) Directeur du département

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Architecture Doctorant: Directeurs de thèse: Bechir ZALILA

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

Polyèdres et Compilation

Polyèdres et Compilation Polyèdres et Compilation François IRIGOIN 1 & Mehdi AMINI 1,2 & Corinne ANCOURT 1 & Fabien COELHO 1 & Béatrice CREUSILLET 2,3 & Ronan KERYELL 2 1 MINES ParisTech, Maths & Systèmes, CRI, Fontainebleau,

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Théorie des graphes. Introduction. Programme de Terminale ES Spécialité. Résolution de problèmes à l aide de graphes. Préparation CAPES UCBL

Théorie des graphes. Introduction. Programme de Terminale ES Spécialité. Résolution de problèmes à l aide de graphes. Préparation CAPES UCBL Introduction Ces quelques pages ont pour objectif de vous initier aux notions de théorie des graphes enseignées en Terminale ES. Le programme de Terminale (voir ci-après) est construit sur la résolution

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail

Conclusions et Perspectives

Conclusions et Perspectives 8 Conclusions et Perspectives Ce chapitre conclut la thèse en donnant un bilan du travail effectué et les perspectives envisageables au terme de cette recherche. Nous rappelons tout d abord les principales

Plus en détail

Formalisation et automatisation de YAO, générateur de code pour l assimilation variationnelle de données

Formalisation et automatisation de YAO, générateur de code pour l assimilation variationnelle de données Formalisation et automatisation de YAO, générateur de code pour l assimilation variationnelle de données Luigi NARDI sous la direction de Fouad BADRAN et Sylvie THIRIA LOCEAN : Laboratoire d Océanographie

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Module ITC34 - Algorithmique et Programmation

Module ITC34 - Algorithmique et Programmation Module ITC34 - Algorithmique et Programmation TDs Algorithmique (trois séances) Benoît Darties - benoit.darties@u-bourgogne.fr Univ. Bourgogne Franche-Comté Année universitaire 2015-2016 Avant-propos :

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Gestion de projet. Jean-Charles Régin. Licence Informatique 3 ème année - MIAGE

Gestion de projet. Jean-Charles Régin. Licence Informatique 3 ème année - MIAGE Gestion de projet Jean-Charles Régin Licence Informatique 3 ème année - MIAGE Gestion de projet : Ordonnancement Jean-Charles Régin Licence Informatique 3 ème année - MIAGE Remerciements Michel Minoux

Plus en détail

Gestion de la Mémoire 1 ère partie: Point de vue processeur. Chapitre 5

Gestion de la Mémoire 1 ère partie: Point de vue processeur. Chapitre 5 Gestion de la Mémoire 1 ère partie: Point de vue processeur Chapitre 5 Présentation La mémoire peut être adressée de 3 points de vue Point de vue processeur Comment le processeur adresse la mémoire physique

Plus en détail

Introduction au model-checking et application à la vérification des protocoles cryptographiques

Introduction au model-checking et application à la vérification des protocoles cryptographiques Introduction au model-checking et application à la vérification des protocoles cryptographiques Prof. John MULLINS École Polytechnique de Montréal Prof. John MULLINS (École Polytechnique) Introduction

Plus en détail

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,...

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,... Rappels, SISD, SIMD Calculateurs hybrides (GPU-OpenCL) Rappels... SISD,... SIMD Formation d Ingénieurs de l Institut Galiléee MACS 3 Philippe d Anfray Philippe.d-Anfray@cea.fr CEA DSM 2013-2014 SISD :

Plus en détail

Vérification formelle d un modèle mémoire pour le langage C

Vérification formelle d un modèle mémoire pour le langage C Vérification formelle d un modèle mémoire pour le langage C Projet ANR ARA SSIA CompCert (http://compcert.inria.fr) Sandrine Blazy, Xavier Leroy CEDRIC-ENSIIE et INRIA Rocquencourt CEA-LIST, 18 mars 2008

Plus en détail

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voie : Technologie et biologie (TB) Discipline : Informatique Première et seconde années Programme d informatique

Plus en détail

Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques. Elec 2311 : S7

Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques. Elec 2311 : S7 Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques Elec 2311 : S7 1 Plan du cours Qu est-ce l optimisation? Comment l optimisation s intègre dans la conception?

Plus en détail

Dataflows scientifiques : introduction, langage et architecture d exd

Dataflows scientifiques : introduction, langage et architecture d exd Dataflows scientifiques : introduction, langage et architecture d exd exécution Centre de Données de Strasbourg 26 mars 2004 Jean-Pierre.Matsumoto@inria.fr Projet Smis - Inria Rocquencourt Contexte Chaînes

Plus en détail

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende

Que faire en algorithmique en classe de seconde? ElHassan FADILI Lycée Salvador Allende Que faire en algorithmique en classe de seconde? BEGIN Que dit le programme? Algorithmique (objectifs pour le lycée) La démarche algorithmique est, depuis les origines, une composante essentielle de l

Plus en détail

Clermont Ferrand - Janvier 2003

Clermont Ferrand - Janvier 2003 DISDAMIN: Algorithmes de Data Mining Distribués Valerie FIOLET (1,2) - Bernard TOURSEL (1) 1 Equipe PALOMA - LIFL - USTL - LILLE (FRANCE) 2 Service Informatique - UMH - MONS (BELGIUM) Clermont Ferrand

Plus en détail

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés ENSEIRB-MATMECA PG-113 014 TP6: Optimisation au sens des moindres carrés Le but de ce TP est d implémenter une technique de recalage d images qui utilise une méthode vue en cours d analyse numérique :

Plus en détail

Placement de centres logistiques

Placement de centres logistiques Master 1 - Spécialité Androide Année 2014/2015 Module RP Résolution de Problèmes Projet Placement de centres logistiques On considère dans ce projet la résolution du problème de placement de centres logistiques

Plus en détail

M2 MPRO. Optimisation dans les Graphes 2014-2015

M2 MPRO. Optimisation dans les Graphes 2014-2015 M2 MPRO Optimisation dans les Graphes 2014-2015 Programmation linéaire et problèmes d'optimisation dans les graphes 1 Problèmes d'optimisation dans les graphes : quelles méthodes pour les résoudre? Théorie

Plus en détail

Cours d Algorithmique et structures de données 1

Cours d Algorithmique et structures de données 1 Ministère de l Enseignement Supérieur et de la Recherche Scientifique Université Mohamed Khider - Biskra Faculté des Sciences Exactes et des Sciences de la Nature et de la Vie Département d Informatique

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Introduction à l algorithmique et à la. de programmation.

Introduction à l algorithmique et à la. de programmation. Introduction 2006/4/16 11:53 page 1 #1 Introduction à l algorithmique et à la programmation Jean-Éric Pin Cette section de l encyclopédie est consacrée à trois outils fondamentaux de l informatique : l

Plus en détail

Les Microprocesseurs partie2

Les Microprocesseurs partie2 Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI Electronique des Composants & Systèmes Les Microprocesseurs partie2 Cours de L1 - TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE

Plus en détail