INF442 : Traitement des données massives

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

Download "INF442 : Traitement des données massives"

Transcription

1 INF442 : Traitement des données massives A2 : Le regroupement plat et le regroupement hiérarchique Frank Nielsen X avril 2015

2 Administratif dernier dépôt des TDs : le dimanche soir à 23h59m59s suivant le mercredi du TD élection du délégué decours :??? TD1 : ok, félicitations! TD2 commence par l exercice MPI du TD1. tutorat langage C++ mis en place par la DE. Deux créneaux : le mardi et le jeudi de 18h à 20h (Ivan Ustinov) Voir les planches du memento C++ sous moodle Rassurez-vous, TD 3 (détecteur de pourriels) et TD 4 (chiffrement de Hill) sont bien moins copieux!

3 Projet informatique responsable PIs : Claudia D Ambrosio dambrosio@lix.polytechnique.fr 3 choix pour le 20 avril 2015 PI validé le23 avril 2015 Date de remise sous Moodle : 22 mai 2015 Soutenance PI : entre le 1er juin et le 12 juin 2015 Sujets/difficultés (* : facile, ** : moyen, *** : difficile) : * Lancer de rayon (image de synthèse) S. Redon * PageRank (matrices) P.L. Poirion ** CASP : Assessment Protein Structure Prediction A. Héliou & P. Chassignet ** Graphes & arbres recouvrants (most vital edge) S. Toubaline *** Détecteur de Viola Jones (vision) J.-B. Bordes *** Repliement des protéines (biologie) P. Chassignet 442-7? Projet au choix, sujet àrédiger et valider? : Projet au choix en C++ (sans MPI) également possible.

4

5 HPC : quelques cas pour le Super-Computing (SC) HPC = on recherche l efficacité! Utiliser des modèles pour de la simulation parce que sinon c est trop difficile à construire (souffleries) trop cher à construire (crash d avion/voiture) trop lent à attendre (évolution du climat, galaxies) trop dangereux (armes, drogues, pollutions, épidémies) Avoir des résultats rapides voire en ligne on-line, incremental : valeur temporelle du résultat (météo) être le premier à avoir le résultat (bourse, trading HFT) être le premier à avoir une analyse (incluant le coût de dévelopement) Données massives, le Big Data : analyse du génome/d une famille de génomes recherche d intelligence extraterrestre (SETI)

6 Accélération, efficacité et scalabilité t seq : temps écoulé parle programme séquentiel t P :... par programme parallèle sur P proc. t 1 :... par le programme parallèle exécuté enséquentiel, P =1 bien sûr, t 1 t seq sinon on aurait un meilleur algo. séquentiel Accélération : speedup(p) = tseq t P, souvent tseq t P t 1 t P Efficacité : e(p) = speedup(p) P = tseq P t P par rapport au speed-up linéaire, e(p) =1 t P = tseq P Speed-up, efficiency

7 Loi d Amdahl (1967) : un frein au parallélisme? gain de performance idéal : α = fraction du code parallèlisable α seq = fraction du code non-parallèlisable avec α seq + α =1 speedup(p) = t 1 t n = (α seq + α )t 1 (α seq + α P )t 1 = 1 α seq + α P lim speedup(p) = 1 = 1 P α seq 1 α accélération bornée par la fraction de code α seq non-parallèlisable (celle qui est intrinséquement séquentielle)

8 Loi d Amdahl : comportement asymptotique speed up nombre de processeurs (P)

9 Loi d Amdahl : un exemple visuel pour concrétiser α seq = 20% et donc α = 80% P = 1 P=2 P=4 P=8 P seq... Temps par S =1 S = 5 3 S = 2 5 S = 10 3 S =5 lim speedup(p) = 1 = speedup 5 P α seq Est-ce alors intéressant d avoir des grands clusters de machines?

10 Loi de Gustafson : scale speed-up, à la rescousse! Simulation : taille des mailles d une grille 2D/3D = fonction de P Vidéo : SD, HD, 4K, 8K, etc. Concept = Charge de travail (workload) grandit linéairement avec P n n est pas fixé! ( cas d Amdahl) t 1 (P) =α seq t P + P (α t P ) speedup Gustafson (P) =α seq + P (1 α seq ). Gustafson = parallélisme de données

11 Loi de Gustafson : un exemple visuel Loi de Gustafson : speedup(p) =α seq + P α. scale speed-up P =1 P =2 P =4 P =8 seq temps par n 2n 4n 8n la taille des données n augmente speedup(p) = P Parfois, en pratique, on obtient un speed-up super-linéaire (hyper-linéaire), qui s explique par le cache hiérarchique des données Pensez au cheminement complexe des données vers le processeur dans le matériel!

12 Comparaison des lois d Amdahl et de Gustafson Amdahl : t P est une fonction de (t 1,α, P) Gustafson : t 1 est une fonction de (t P,α, P) efficacité(p) = accélération(p) P efficacité asymptotique d Amdahl : lim P e Amdahl (P) =0. Accélération toujours bornée. efficacité asymptotique de Gustafson : lim P e Gustafson (P) =α. Accélération non-bornée asymptotiquement.... pas de contradiction car α seq de Gustafson α seq d Amdahl.

13 Loi de Moore (1975) En fait, une loi empirique, une conjecture... que l industrie essaye de satisfaire! nombre de transistors des processeurs double tous les 18 mois

