INF442 : Traitement des données massives
|
|
- Christian Roux
- il y a 8 ans
- Total affichages :
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 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étailObjectifs. 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étailLa 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étailPlan 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étailInitiation 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étailCours 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étailMé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étailIntroduction 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étailMPI-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étail1. 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étailParallé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étailPré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étail03/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étailGrandes 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étailExclusion 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étailBig 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étailINITIATION 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étailTable 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étail4 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étailLes 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étailAspects 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étailLes 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étailTP 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étailIntroduction 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étailJava 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étailProgrammation 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étailCours 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étailCours 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étailBig 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étailChapitre 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étailIntroduction 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étailChapitre 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étailCommunications 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étailArbres 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étailInté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étailChapitre 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étailM2-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étailArgument-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étailARBRES 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étailQuantification 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étailAlgorithmique 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étailGrid 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étailLe 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étailas 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étailCompilation (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étailLes 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étailCours 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étailCours 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étailExercices 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étail1/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étailGé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étailCours 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étailArchitecture 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étailUE 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étailEPREUVE 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étailCours 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étailIntroduction 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étailL 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étailRappels 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étailPlus 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étailTP1 : 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étailIntroduction 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étail3 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étailPour 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étailSystè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étailProcessus! 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étailIntroduction à 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étailContinuité 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étailProgrammer 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étailAgré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étailCours 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étailIntroduction 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étailInitiation. à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étailMIS 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étailStructure 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étailEtude 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étailINFO-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étailCours 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étailUne 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étailAlgorithmique, 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étailProjet 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étailOptimisation 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étailInitiation à 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.
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étailInfo0804. 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étailCahier 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étailDé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étailIRL : 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étailIntroduction à 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étailExemples 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étail1 - 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étail1 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étailLES 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étailProgrammation 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étailPrincipe 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étailINTRODUCTION À 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étailInté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étailChp. 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étailCertificat 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étailLicence 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