14 Cluster de machines : une architecture àmémoire distribuée espace mémoire local associé à chaque processeur processeurs connecté par un réseau d interconnexion accès mémoire aux autres processeurs explicite par échanges de messages sur le réseau le réseau d interconnexion détermine la vitesse d accès aux données caractéristiques du réseau : transmission avec modèle de coût α + τ Longueur(message) : latence : temps pour initier une communication (α) bande passante : vitesse de transfert des données (τ) topologie : architectures physique (matériel) et logique (utilisé parles algorithmes //)

15 Processus Les systèmes d exploitation modernes sont multi-tâches : plusieurs applications non-bloquantes peuvent tourner en même temps (time-slicing). un seul processus en cours d exécution sur le CPU à un instant donné, un ordonnanceur de tâches qui alloue les processus aux CPUs/cœurs, état d un processus : en cours d exécution, prêt en attente de CPU, bloqué (suspendu/attente de réveil). Cadre théorique : un processus tourne sur un processeur (mono-cœur) qui constitue un nœud du cluster. P/Proc. (= processus, = processeur)

16 Tâches (jobs) sousunix [france ~]$ sleep & [1] [france ~]$ sleep & [2] [france ~]$ jobs [1]- Running sleep & [2]+ Running sleep & [france ~]$ kill %1 [1]- Terminated sleep [france ~]$ fg %2 sleep On suspend une tâche avec Ctrl-Z, et on la fait passer dans le fond avec bg % (background) Une tâche peut lancer plusieurs processus (souvent c est un seul)

17 Tâches (jobs) sous UNIX : tuer une tâche [france ~]$ ps PID TTY TIME CMD pts/0 00:00:00 bash pts/0 00:00:00 ps [france ~]$ sleep & [1] [france ~]$ ps -F UID PID PPID C SZ RSS PSR STIME TTY TIME CMD :08 pts/0 00:00:00 -bash :50 pts/0 00:00:00 sleep :50 pts/0 00:00:00 ps -F [france ~]$ kill [1]+ Terminated sleep 10000

18 Programmer avec la Message Passing Interface (MPI) Multiple Program Multiple Data : MPMD Single Program Multiple Data : SPMD Taxonomie de Flynn (1972). SPMD (GPU), MPMD (Playstation R 3).

19 MPI : le standard/la bibliothéque Outre les calculs locaux sur chaque processus, on a aussi : des mouvements de données via des envois et réceptions de messages (broadcast, scatter, gather, all-to-all, etc.), de la synchronisation (barrière où tous les processus s attendent avant de pouvoir continuer), du calcul global (comme des opérations de sommes cumulées, reduce et scan ou parallel prefix).

20 MPI : Les communications collectives usuelles Concernent tous les processus d un groupe de communication (souvent WORLD) P 1 P 2 P 3 processus appelant P 0 M message diffusion broadcast M M M M Mi diffusion personnalisée scatter M1 M2 M3 Mi messages personnalisés M1,M2,M3 à envoyer M1 M2 M3 rassemblement gather M1 M2 M3 Mi messages personnalisés M1,M2,M3 reçus réduction reduce AVANT APRÈS

21 MPI : Les communications collectives un à tous (one-to-all) : La diffusion, Broadcast : MPI Bcast, message entier La difusion personnalisée, Scatter : MPI Scatter, message partitionné en morceaux tous àun(all-to-one) : La réduction, Reduce : MPI Reduce, opération comme MPI SUM, etc. Le rassemblement, Gather : MPI Gather, assemble le message àpartirdes messages par morceaux tous à tous (all-to-all, total exchange), le commérage : MPI Alltoall

22 MPI : les deux opérations de base send et receive Communications bloquantes send(&data, n, Pdest) : Envoie n données pointées par &data au processeur Pdest receive(&data,n, Psrc) : Reçoit n données à l adresse pointée par &data du processeur Psrc Que se passe t il dans ce petit exemple?... P0 a=442; send(&a, 1, P1); a=0; P1... receive(&a, 1, P0); cout << a << endl;

23 Communications bloquantes (non-bufferisées) provoque de l attente (idling) Envoyeur ou receveur doivent s attendre mutuellement (hand-shaking).

24 MPI Init(&argc,&argv); MPI Comm size(mpi COMM WORLD,&numprocs) ; MPI Comm rank(mpi COMM WORLD,& myid ) ; tag =442; source=0; destination =1; count=1; if(myid == source){ buffer =2015; MPI Send(&buffer,count,MPI INT, destination,tag, MPI COMM WORLD) ; printf ( Le processeur %d a envoye %d\n,myid, buffer); } if(myid == destination){ MPI Recv(&buffer, count, MPI INT, source, tag, MPI COMM WORLD,&status ); printf ( Le processeur %d a recu %d\n,myid, buffer); }

25 tag =442; source=0; destination =1; count=1; if(myid == source){ buffer =2015; MPI Send(&buffer,count,MPI INT, destination,tag, MPI COMM WORLD) ; printf ( Le processeur %d a envoye %d\n,myid, buffer); } if(myid == destination){ MPI Recv(&buffer, count, MPI INT, source, tag, MPI COMM WORLD,&status ); printf ( Le processeur %d a recu %d\n,myid, buffer); } Le processeur 0 a envoye 2015 Le processeur 1 a recu 2015

26 Minimiser les temps d attente Pour des communications bloquantes, on cherche donc à minimiser le temps d attente (on verra plus tard l équilibrage de charge, le load balancing).

27 Temps d attente pour le receveur Receveur prêt avant l envoyeur (communications bloquantes)

28 MPI : les situations de blocages (deadlocks) Que se passe t il dans cet exemple? P0 send(&a, 1, P1); receive(&b, 1, P1); P1 send(&a, 1, P0); receive(&b, 1, P0); Envoyeur P0 attend le OK pour envoi de P1 Envoyeur P1 attend le OK pour envoi de P0 Ça bloque. On est en situation de deadlock! (Ctrl-C pour tuer le programme...) Programmer avec MPI peut-être complexe à déboguer

29 MPI : les blocages (deadlocks) Les communications bloquantes sont nécessaires pour assurer la consistence (sémantique) des programmes mais font apparaître des situations indésirables de blocage. Pour le send, onpeutpré-allouer un espace mémoire buffer données (Data buffer, DB) à chaque processus, puis envoyer les données en deux temps : Envoi sur le Data Buffer DB, Sur le processeur receveur, recopie le DB à l endroit &data, Implanté soitmatériellement soit par un protocole logiciel. Néanmoins, il subsiste toujours une situation de blocage lorsque le buffer de données DB devient plein

30 MPI : les blocages (deadlocks) Même si on gère bien les appels send, le problème du deadlock subsiste. Le problème des receive... P0 receive(&a, 1, P1); send(&b, 1, P1); blocage P1 receive(&a, 1, P0); send(&b, 1, P0);

31 MPI : Send/Receive non-bloquantes et non-bufferisées Comment envoyer/recevoir des messages avec des communications non-bloquantes... L envoyeur poste un message Demande d envoi (pending message) et continue l exécution de son programme, Le receveur poste un OK pour envoi, et le transfert de données s effectue, Quand le transfert de données est fini, un check status indique qu on peut toucher aux données sans danger communications non-bloquantes

32 commnonbloq442.cpp MPI Status status ; MPI Request request ; MPI Init(&argc,&argv); MPI Comm size(mpi COMM WORLD,&numprocs) ; MPI Comm rank(mpi COMM WORLD,& myid ) ; tag =442; source=0; destination =1; count=1; request=mpi REQUEST NULL ; if(myid == source){ buffer =2015; MPI Isend(&buffer,count,MPI INT, destination,tag, MPI COMM WORLD,&request); } if(myid == destination){ MPI Irecv(&buffer,count,MPI INT, source, tag, MPI COMM WORLD,&request); }

33 MPI Wait(&request,&status ); printf ( [proc %d] status de MPI WAIT : %d\n,myid, status ); if(myid == source){ printf ( Le processeur %d a envoye %d\n,myid, buffer); } if(myid == destination){ printf ( Le processeur %d a bien recu %d\n,myid, buffer); } attente avec MPI_WAIT... attente avec MPI_WAIT... [proc 0] status de MPI_WAIT: 0 Le processeur 0 a envoye 2015 [proc 1] status de MPI_WAIT: 0 Le processeur 1 a bien recu 2015

34 MPI : Les six routines standards sont... procédures, types de données et constantes sont préfixées par MPI (fichier mpi.h) 100+ procédures dont les six principales sont : MPI Init Initialisation de la bibliothèque MPI Finalize Termine l utilisation de MPI MPI Comm size Donne le nombre de processus MPI Comm rank Étiquette du processus appelant MPI Send Envoi un message (bloquant) MPI Recv Reçoit un message (bloquant) Ces procédures retournent MPI SUCCESS en cas de succès, sinon un code d erreur.

35 Quelques hypothèses sur la concurrence le processeur (ou PE) peut effectuer plusieurs choses en même temps Par exemple, on peut supposer MPI IRecv(), non-bloquant MPI ISend(), non-bloquant + calcul local il faut donc que ces 3 opérations soient indépendantes! donc on ne peut pas envoyer le résultat du calcul on ne peut pas forwarder = envoyer ce que l on reçoit en pseudo-code, on note les activités concurrentes par (une double barre) Activité 1 Activité 2 Activité 3

36 MPI : Les types de données enmpi Ce qu on envoie/reçoît... MPI_Commande(&buffer,count,MPI_INT,...) Type MPI MPI CHAR MPI SHORT MPI INT MPI LONG MPI UNSIGNED CHAR MPI UNSIGNED SHORT MPI UNSIGNED MPI UNSIGNED LONG MPI FLOAT MPI DOUBLE MPI LONG DOUBLE MPI BYTE MPI PACKED Type dans le langage C signed char signed short int signed int signed long int unsigned char unsigned short int unsigned int unsigned long int float double long double

37 MPI : La primitive send Syntaxe en C : #include <mpi.h> int MPI Send( void buf, int count, MPI Datatype datatype, int dest, int tag, MPI Comm comm) Syntaxe en C++ (plus mis à jour depuis MPI-2) : #include <mpi.h> void Comm : : Send ( const void buf, int count, const Datatype& datatype, int dest, int tag) const tag : Message tag (integer), utile pour la filtration et l appariemment des opérations send/receive. Pardéfault, tag=0 On utilise la syntaxe d appel en C du MPI dans nos programmes C++

38 MPI : les communications non-bloquantes (C API) I int MPI Isend( void buf, int count, MPI Datatype datatype, i n t dest, i n t tag, MPI Comm comm, MPI Request req ) int MPI Irecv( void buf, int count, MPI Datatype datatype, i n t src, i n t tag, MPI Comm comm, MPI Request req ) L objet MPI Request est utilisé dans les routines suivantes : Retourne *flag=1 si l opération *req est finie, 0 sinon int MPI Test( MPI Request req, int flag, MPI Status status ) Attend jusqu à ce que l opération associée avec *req soit finie. int MPI Wait( MPI Request req, MPI Status status )

39 MPI : les groupes de communication, communicators Défini le cadre des opérations de communication, Chaque processus inclus dans un communicator aunrang associé, Par défaut, MPI COMM WORLD inclut tous les p processus, rang de 0 à p 1, On peut créer des communicators pour des groupes de processus, int MPI Comm size(mpi Comm comm, int *size) et int MPI Comm rank(mpi Comm comm, int *size)

40 Barrière de synchronisation : MPI Barrier MPI Barrier : Bloque jusqu à temps que tous les processus arrivent à cette routine = synchronisation! Barrière de synchronisation Barrière de synchronisation

41 Mesurer le temps sous MPI : MPI Wtime double start, end; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Barrier(MPI_COMM_WORLD); /* IMPORTANT */ start = MPI_Wtime(); /* faire le calcul ici */ calculinf442(); MPI_Barrier(MPI_COMM_WORLD); /* IMPORTANT */ end = MPI_Wtime(); MPI_Finalize(); if (rank == 0) {cout<< end-start <<endl;} Ou alors utiliser MPI Reduce() pour calculer les temps minima/maxima (et autres statistiques) des processus...

42 MPI : Calcul globaux Reduce C: #include <mpi.h> int MPI Reduce( void sendbuf, void recvbuf, int count, MPI Datatype datatype, MPI Op op, int root, MPI Comm comm) Arbre de réduction (dépend de la topologie) ( ) (+ (+ 1 2) (+ 3 4))

43 MPI : Reduce, opérations de calcul prédéfinies Opérateur binaire associatif et commutatif Nom MPI MAX MPI MIN MPI SUM MPI PROD MPI LAND MPI BAND MPI LOR MPI BOR MPI LXOR MPI BXOR MPI MAXLOC MPI MINLOC Signification maximum minimum sum product logical and bit-wise and logical or bit-wise or logical xor bit-wise xor max value and location min value and location

44 Calcul de la factorielle...factoriellempireduce442.cpp int i,moi, nprocs ; int nombre, globalfact= 1, l o c a l F a c t ; MPI Init(&argc,&argv); MPI Comm size(mpi COMM WORLD,&nprocs) ; MPI Comm rank(mpi COMM WORLD,&moi ) ; nombre=moi+1; // dans les arguments, se rappeler l ordre ( source, destination ) MPI Reduce(&nombre,&globalFact,1,MPI INT,MPI PROD, 0,MPI COMM WORLD) ; if ( moi==0) { printf( factorielle avec reduce pour %d processus = %d\n,nprocs, globalfact );} localfact=1; for(i=0;i<nprocs ; i++) { localfact =( i +1) ; } if ( moi==0) { printf( factorielle locale : %d\n,localfact);} MPI Finalize() ;

45 MPI : Les commandes Scan/ Préfixe parallèle int MPI Scan( void sendbuf, void recvbuf, int count, MPI Datatype datatype,mpi Op op,mpi Comm comm ) processus P 0 P 1 P 2 P 3 entrée (v i ) sortie 1 3(=1+2) 6(=1+2+3) 10(= )

46 P 0 a a + b + c + d P 0 a a + b + c + d P 1 P 2 b c reduce b c P 1 P 2 b c Allreduce a + b + c + d a + b + c + d P 3 d d P 3 d a + b + c + d P 0 a 0 b 0 c 0 a 0 b 0 c 0 P 1 P 2 a 1 b 1 a 2 b 2 c2 c 1 scan a 0 + a 1 a 0 + a 1 + a 2 b 0 + b 1 b 0 + b 1 + b 2 c 0 + c 1 c 0 + c 1 + c 2

47 Frank Nielsen 4.k-moyennes sous MPI A2-47 Algorithme parallèle pour les k-moyennes Parallel k-means MPI

48 Frank Nielsen 4.k-moyennes sous MPI A2-48 Parallélisation : propriété de composition du centroïde Soit X et X deux jeux de données pondérés avec leurs sommes des poids totaux W et W (X X = ). Alors on a la règle de composition : x(x X )= W W x(x )+ W + W W + W x(x ) Très utile pour partager le calcul des données sur plusieurs processeurs... On fait des paquets X 1,..., X p équilibrés de taille n p Propriété forte de la géométrie Euclidienne (pas vrai en géométrie hyperbolique)

49 Frank Nielsen 4.k-moyennes sous MPI A2-49 Règle de composition : preuve élémentaire Prenons X X =. x(x X )= W W x(x )+ W + W W + W x(x ) x(x )= 1 X x x X ( x(x X 1 )= X + X x + ) x x X x X x = X x(x ), x = X x(x ) x X x X W = X et W = X, idem pour des poids arbitraires W et W.

50 Frank Nielsen 4.k-moyennes sous MPI A2-50 Parallélisation de l heuristique de Lloyd Soit p processeurs P 0,..., P p 1, tous les processeurs lisent leurs n p données (tient dans la mémoire vive, RAM). Utilisons la propriété dedécomposition des centroïdes : x(x )= p 1 i=0 1 p x(x p). Un des processeurs, disons P 0 s occupe de l initialisation des centroides, puis diffuse (broadcast) cette initialisation à tous les autres processeurs. En MPI, commande MPI Bcast. Chaque processeur P r s occupe d un paquet de n p données X r = {x r n...x (r+1) n p p 1 } en calculant la distance minimale de ses x i aux centres. On met à jour la fonction de coût et on calcule les centroïdes et cardinalité indépendamment dans chaque paquet : G 1 (r),..., G k (r) avec n 1 (r) = G 1 (r),..., n k (r) = G k (r). Puis on réduit (opération reduce) touslesc j (r) etn j (r) en faisant la somme (opération dédiée de MPI) : MPI Allreduce On répéte jusqu à convergence (ou lorsque la décroissance de la fonction de coût passe sous un seuil donné).

51 Frank Nielsen 4.k-moyennes sous MPI A2-51

52 Frank Nielsen 4.k-moyennes sous MPI A2-52 Les k-moyennes en MPI : analyse de la complexité Algorithme séquentiel : O(dnks), s :nombred itérations (Lloyd). Les opérations élémentaires comme Reduce, Bcast, etc. dépendent de la topologie du réseau d interconnexion. Initialisation des centroïdes par le processeur P 0 en temps O(dk) Coût total : O (dk + Bcast(p, dk)+s ( dn p )) + Reduce(p, dk) n>>k,d O ( ) dkns Facteur d accélération ( (speed-up, ) rapport du temps séquentiel sur le temps parallèle) α = O = O(p). dkns dkns p Philosophie différente de MapReduce (Hadoop) : Autre modèle de calcul distribué simple. p

53 Les k-moyennes : Un clustering par partition = clustering plat vs Regroupement hiérarchique Frank Nielsen 5.Regroupement A2-53

54 rank Nielsen 5.Regroupement A2-54 Trouver des liens de proximité entrelesdonnées mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX Mazda RX4 Wag Datsun Hornet 4 Drive Hornet Sportabout Valiant Duster Merc 240D Merc Merc Merc 280C Merc 450SE Merc 450SL Merc 450SLC Cadillac Fleetwood Lincoln Continental Chrysler Imperial Fiat Honda Civic Toyota Corolla Toyota Corona Dodge Challenger AMC Javelin Camaro Z Pontiac Firebird Fiat X Porsche Lotus Europa Ford Pantera L Ferrari Dino Maserati Bora Volvo 142E

55 Frank Nielsen 5.Regroupement A2-55 Regroupement hierarchique (distance moyenne) hauteur Honda Civic Toyota Corolla Fiat 128 Fiat X1 9 Mazda RX4 Mazda RX4 Wag Merc 280 Merc 280C Merc 240D Lotus Europa Merc 230 Volvo 142E Datsun 710 Toyota Corona Porsche Hornet 4 Drive Valiant Merc 450SLC Merc 450SE Merc 450SL Dodge Challenger AMC Javelin Chrysler Imperial Cadillac Fleetwood Lincoln Continental Ford Pantera L Duster 360 Camaro Z28 Hornet Sportabout Pontiac Firebird Ferrari Dino Maserati Bora

56 Les sciences du vivant adorent le regroupement hiérarchique! Gene expression patterns of breast carcinomas distinguish tumor subclasses with clinical implications rank Nielsen 5.Regroupement A2-56

57 Le regroupement hiérarchique : reconnaissance de visages Hierarchical Clustering With Prototypes via Minimax Linkage, Frank Nielsen 5.Regroupement A2-57

58 Frank Nielsen 5.Regroupement A2-58 Le clustering/regroupement hiérarchique ascendant On part des données X = {x 1,..., x n } qui sont des feuilles et on fusionne iérativement au fur et à mesure les sous-arbres jusqu à ne plus qu avoir un seul arbre. Les feuilles initiales forment une forêt d arbres à une feuille, puis on fait de la fusion d arbres... Plusieurs critères pour la fusion de deux sous-arbres (dont les sous-ensembles de données G i et G j sont stockées dans leurs feuilles). On calcule Δ(G i, G j ) la distance entre deux sous-ensembles. stratégie du saut minimum :Δ SL Single Linkage (SL) stratégie du saut maximum (ou diamètre) : Δ CL Complete Linkage (CL) stratégie du saut moyen : Δ GA Group Average (GA) algorithme glouton : Choix itératif de la meilleure paire de groupes (avec tie-breaking rule)

59 Frank Nielsen 5.Regroupement A2-59 Pour se fixer une idée : saut moyen, Single Linkage (SL) Fonction de chaînage entre deux groupes Δ(G i, G j )= min D(x i, x j ) x i G i,x j G j où D(x, y) est une distance élémentaire. regroupement hiérarchique agglomératif avec un saut minimum (nearest-neighbor clustering)

60 Quelle distance élémentaire entre deux données? On doit toujours avoir bien entendu Δ({x i }, {x j })=D(x i, x j ). Exemples de distances élémentaires : d Distance Euclidienne (L 2 ):D(p, q) = i=1 (p i q i ) 2 Distance de Manhattan (city block, L 1 ):D 1 (p, q) = d i=1 p i q i Distance de Minkowski induite par L p : D p (p, q) = Distance de Mahalanobis : D Σ (p, q) = ( d i=1 p i q i p ) 1 p (p q) Σ 1 (p q) =D(L p, L q), avec Σ 1 = L L provenant de la factorisation de Cholesky Métrique, non-métrique, distance & similarité, etc. Frank Nielsen 5.Regroupement A2-60

61 Frank Nielsen 5.Regroupement A2-61 Le clustering par agglomération Hierarchical Cluster Analysis (HCA) : regroupement hiérarchique Initialiser x i dans un cluster singleton G i = {x i } Tant qu il reste au moins deux clusters : Choisir Gi et G j tel que Δ(G i, G j ) soit minimal Fusionner Gi,j = G i G j (ajouter G i,j et retirer G i et G j ) Retourner le dernier nœud comme la racine de l arbre de fusion le résultat d un regroupement hiérarchique est un arbre binaire appelé dendrogramme. On fusionne n 1fois(lesétapes de fusion). Différent d un algorithme de partitionnement comme les k-moyennes : Clustering hiérarchique not Clustering plat (par partition) Ici, pas de fonction de coût globale à optimiser mais un algorithme de fusion

62 Frank Nielsen 5.Regroupement A2-62 Distance de chaînage Δ(G i, G j ) Single Linkage saut minimum Complete Linkage saut maximum diamètre Group Average saut moyen Algorithme glouton : arg min Δ(G i, G j ) i,j i les groupes G i et G j sont voisins réciproques! G i = PPV G (G j )=argmin G G Δ(G j, G ). G j = PPV G (G i )=argmin G G Δ(G i, G ). PPV = Plus Proche Voisin. G : ensemble des groupes.

63 Frank Nielsen 5.Regroupement A2-63 Dessinons un dendrogramme... Par exemple, choisissons la hauteur comme le nombre d étapes de fusion : hauteur : nombre de fusions 3 I,N,F,4,4,2 2 I, N, F 4, 4, 2 nœuds internes 1 I, N 4, 4 0 I N F feuilles Dendrogramme = Graphique d un arbre binaire, enraciné etplongédansle plan.

64 Frank Nielsen 5.Regroupement A2-64 Autre visualisation de la hiérarchie par inclusion I,N,F,4,4,2 I, N, F 4, 4, 2 I, N 4, 4 I N F I N F nested clusters

65 Frank Nielsen 5.Regroupement A2-65 Le clustering hiérarchique : single linkage (SL) Δ(G i, G j )= min D(x i, x j ) x i G i,x j G j Répeter tant que toutes les données x i ne soient pas contenues dans un seul cluster, on fusionne les deux groupes les plus proche. À chaque instant tous les sous-arbres forment une forêt (partitition de X ). Single linkage nearest-neighbor clustering S il existe plus d une paire de groupes donnant le Δ minimal, on choisit un ordre (lexicographique). Si on fait une permutation sur les données, on n obtiendra pas le même dendrogramme : unicité. Problème de chaînage (artefact) dans le clustering final Complexité :naïf O(n 3 ), algorithme SLINK en O(n 2 ) (1973), temps quadratique et espace linéaire en utilisant l arbre recouvrant de poids minimal (MST : Minimum Spanning Tree, 1969).

66 Frank Nielsen 5.Regroupement A2-66 Regroupement hierarchique (saut minimum) hauteur Ford Pantera L Duster 360 Camaro Z28 Chrysler Imperial Cadillac Fleetwood Lincoln Continental Hornet Sportabout Pontiac Firebird Merc 450SLC Merc 450SE Merc 450SL Dodge Challenger AMC Javelin Hornet 4 Drive Valiant Ferrari Dino Honda Civic Toyota Corolla Fiat 128 Fiat X1 9 Merc 240D Mazda RX4 Mazda RX4 Wag Merc 280 Merc 280C Lotus Europa Merc 230 Datsun 710 Volvo 142E Toyota Corona Porsche Maserati Bora

67 Frank Nielsen 5.Regroupement A2-67 Le clustering hiérarchique : Complete Linkage Complete linkage (CL) : CLINK in O(n 2 ) (1977) Δ CL (G i, G j )= max D(x i, x j ), x i G i,x j G j appelé aussi diamètre. Problème du diamètre : si un point artefact (outlier) est très éloigné des autres, la distance inter-groupe devient grande (et n est pas significative). Complete linkage furthest-neighbor clustering

68 Frank Nielsen 5.Regroupement A2-68 Regroupement hierarchique (saut maximum) hauteur Chrysler Imperial Cadillac Fleetwood Lincoln Continental Ford Pantera L Duster 360 Camaro Z28 Hornet Sportabout Pontiac Firebird Hornet 4 Drive Valiant Merc 450SLC Merc 450SE Merc 450SL Dodge Challenger AMC Javelin Honda Civic Toyota Corolla Fiat 128 Fiat X1 9 Ferrari Dino Lotus Europa Merc 230 Volvo 142E Datsun 710 Toyota Corona Porsche Merc 240D Mazda RX4 Mazda RX4 Wag Merc 280 Merc 280C Maserati Bora

69 Frank Nielsen 5.Regroupement A2-69 Le clustering hiérarchique : Average Linkage Average Linkage (AL) : O(n 2 ) (1984) Δ AL (G i, G j )= 1 n i n j x i G i La moyenne de toutes les paires de distance! x j G j D(x i, x j )

70 Frank Nielsen 5.Regroupement A2-70 Regroupement hierarchique (distance moyenne) hauteur Honda Civic Toyota Corolla Fiat 128 Fiat X1 9 Mazda RX4 Mazda RX4 Wag Merc 280 Merc 280C Merc 240D Lotus Europa Merc 230 Volvo 142E Datsun 710 Toyota Corona Porsche Hornet 4 Drive Valiant Merc 450SLC Merc 450SE Merc 450SL Dodge Challenger AMC Javelin Chrysler Imperial Cadillac Fleetwood Lincoln Continental Ford Pantera L Duster 360 Camaro Z28 Hornet Sportabout Pontiac Firebird Ferrari Dino Maserati Bora

71 Frank Nielsen 5.Regroupement A2-71

72 Frank Nielsen 5.Regroupement A2-72 CritèredefusiondeWard:lavariance Variance = somme des distances euclidiennes au carré par rapport au centroïde : v(x )= x c(x ) 2, c(x )= 1 x X x X x X Distance entre clusters (critère de Ward) pour G i (n i = G i )etg j (n j = G j ): Δ(G i, G j )=v(g i G j ) (v(g i )+v(g j ))) = n in j n i + n j c(g i ) c(g j ) 2 0 Δ({x i }, {x j })=D(x i, x j )= x i x j 2 Quand on fusionne deux groupes, la variance ne peut pas diminuer! Quand on rajoute des clusters, la somme pondérée des variances diminue Δ(G i, G j )=k-moyennes(g i G j ) (k-moyennes(g i )+k-moyennes(g j ))

73 Frank Nielsen 5.Regroupement A2-73 Regroupement hierarchique (distance moyenne) Regroupement hierarchique (Ward) hauteur Honda Civic Toyota Corolla Fiat 128 Fiat X1 9 Mazda RX4 Mazda RX4 Wag Merc 280 Merc 280C Merc 240D Lotus Europa Merc 230 Volvo 142E Datsun 710 Toyota Corona Porsche Hornet 4 Drive Valiant Merc 450SLC Merc 450SE Merc 450SL Dodge Challenger AMC Javelin Chrysler Imperial Cadillac Fleetwood Lincoln Continental Ford Pantera L Duster 360 Camaro Z28 Hornet Sportabout Pontiac Firebird Ferrari Dino Maserati Bora hauteur Honda Civic Toyota Corolla Fiat 128 Fiat X1 9 Merc 240D Lotus Europa Merc 230 Volvo 142E Datsun 710 Toyota Corona Porsche Ferrari Dino Mazda RX4 Mazda RX4 Wag Merc 280 Merc 280C Hornet 4 Drive Valiant Merc 450SLC Merc 450SE Merc 450SL Dodge Challenger AMC Javelin Maserati Bora Ford Pantera L Duster 360 Camaro Z28 Chrysler Imperial Cadillac Fleetwood Lincoln Continental Hornet Sportabout Pontiac Firebird x INF442 (voitures) Average Group x INF442 (voitures) Critère de Ward

74 Frank Nielsen 5.Regroupement A2-74 Le clustering descendant hiérarchique par division Version top-down : on part d un cluster contenant toutes les données X et on divise récursivement jusqu à temps qu on obtienne les n feuilles qui contiennent les données individuelles. Pour casser un cluster en deux, on utilise un algorithme de clustering par partitionnement pour k = 2 (comme celui des k-moyennes par exemple) En général, plus coûteux qu un regroupement hiérarchique agglomératif (bottom-top)

75 Dendrogramme : obtenir des partitions àpartirdu dendrogramme Pour k [n] ={1,..., n}, on peut extraire des partitions en k-sous-ensembles de X. Regroupement hierarchique hauteur x Frank Nielsen 5.Regroupement INF442 A2-75

76 Frank Nielsen 5.Regroupement A2-76 Convertir un clustering hiérarchique en une partition Si on ne choisit pas k mais une valeur de seuillage... Parcourir récursivement l arbre et on arrête la récursivité quand Δ(nœud) = Δ(nœud fils gauche, nœud fils droit ) seuil saut maximum (CL, diamètre) : les clusters ont un diamètre seuil (hauteur constante) chaînage de Ward : les clusters ont une variance seuil (hauteur pas constante car inversions) Δ < Δ Δ < Δ

77 Frank Nielsen 5.Regroupement A2-77 Convertir un clustering hiérarchique en une partition Si on veut choisir k... Clustering hiérarchique Clustering plat (partition) On choisit une hauteur pour trouver une partition en k clusters Meilleure hauteur par Programmation Dynamique. Meilleure hauteur pour T (X )à k sous-ensembles : Fit(T =(L, R), k) = min Fit(L, k 1)+Fit(R, k 2 ) k 1,k 2 k 1 +k 2 =k Pour les k-moyennes (clustering plat, NP-dur en général) on obtient une k-partition optimale à partir d un clustering hierarchique (facile à calculer, SL) sous l hypothèse de satisfaire un critère de séparabilité.

78 Frank Nielsen 5.Regroupement A2-78 Distances : métriques et ultra-métriques Une distance d(, ) est: métrique si elle satisfait les axiomes : d(x, y) 0avecégalité pourx = y seulement d(x, y) =d(y, x) symétrie d(x, y) d(x, z)+d(z, y), inégalité triangulaire ultra-métrique si elle satisfait les axiomes : d(x, y) 0avecégalité pourx = y seulement d(x, y) =d(y, x) symétrie d(x, y) max(d(x, z), d(z, y))

79 Frank Nielsen 5.Regroupement A2-79 Distance et évolution (horloge) Dans les arbres phylogénétiques, la distance entre deux espèces impose des restrictions sur la fonction distance. Arbre additif (additive tree) :poids sur chaque arête tel que pour chaque paire de feuilles, la distance est la somme des distances des arêtes les reliant. Arbre ultramétrique : distances entre deux feuilles G i et G j et leur ancêtre commun G k sont égales : d i,k = d j,k. h k = 1 2 d i,j (hauteur) correspond au temps écoulé permet de définir une horloge globale sur l axe vertical

80 Dendrogrammes et arbres phylogénétiques Frank Nielsen 5.Regroupement A2-80

81 Frank Nielsen 5.Regroupement A2-81 Regroupement hiérarchique avec l algorithme UPGMA UPGMA : Unweighted Pair Group Method using arithmetic Averages Clustering hiérarchique avec la distance de chaînage Average Linkage (AL) : Δ(G i, G j )= 1 n i n j x i G i x j G j D(x i, x j )=Δ i,j UPGMA garantie de produire un arbre ultramétrique

82 Frank Nielsen 5.Regroupement A2-82 Regroupement hiérarchique par UPGMA Initialise x i a son cluster C i et positionne ce nœud àhauteurt =0. Tant qu il reste plus de deux clusters : Trouver les clusters Ci et C j qui ont la distance Δ i,j minimale Définir un nouveau cluster Ck = C i C j et calculer la distance Δ k,l pour tout l Ajouter un nœud k avec les fils Ci et C j et positionner le àhauteur t k = 1 2 Δ i,j Retirer Ci et C j de la liste des clusters, et continuer jusqu à temps d avoir deux clusters Pour les deux derniers clusters C i,andc j, placer la racine àhauteur 1 2 Δ(C i, C j )

83 Frank Nielsen 5.Regroupement A2-83 Regroupement hiérarchique par UPGMA Théorème Si les données sur les distances sont ultramétriques (vérifiable sur la matrice des distances), alors il existe un unique arbre ultramétrique et l algorithme UPGMA le construit.... malheureusement les données (bruitées) ne sont pas ultramétriques en général! Tester si une matrice de distances est ultramétrique : naïvement en O(n 3 ).

84 Frank Nielsen 5.Regroupement A2-84 Dissimilarité, similarité et inversions similarité entre deux groupes : S(X i, X j )= Δ(X i, X j ). Ainsi si on a Δ(G i, G k ) > Δ(G i, G j ) alors on a l ordre inverse S < S(G i, G j ) pour un chemin du dendrogramme d une feuille à la racine, séquence de fusion monotone ssi. la similarité décroit quand on se rapproche de la racine : S 1 S 2... S racine. Autrement dit, la valeur du critère de fusion augmente quand on va vers la racine. non-monotone s il existe au moins une inversion S i < S i+1 sur un chemin du dendrogramme. Cela veut dire que deux groupes peuvent être plus similaire àl étape i + 1 que les deux groupes fusionnés àl étape i. critère de Ward ne garantie pas la monotonie (inversions). Par contre, Single Linkage, Complete Linkage et Average Linkage garantissent la monotonie.

85 Frank Nielsen 5.Regroupement A2-85 Inversionpossiblepourlecritère de Ward x 3 S({x 1 }, {x 2 }) S({x 1,x 2 }, {x 3 }) x 1 x 2 x 1 x 2 x 3 Inversion car un nœud parent se trouve plus bas que les deux nœuds fils.

86 Frank Nielsen 5.Regroupement A2-86 C++ : Contenu des méthodes à l extérieur des classes #include <iostream> using namespace std ; class CEntier { public: int val ; CEntier( int v){ this >val=v;} void ajoute ( int v2) ; } ; // Définition à l extérieur de class void CEntier :: ajoute ( int v2) { val+=v2;} int main() { CEntier e1=new CEntier (5) ; e1 >ajoute (8) ; cout<<e1 >val<<endl ; return 0;}

87 Frank Nielsen 5.Regroupement A2-87 Structures de données abstraites Défini une interface pour accéder aux données. Peut-être codé du plusieurs manières différentes. les piles (Last In First Out, LIFO) les files (First In First Out,FIFO) les arbres les graphes les matrices creuses etc. Par exemple, les piles etfilespeuventêtre implanté soit avec des tableaux soit avec des listes chaînées.

88 Frank Nielsen 5.Regroupement A2-88 class CNoeud{C++ : // la classe nœud public: CNoeud gauche, droit ; int val ; public: CNoeud( int v) { this >val=v ; gauche=droit=null;} CNoeud( int val, CNoeud Arbre1, CNoeud Arbre2 ) { this >val=val ; gauche=arbre1 ; droit=arbre2;} string Print() { char buffer [20]; string sval=string(itoa(val, buffer,10) ); string sgauche, sdroit ; if (gauche==null) sgauche= nil ; else sgauche=gauche >Print() ; if (droit==null) sdroit= nil ; else sdroit=droit >Print() ; return ( +sval+, +sgauche+, +sdroit+ ) ; }};

89 Frank Nielsen 5.Regroupement A CNoeud Arbre442=new CNoeud(3,new CNoeud(2), new CNoeud(1, new CNoeud(4),new CNoeud(5) ) ) ; cout<<arbre442 >Print()<< endl ; Exécution donne àlaconsole: (3,(2,nil,nil),(1,(4,nil,nil),(5,nil,nil)))

90 Frank Nielsen 5.Regroupement A2-90 C++ : récupération de la mémoire tilde, unseul destructeur par classe C++ CNoeud () { if (gauche!=null) delete gauche ; if (droit!=null) delete droit ; cerr<< delete <<val<<endl ; } (3,(2,nil,nil),(1,(4,nil,nil),(5,nil,nil))) delete 2 delete 4 delete 5 delete 1 delete 3

91 Frank Nielsen 5.Regroupement A2-91 Différences principales entre C++ et Java null en Java et NULL en C++ this.variable en Java/C++ (référence) et this->variable en C++ (pointeur) class INF442{} en Java et class INF442{}; en C++ On peut rajouter le corps des méthodes en C++ après sa déclaration dans la classe : void CNoeud::Addition(int v) ajouter un destructeur dans la classe en C++ array.length en Java. On utilise la classe vector de la STL C++ et.size() import en Java et include en C++ (STL) etc. En C++ dans les classes, mettre explicitement public (sinon on est private par défaut)

92 Frank Nielsen 5.Regroupement A2-92 Résumé A2 HPC : accélération, loi d Amdahl et loi de Gustafson MPI : les communications bloquantes, les situations de blocage, les communications non-bloquantes, les barrières de synchronisation les calculs collaboratifs : réduction (somme, reduce & Allreduce), et les opérations de préfixe parallèle (scan) Science des données : les k-moyennes avec MPI regroupement hiérarchique vs. regroupement plat. arbre ultramétrique et chaînage par saut moyen (average link). C++ : les classes objets. Lire le memento C++ sur la page Moodle! Pour la prochaine fois : lire le chapitre 8 et relire le chapitre 2 du polycopié

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique Objectifs Clustering On ne sait pas ce qu on veut trouver : on laisse l algorithme nous proposer un modèle. On pense qu il existe des similarités entre les exemples. Qui se ressemble s assemble p. /55

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

Plan de la formation. Calcul parallèle avec MPI. Pourquoi paralléliser? Parallélisation. Présentation, environnement MPI. Communications point à point

Plan de la formation. Calcul parallèle avec MPI. Pourquoi paralléliser? Parallélisation. Présentation, environnement MPI. Communications point à point Plan de la formation Calcul parallèle avec MPI Guy Moebs Parallélisation Présentation, environnement MPI Communications point à point Laboratoire de Mathématiques Jean Leray, CNRS, Université de Nantes,

Plus en détail

Initiation au HPC - Généralités

Initiation au HPC - Généralités Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -

Plus en détail

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe

MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe 3A-SI Programmation parallèle MPI-1 2ème partie : Programmation «non bloquante» et communications de groupe Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle MPI-1 2ème partie

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Parallélisme et Répartition

Parallélisme et Répartition Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

4 Exemples de problèmes MapReduce incrémentaux

4 Exemples de problèmes MapReduce incrémentaux 4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank

Plus en détail

Les communications collectives. Caractéristiques. Communications dans un groupe de processus. Dans un communicateur donné.

Les communications collectives. Caractéristiques. Communications dans un groupe de processus. Dans un communicateur donné. Les communications collectives Communications dans un groupe de processus. Dans un communicateur donné. Trois sortes : Synchronisation globale MI_Barrier() Transferts de données : diffusion/collecte globale/sélective

Plus en détail

Aspects théoriques et algorithmiques du calcul réparti L agglomération

Aspects théoriques et algorithmiques du calcul réparti L agglomération Aspects théoriques et algorithmiques du calcul réparti L agglomération Patrick CIARLET Enseignant-Chercheur UMA patrick.ciarlet@ensta-paristech.fr Françoise LAMOUR franc.lamour@gmail.com Aspects théoriques

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Introduction to Parallel Programming with MPI

Introduction to Parallel Programming with MPI Introduction to Parallel Programming with MPI Master Modélisation et Simulation - ENSTA cours A1-2 Pierre Kestener pierre.kestener@cea.fr CEA-Saclay, DSM, France Maison de la Simulation MDLS, September,

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée ppd/mpassing p. 1/43 Programmation parallèle et distribuée Communications par messages Philippe MARQUET Philippe.Marquet@lifl.fr Laboratoire d informatique fondamentale de Lille Université des sciences

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014 Introduction aux algorithmes MapReduce Mathieu Dumoulin (GRAAL), 14 Février 2014 Plan Introduction de la problématique Tutoriel MapReduce Design d algorithmes MapReduce Tri, somme et calcul de moyenne

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

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

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Intégration et probabilités TD1 Espaces mesurés Corrigé

Intégration et probabilités TD1 Espaces mesurés Corrigé Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

Quantification Scalaire et Prédictive

Quantification Scalaire et Prédictive Quantification Scalaire et Prédictive Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 7 Décembre 2012 M. Cagnazzo Quantification Scalaire et Prédictive 1/64 Plan Introduction

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Grid Computing. Mihaela JUGANARU-MATHIEU mathieu@emse.fr 2014-2015. École Nationale Supérieure des Mines de St Etienne

Grid Computing. Mihaela JUGANARU-MATHIEU mathieu@emse.fr 2014-2015. École Nationale Supérieure des Mines de St Etienne Mihaela JUGANARU-MATHIEU mathieu@emse.fr École Nationale Supérieure des Mines de St Etienne 2014-2015 Bibliographie (livres et revues) : Frédéric Magoulès, Jie Pan, Kiat-An, Tan Abhinit Kumar Introduction

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

Plus courts chemins, programmation dynamique

Plus courts chemins, programmation dynamique 1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Introduction au Data-Mining

Introduction au Data-Mining Introduction au Data-Mining Gilles Gasso, Stéphane Canu INSA Rouen -Département ASI Laboratoire LITIS 8 septembre 205. Ce cours est librement inspiré du cours DM de Alain Rakotomamonjy Gilles Gasso, Stéphane

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Systèmes parallèles et distribués

Systèmes parallèles et distribués Systèmes parallèles et distribués Grégory Mounié 2013-12 Grégory Mounié Systèmes parallèles et distribués 2013-12 1 / 58 Outline 1 Introduction 2 Performances 3 Problèmes du calcul parallèle 4 Intergiciels

Plus en détail

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Continuité et dérivabilité d une fonction

Continuité et dérivabilité d une fonction DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Agrégation des portefeuilles de contrats d assurance vie

Agrégation des portefeuilles de contrats d assurance vie Agrégation des portefeuilles de contrats d assurance vie Est-il optimal de regrouper les contrats en fonction de l âge, du genre, et de l ancienneté des assurés? Pierre-O. Goffard Université d été de l

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Introduction au Data-Mining

Introduction au Data-Mining Introduction au Data-Mining Alain Rakotomamonjy - Gilles Gasso. INSA Rouen -Département ASI Laboratoire PSI Introduction au Data-Mining p. 1/25 Data-Mining : Kèkecé? Traduction : Fouille de données. Terme

Plus en détail

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Etude d Algorithmes Parallèles de Data Mining

Etude d Algorithmes Parallèles de Data Mining REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR, DE LA TECHNOLOGIE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE DE TUNIS ELMANAR FACULTE DES SCIENCES DE TUNIS DEPARTEMENT DES SCIENCES DE L INFORMATIQUE

Plus en détail

INFO-F-404 : Techniques avancées de systèmes d exploitation

INFO-F-404 : Techniques avancées de systèmes d exploitation Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI.

Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de l Environnement AMPI. Facultés Universitaires Notre-Dame de la Paix, Namur Institut d Informatique Année académique 2003-2004 Équilibrage Dynamique de Charge pour des Calculs Parallèles sur Cluster Linux - Une Évaluation de

Plus en détail

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

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

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

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

1 - PRESENTATION GENERALE...

1 - PRESENTATION GENERALE... Contenu PREAMBULE... 2 INTRODUCTION... 2 1 - PRESENTATION GENERALE... 4 Qualité et optimalité... 8 2 - AGREGATION AUTOUR DE CENTRES MOBILES... 9 2.1 LES BASES DE L'ALGORITHME... 10 2.2 TECHNIQUES CONNEXES...

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES Dominique LAFFLY Maître de Conférences, Université de Pau Laboratoire Société Environnement Territoire UMR 5603 du CNRS et Université de Pau Domaine

Plus en détail

Intégration de la dimension sémantique dans les réseaux sociaux

Intégration de la dimension sémantique dans les réseaux sociaux Intégration de la dimension sémantique dans les réseaux sociaux Application : systèmes de recommandation Maria Malek LARIS-EISTI maria.malek@eisti.fr 1 Contexte : Recommandation dans les réseaux sociaux

Plus en détail

Chp. 4. Minimisation d une fonction d une variable

Chp. 4. Minimisation d une fonction d une variable Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie

Plus en détail

Certificat Big Data - Master MAthématiques

Certificat Big Data - Master MAthématiques 1 / 1 Certificat Big Data - Master MAthématiques Master 2 Auteur : Sylvain Lamprier UPMC Fouille de données et Medias Sociaux 2 / 1 Rich and big data: Millions d utilisateurs Millions de contenus Multimedia

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail