Grid Computing. Mihaela JUGANARU-MATHIEU École Nationale Supérieure des Mines de St Etienne
|
|
|
- Roger Bernard
- il y a 10 ans
- Total affichages :
Transcription
1 Mihaela JUGANARU-MATHIEU École Nationale Supérieure des Mines de St Etienne
2 Bibliographie (livres et revues) : Frédéric Magoulès, Jie Pan, Kiat-An, Tan Abhinit Kumar Introduction to, CRC Press, 2009 Barry Wilkinson. Techniques and Applications, CRC Press, 2010 F.T. Leighton Introduction aux Algorithmes et Architectures Parallèles, Morgan Kaufmann, 1992 George S. Almasi, Allan Gottlieb Highly Parallel Computing, 2nd edition, The Benjamin/Cummings, 1994 Christian Lavault Evaluation des algorithmes distribués : Analyse, complexité, méthodes, Hermès, 1995 journal en ligne : International science grid this week, Mihaela JUGANARU-MATHIEU [email protected]
3 Déroulement du cours : cours magistral TD/TP : calcul parallèle - modèle PRAM, calcul distribué,,, Map Reduce et Hadoop
4 Plan 1 Introduction au 2 Management des données Allocation de charge Monitoring Sécurité et confiance 3 4 Mihaela Projets JUGANARU-MATHIEU [email protected]
5 (Grille Informatique) désigne l usage d une infrastructure distribuée et ouverte qui interconnecte diverses ressources informatiques et qui permet à faire du calcul et / ou du partage de données ou des ressources physiques.
6 Une ressources informatique désigne : un ordinateur mono ou multi processeur, téléphones mobiles, espaces de stockage... Les équipements appartiennent à des organisations (entreprises, universités,...) parfois géographiquement distantes qui se partagent les ressources. On parle d organisation virtuelle pour désigner l ensemble des ressources à disposition. La virtualisation pour un utilisateur désigne que sa tâche se réalise de manière transparente dans le réseau qui forme la Grid, sur un seul équipement ou sur plusieurs. La tâche demandée peut, à son tour, être traitée comme un ensemble de services réalisés de manière parallèle et / ou distribué.
7 Selon les 3 critères du selon Ian Foster : les ressources ne sont pas l object d un contrôle centralisé des protocoles et interfaces standard et ouverts sont utilisés doit délivrer une qualité de service non-trivial en terme de débit (throughput), temps de réponse, disponibilité, sécurité et/ou co-allocation des ressources multiples. Ian Foster What is the Grid? A Three Point Checklist Web Published,
8 Grid vs. Superordinateur Le calcul de haute performance (High Performance Computing HPC) se réalise sur le superordinateurs (au-delà de 10 3 processeurs contenus on parle de massivement parallèle). On mesure en Mips (Millions of Instructions Per Second) ou MFlops (Million of Floating point operation per second). Le contrôle y est centralisé et les processeurs sont reliés par un bus (ou autre type de réseau d interconnexion). Tendance actuelle : superordinateurs de TFlops et TBytes mémoire (exemple : 65 TFlops pour le NEC SX-8 en 2004, 839 TFlops pour le NEC SX-9 en 2011, jusqu à 141 TFlops par noeud pour NEC SX ACE en 2014).
9 Grid vs. Superordinateur Figure: La gamme NEC (Japon) Actuellement (décembre 2012) : 839 TFlops.
10 Grid vs. Superordinateur Figure: Superordinateur TITAN (US) chiffres novembre 2012 Chaque noeud de calcul dispose de 12 cœurs CPU et 12 cœurs GPU. La machine a aussi une baie de stockage de quelques 10PetaBytes. Localisation : Oak Ridge National Laboratory.
11 Grid vs. Superordinateur Le calcul haut débit (High Throughput Computing HTC) est plutôt la caractéristique des Grids. Une Grid (Grille) est utilisée pour des calculs intensifs et/ou pour le traitement et stockage des volumes importants de données. Domaines d application : calculs intensifs, bases de données, Machine Learning, Data Mining, IA..., SIG, météo (-) Domaine privilégié : animation graphique (3D) avec une Grid de processeurs graphiques (Grid of GPU).
12 Grid vs. Superordinateur Figure: Images réelles et représentations obtenues par simulation d un crash test d impact (par analyse d élément fini)
13 Grid vs. Superordinateur L architecture est souple, car pas centralisée, ce qui la rend tolérante aux pannes, disponible et robuste. Le principe de base de fonctionnement est celui de la répartition - répartition à grande échelle. La répartition est la mise à disposition d un ensemble de ressources et de services connectés via un réseau pour tous les usagers possédant un droit d accès en un point quelconque. Répartition vs. parallélisme Une Grid peut contenir comme noeuds : les postes de travail, des cluster, des serveurs puissants, des superordinateurs, des ressources variées.
14 Cluster Introduction au Le cluster (ferme de serveurs ou ferme de calcul) est à mi-chemin entre la Grid et les superordinateurs. Il s agit d un groupe de serveurs groupés physiquement et attaqués par des nœuds frontaux, autres nœuds composants le cluster : nœuds de calcul et nœuds de stockage.
15 Introduction au Proble matique spe cifique du Paradigmes du calcul paralle le Paradigmes du calcul distribue Desktop Grid Il s agit d une Grid forme e par des PC (usuellement utilise s a seulement 10% de leur capacite ). Certains syste mes d exploitation propose des outils de constitution de telles Grids.
16 Logiciel pour la Grid Deux besoins clairs : un logiciel d interface utilisateur qui permet d indiquer le traitement à réaliser et les besoins en ressources le middleware le software spécifique qui permet de réaliser concrètement le partage des ressources de la Grid. Exemples de middleware : Globus Toolkit, glite et UNICORE. Outils accessoires : surveillance de la Grid (charge, communication), I/O (récupération des résultats)
17 - vieille technologie Le est une technologie arrivée à maturité. Elle est basée sur : la philosophie du calcul parallèle et calcul distribué réseaux formats et protocoles ouverts
18
19 Parallélisme Introduction au Deux traitements se réalisent en parallèle quand ils s exécutent en même temps sur des CPU différentes. Une application est dite parallèle quand elle se compose de traitements parallèles et s exécute sur une architecture adéquate. On parle d algorithme parallèle quand on a besoin de plusieurs CPU pour le réaliser et d architecture parallèle quand on dispose de plusieurs CPU travaillent de manière indépendante, synchronisée ou non. Les traitements qui composent une application parallèle ne sont pas (toujours) indépendants : on partage des données où met-on les données partagées?
20 Classification de Flynn Selon Michel Flynn en 1966 : Flynn, M. (1972). Some Computer Organizations and Their Effectiveness. IEEE Transactions on Computers, Vol. C-21, No 948
21 Classification de Flynn S.I.S.D. : Single Instruction Single Data stream architecture monoprocesseur calculateur von Neumann conventionnel exemples : un PC mono-core, un serveur SUN, etc... S.I.M.D. : Single Instruction Multiple Data stream les processeurs exécutent de façon synchrone la même instruction sur des données différentes (e.g. éléments d un vecteur, d une matrice, d une image) une unité de contrôle diffuse les instructions
22 Classification de Flynn M.I.S.D. : Multiple Instruction Single Data stream ça n existe pas M.I.M.D. : Multiple Instruction Multiple Data stream plusieurs processeurs (à la rigueur hétérogènes) exécutent de façon asynchrone des instructions (même code ou code différent) sur des données différentes chaque processeur a sa propre unité de contrôle sa propre mémoire (registres, RAM) il y a ou pas une mémoire commune mémoire partagée (si il y a une mémoire commune) mémoire distribuée si aucun zone de mémoire n est commune
23 Programmation SIMD, MIMD Avantages du SIMD : Facilité de programmation et de débogage Processeurs synchronisés! coûts de synchronisation minimaux Une seule copie du programme Décodage des instructions simple Avantages du MIMD : Plus flexible, beaucoup plus général Exemples : mémoire partagée :, threads POSIX mémoire distribuée : PVM, (depuis C/C++/Fortran)
24 Programmation des architectures parallèles On utilise le plus souvent le paradigme SPMD : Single Program Multiple Data - un même code fonctionne sur plusieurs unités de calcul. On utilise également (plus difficile à programmer) le mode MPMD : Multiple program Multiple Data, néanmoins il n y a jamais un code différent sur chaque unité, les programmes sont dupliqués.
25 Speed-up Introduction au Soient les notations suivantes : T 1 le temps d exécution en mode séquentiel sur un seul processeur T n le temps d exécution sur une architecture parallèle avec n processeurs Le speed-up se défini comme : speedup = T 1 T n Bien évidement speedup < n. Très peu d applications ont le rapport speedup proche de 1 n (quelques application de traitement d image on ce ratio autour de 95%).
26 Loi d Amdahl Soient encore les notations : f la fraction du programme séquentiel qu on peut paralléliser S n le speed-up pour n processeurs O l overhead = temps de communication entre processeurs, de synchronisation, autres... Dans une approche purement théorique : O = 0 et T n = (1 f )T 1 + ft 1 n S n = n 1 + (1 f )n
27 Loi d Amdahl On déduit : En réalité O 0 S < 1 1 f S n = T 1 (1 f )T 1 + ft 1 p + O
28 Mémoire partagée la communication entre processeurs se fait par ce biais besoin de protocole/méthode d accès à la mémoire partagée en cas de consultation simultanée (lecture/écriture) s il y a réplication de l information partagée dans les caches problème de cohérence espace d adressage grand
29 Mémoire distribuée les processeurs communiquent exclusivement par envoi de messages synchronisation plus difficile Fonctionnement similaire aux architectures distribuées.
30 Une application distribuée se définit comme une application qui a besoin pour être réalisée des ressources physiquement distinctes. Une architecture distribuée est une entité de traitement composée des éléments de calcul, de stockage et réseau physiquement distincts. Trois types de besoins générant applications distribuées : travail collaboratif calcul volume très important des données (exemple - base de données distribuée)
31 Application distribuée Une application distribuée se compose d unité de traitement communicantes. Les flèches indiquent la direction des communication entre les unités de traitement, communément appelés processus.
32 Application distribuée Le fonctionnement d un programme séquentiel est déterministe, mais pour une application distribuées ce n est pas le cas. L ordre de délivrance des messages n est pas garanti en général, des mécanismes d estampillage (ou autres), doivent être mis en place. La complexité d un algorithme séquentiel s exprime en fonction du temps et de l espace mémoire utilisé, la complexité d une algorithme distribué s exprime en temps, espace et en nombre de messages Mihaela JUGANARU-MATHIEU échangés. [email protected]
33 Algorithmique distribuée Les problèmes spécifique à ce mode de fonctionnement : Temps et état dans un système réparti : datation, observation, mise au point, synchronisation. Algorithmes de base des systèmes répartis (élection, terminaison, etc) : gestion de groupes, calcul réparti. Tolérance aux fautes, diffusion fiable, gestion de groupes : serveurs fiables, gestion de copies multiples. Consensus et validation : service de consensus, transactions réparties. Gestion répartie de l information : cohérence de caches, objets répartis
34 Introduction au - Message Passing Interface C est une API standard apparue en 1994, qui permet de réaliser dans des langages de haut niveau (FORTRAN, C, C++, Python, Java) des programmes parallèles basés sur l échange des messages. (exemples - libraires mpi.h ou mpif.h) offre donc la possibilité d écrire du code dans le langage de son choix et faire appel aux fonctions de l API pour réaliser la partie communication. Il n y a pas de mémoire globale.
35 Introduction au est utilisé autant pour la programmation parallèle en mode SPMD, que en mode MIMD (MPMD - Multiple Program Multiple Data), que pour l écriture des applications distribuées. Il y a des implémentations gratuites de : Open, LAM/ et CH (historique), la plupart des fabricants offrent des implémentations plus performantes payantes. C est devenue de facto un standard. Depuis 1997 la version -2 qui permet en plus entre autres des opération d entrée/sortie et la gestion dynamique des processus.
36 Introduction au Un message est constitué de paquets de données transitant du processus émetteur au(x) processus récepteur(s). En plus des données (variables scalaires, tableaux, etc.) à transmettre, un message doit contenir les informations suivantes : l identificateur du processus émetteur l identificateur du processus récepteur le type de la donnée sa longueur Une application est formée par un ensemble de processus communicants, chaque processus est capable d envoyer, recevoir et traiter les messages.
37 - initialisations En un programme correspond à un ensemble de processus capable de communiquer ensemble - cet ensemble forme un communicateur. Chaque processus a un numéro d ordre unique au sein du communicateur qui est son identifiant. Initialement chaque processus fait appel à une fonction d initialisation de l environnement, puis détecter son communicateur et son identifiant. INIT(&argc, &argv) et FINALIZE() permettent d initialiser/arrêter l environnement. La variable globale COMM WORLD indique le communicateur.
38 - initialisations Les fonctions : COMM SIZE ( COMM WORLD,nb procs,code) fournit le nombre de processus dans le communicateur COMM RANK ( COMM WORLD,rang,code) fournit de rang du processus Ces deux fonctions apparaissent toute de suite après le INIT.
39 - type de données On peut utiliser les types standard (entier, virgule flottante, etc) ou définir ses propres types de données : vecteur, composé, etc. Néanmoins il est préférable d utiliser les types redéfinis :
40 Introduction au Les communications point à point se réalisent avec SEND, RECV, SENDRECV. Les communications collectives : BCAST pour la diffusion GATH pour le gathering (opération inverse de la diffusion) pour de sommes, produits et autres opérations avec une opérande venant de chaque processus : SUM, PROD, MAX... La synchronisation : BARRIER(no communicateur).
41 Exemple de programme FORTRAN / - source IDRIS
42 Programme C- qui réalise un anneau de processus communicants /* C Example */ #include <stdio.h> #include <mpi.h> # define TAG 9090 int main (argc, argv) int argc; char *argv[]; { int rank, size; int next, prev, message, message_recu; _Init (&argc, &argv); /* starts */ _Comm_rank (_COMM_WORLD, &rank); /* get current process id */ _Comm_size (_COMM_WORLD, &size); /* get number of processes */ /* printf( "Hello world from process %d of %d\n", rank, size ); */ next = (rank + 1) % size; prev = (rank + size - 1) % size;
43 Programme C- qui réalise un anneau de processus communicants (suite) if (rank ==0) { message = rank ; _Send(&message, 1, _INT, next, TAG, _COMM_WORLD); _Recv(&message, 1, _INT, prev, TAG, _COMM_WORLD, _STATUS_IGNORE); message_recu = message; } else { _Recv(&message, 1, _INT, prev, TAG, _COMM_WORLD, _STATUS_IGNORE); message_recu = message; message = message + rank; _Send(&message, 1, _INT, next, TAG, _COMM_WORLD); } printf(" Je suis le processus %d et j ai recu la valeur %d du process %d\n", rank, message_recu, prev); _Finalize(); return 0; }
44 Attention à l ordre d écriture des opération de lecture-écriture (envoi/réception)! Il faut veiller à éviter d écrire du code bloquant! Par exemple un circuit d attente se forme entre les processus de l application. On parle de l interblocage. Exemple : si on inverse l ordre des opérations sur le processus 0, on arrive dans un interblocage, car tous les processus attendent de leur voisin une valeur qui n arrivera jamais.
45 Les communications sous sont de type point à point ou de type global et toujours asynchrone. On peut choisir entre : communications bloquantes : Send et Recv - tant que le message envoyé n est pas reçu la fonction Send n est pas terminé. communication non-bloquantes : ISend et IRecv
46 Les communications globales sont toujours bloquantes. Parmi les fonctions classiques : Bcast (la diffusion one to all), Gather (la concentration - all to one) et Allgather (all to all)
47 Les fonctions globales de type communications - calcul :
48 Syntaxe fonctions de communication int _Send(void *smessage, int count, _Datatype datatype, int dest, int tag, _Comm comm) smessage est l adresse du buffer mémoire à envoyer, ce buffer contient count valeurs de type datatype. L envoi est à destination du processus de numéro dest. Cette communication est faite dans le communicateur comm. La valeur tag permet de distinguer (différencier) plusieurs messages entre deux mêmes processus. int _Recv(void *rmessage, int count, _Datatype datatype, int source, int tag, _Comm comm, _Status *status) status est une structure avec les information de synthèse sur le déroulement de l envoi.
49 Syntaxe fonctions de communication (2) int _Sendrecv (void *sendbuf, int sendcount, _Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, Datatype_recvtype, int source, int recvtag, _Comm comm, _Status *status) C est une fonction qui combine l envoi et la réception de message entre 2 processus (chacun est émetteur et récepteur).
50 Syntaxe fonctions de communication (3) int _Bcast (void *message, int count, _Datatype type, int root, _Comm comm) La fonction de diffusion est réalisée par le processus de numéro root. Le contenu du buffer message sera connu par tous les autres processus.
51 Syntaxe fonctions de communication (4) int _Gather(void *sendbuf, int sendcount, _Datatype sendtype, void *recvbuf, int recvcount, _Datatype recvtype, int root, _Comm comm) Cette opération dite de concentration (inverse de la diffusion) consiste dans l envoi du contenu du buffer sendbuf par tous les processus sauf root dans la position adéquate du buffer recvbuf.
52 Exemple d usage de broadcast et gathering On diffuse à tous les processus la base b d un logarithme et on concentre au niveau du processus 0 la valeur du logarithme en base b du numéro de chaque processus : int main(int argc, char *argv[]) { int base; float tt; int rank, size; int i; float *buf_tt; _Init (&argc, &argv); /* starts */ _Comm_rank (_COMM_WORLD, &rank); /* get current process id */ _Comm_size (_COMM_WORLD, &size); /* get number of processes */ printf(" processus %d parmi %d\n", rank, size); _Barrier(_COMM_WORLD); if (rank == 0) { printf(" Indiquez la base du logarithme :\n"); scanf("%d", &base); buf_tt = (float *) malloc(size * sizeof(float)); if (buf_tt == NULL) printf(" Problème d allocation!\n"); Mihaela } JUGANARU-MATHIEU [email protected]
53 _Bcast(&base, 1, _INT, 0, _COMM_WORLD); if (rank!= 0) tt = log(rank)/log(base); _Gather(&tt, 1, _FLOAT, buf_tt, 1, _FLOAT, 0, _CO if (rank == 0) for (i = 1; i < size; i++) printf("de la part du P%d on a recu %f\n", i, buf_tt[i] } _Finalize(); return 0;
54 Exécution du code On lance les processus avec l une des commandes (équivalentes) : mpiexec -n nb-proc program-name program-arguments mpirun -np nb-proc program-name program-arguments Si le système à disposition est parallèle (plusieurs coeurs), on lance les processus sur des unités de calcul différentes.
55 Exécution code (2) Sur une architecture distribuée on peut lancer des processus sur des noeuds différents : mpirun -H nodex,nodey... executable les noeuds peuvent se répéter, on crée autant de processus que des noeuds mpirun -H nodex,nodey... -np N executable on crée N processus distribués par Open sur les noeuds de la liste. il est possible et souhaitable d indiquer un fichier de configuration : myhost
56 Exécution code (3) Exemple : >more myhostfile node01 slots=2 node02 slots=4 Usage : mpi -hostfile myhost executable mpi -hostfile myhost -np N executable mpi -hostfile myhost -np N -loadbalance executable on crée soit N processus, soit le nombre de slots indiqué (la somme) dans le fichier de configuration. La distribution peut aussi se faire de manière équilibréeé.
57 Programmation hybride Il est possible de mélanger les deux styles de programmation et ainsi au niveau d un processus on peut générer des threads ( ou POSIX).
58 Introduction au (Open Multiprocessing) est une API qui permet de travailler en mode mémoire partagée en utilisant des threads et/ou en exploitant le parallélisme à grain fin Proposé en 1997 est toujours et toujours actualisé ( Architecture Review Board) Répandu en milieu industriel Contient des : directives, librairies runtime et variables d environnement Code facile à lire et portage du code séquentiel code parallèle très rapide
59 - concepts Un programme est un seul processus (maà R tre) qui peut engendrer des threads (tâches) qui s exécutent en parallèle. Figure: Source :
60 - concepts Chaque thread se voir nommer par un numéro d ordre. L ordre des threads est aléatoire, le processus maà R tre est toujours le premier thread. Dans une région avec les threads parallèles les variables devient : partagées (shared) ou internes (private) selon des déclarations explicites. On peut définir des priorités pour la lecture/écriture concurrente. On implémente aussi des notions de priorité, attente, flush, synchronisation,...
61 - implémentation est implémenté dans beaucoup de languages de programmation (Fortran, C, C++). Les versions relativement récentes de gcc l implémente. La compilation se réalise avec : gcc -fopenmp prog.c -o... Les directives sont de forme : # pragma omp...
62 - parallélisation à grain fin Avec la directive parallel : int main(int argc, char *argv[]) { const int N = ; int i, a[n]; #pragma omp parallel for for (i = 0; i < N; i++) a[i] = 2 * i; } return 0;
63 - programme Hello, world! #include <omp.h> #include <stdio.h> #include <stdlib.h> int main (int argc, char *argv[]) { int nthreads, tid; /* Fork a team of threads giving them their own copies of variables */ #pragma omp parallel private(nthreads, tid) { /* Obtain thread number */ tid = omp_get_thread_num(); printf("hello World from thread = %d\n", tid); /* Only master thread does this */ if (tid == 0) { nthreads = omp_get_num_threads(); printf("number of threads = %d\n", nthreads); } } /* All threads join master thread and disband */ }
64 - programme Hello, world! - version avec une variable partagée int main (int argc, char *argv[]) { int nthreads, tid; /* Fork a team of threads giving them their own copies of variables */ #pragma omp parallel default(shared) private(tid) { /* Obtain thread number */ tid = omp_get_thread_num(); printf("hello World from thread = %d\n", tid); /* Only master thread does this */ if (tid == 0) { nthreads = omp_get_num_threads(); printf("number of threads = %d\n", nthreads); } #pragma omp barrier /* All threads access this information */ printf("i m thread=%d and I see num_threads=%d\n", tid, nthreads); } /* All threads join master thread and disband */ }
65 - On forme un anneau de thread et on transmet une valeur à son voisin int main (int argc, char *argv[]) { int nthreads, tid, value; int n= 10, a[10]; int next, prev; int N; N = atoi(argv[1]); /* Variable number of threads */ #pragma omp parallel shared(nthreads, n,a) private(next, prev, value, tid) num_threads(n) { /* Obtain thread number */ tid = omp_get_thread_num(); nthreads = omp_get_num_threads(); #pragma omp barrier /* Only master thread does this */ if (tid == 0) { printf("number of threads = %d\n", nthreads); if (nthreads > n) { printf(" Nb Thread = %d greater than %d nb of shared memory cells.\n", nthreads, n); exit(0); } }
66 - On forme un anneau de thread et on transmet une valeur à son voisin #pragma omp barrier /* Generate random value */ value = rand() % 25; printf("value from % d = %d\n", tid, value); prev = (tid + nthreads - 1) % nthreads; next = (tid + 1) %nthreads; a[next] = value; #pragma omp barrier printf(" proc %d received from %d value = %d\n", tid, prev, a[tid]); } } /* All threads join master thread and disband */ La directive barrier indique un point de synchronisation (join pour les threads). En absence des ces points de synchronisations les valeurs obtenues seraient incohérentes et l exécution sera non-déterministe.
67 Management des données Allocation de charge Monitoring Sécurité et confiance 1 Introduction au 2 Management des données Allocation de charge Monitoring Sécurité et confiance 3 4
68 Management des données Allocation de charge Monitoring Sécurité et confiance Problématique : types de données à gérer aspect transactionnel accès concurrent Solutions : protocoles adaptés, algorithmes spécifiques (distribués)
69 Management des données Allocation de charge Monitoring Sécurité et confiance Management des données Les Grids sont typiquement de deux sortes : grilles de calcul : dédiées à faire des calculs intensifs grilles de données : dédiées plus au stockage et au traitement de données Le management de données concerne plutôt les grilles de données. Les données à gérer sont hétérogènes (format, taille, usage) et dynamiques pour la plupart.
70 Management des données Allocation de charge Monitoring Sécurité et confiance Grid Base de données distribuées Une grille de données aura une problématique encore plus lourde à gérer qu un système de gestion de base de données distribué (SGBD D), parce que : les SGBD D ont un contrôle complet sur toutes les données existantes, le contrôle n est que partiel en Grid les données sont en format unitaire (unique) et de taille prévisible en BD D, mais en Grid les données sont complètement hétérogènes opération de même type dans la BD D : insert, delete, update le SGBD D peuvent s implémenter sur une Grid
71 Management des données Allocation de charge Monitoring Sécurité et confiance Données statiques - données dynamiques Les données d une Data Grid peuvent être : statiques - étant générées puis gardées dans la Grid sans (ou avec très peu de) changements exemples : données de type ADN, archives numériques d un journal, collections de test mis en partage dynamiques - subissant des modifications (et mises de jour) fréquentes exemple : les données d une plateforme de e-business Les opérations sont relativement simples sur les données statiques et deviennent beaucoup plus complexes sur données dynamiques.
72 Management des données Allocation de charge Monitoring Sécurité et confiance Données statiques - données dynamiques Les opérations sur les données statiques sont simples : une seule écriture (lors de la création) lecture depuis plusieurs endroits Les opérations sur les données dynamiques sont (liste non-exhaustive) : mises à jour (update) lectures/écritures concurrentes transaction intégration avec un système extérieur synchronisation car possibles répliques dans le Grid
73 Management des données Allocation de charge Monitoring Sécurité et confiance Problème d adressage Les données d une Grid sont normalement disséminées dans divers systèmes de gestion de fichier ou SGBD. Il est fort possible de réaliser des copies (semblable au système de cache) pour placer de copies répliques de données afin de minimiser le temps d accès et le trafic réseau. Autant pour les données statiques que dynamiques un problème est commun et crucial : l adressage - trouver où la données est gardée (l endroit le plus convenable pour y accéder s il y a des répliques). De toute manière les applications/utilisateurs doivent pouvoir accéder aux données indépendamment de leur format ou taille et indépendamment de l implémentation des ressources. Il s agit d assurer l accès unitaire.
74 Management des données Allocation de charge Monitoring Sécurité et confiance Fonctionnalités du système du système de gestion de données gestion des répliques gestion des méta-données transfert des données service de stogkage et accès traitement correct des transactions intégration
75 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion des répliques Le service de gestion des répliques (Replication Management Service - RMS) doit réaliser : Créer au moins une réplique de l ensemble des données ou, au moins, d une partie Gestionner les répliques : ajouter, effacer ou modifier Enregistrer toute nouvelle réplique Garder le catalogue des répliques enregistrées de manière à permettre aux utilisateurs d interroger puis d accéder aux répliques Sélectionner la réplique optimale pour un utilisateur (optimalité jugée selon l exécution de l application de l utilisateur) Assurer automatiquement la consistance des répliques pour le même ensemble des données quand celui-ci change
76 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion des méta-données Les méta-données (les informations descriptives sur les données catalogue ) concernent les informations générales de toute données de la grille, mais aussi sur la grille elle-même,le utilisateurs, etc... Trois types principaux de méta-données : information système = information sur la Grid elle même : capacités de stockage de chaque ressource, modalités d accès depuis internet, l état de ressources (actives/en attente), politique d usage de réplication = information sur les répliques avec le mapping entre les données logiques et leur copies physiques information d application = information définie par la communauté sur le contenu et la structure de données, des détails sémantiques sur les éléments qui la composent, les Mihaela circonstances JUGANARU-MATHIEU d obtention [email protected]
77 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion des méta-données Autre classification des méta-données selon l objet concerné : méta-données sur les données - il s agit de : informations physiques : localisation, taille, propriétaire, format, type de ficher information de réplication information de domaine : attribut des données utilisés dans un domaine (d application ou utilisateur) et aussi les relations entre domaine méta-données sur les ressources - informations sur les ressources physiques et logiques ; seront utilisées lors de la création, la sauvegarde et le transfert des données
78 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion des méta-données méta-données sur les utilisateurs (un utilisateur est celui qui crée, modifie et efface les données et les méta-données) - données classiques d identification (nom, adresse, password, droits d accès et d usage) et aussi des attributs domaine pour identifier l organisation à laquelle il appartient et groupe. méta-données sur les applications - informations sur le contenu des données générées par les application, type des annotations éventuelles, procédures et traitements appliqués en entrée/sortie (utilisées surtout pour les applications composites)
79 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion des méta-données Les méta-données sont très importantes pour : retrouver, localiser, accéder et gestionner la donnée désirée. Les méta-données peuvent concerner les méta-données elles-mêmes et sont aussi sujet à la réplication. Plus en détail : les méta-données intéressent autant l utilisateur, que les autres service de gestion de données, que les application. Elles sont, généralement, implémentées sous la forme d une base de données relationnelle ou de documents XML. Le format XML demeure plus souple vis-à-vis de l interfaçage éventuel avec d autre application et services (y compris des Web Services) et a le statut de format ouvert.
80 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion des méta-données Deux composants importants du service de gestion des méta-données : service de stockage : qui assure, en plus du stockage effectif des méta-données, la gestion des ses propres répliques service de publication et découverte (publication and discovery service) publication : permet l accélération de l association entre un élément (des éléments) descriptif de la données et ses autres caractéristiques découverte : permet l identification de la donnée qui intéresse le service assure les deux fonctionnalités, il est possible d obtenir schémas (graphiques) généraux et statistiques permet aussi d ajouter des annotations, de les instancier et d utiliser ses annotations
81 Management des données Allocation de charge Monitoring Sécurité et confiance Transfert des données Les données et les applications se trouvant et s exécutant dans un environnement distribués et faiblement couplé il est impératif d assurer dans les meilleurs conditions le transfert des fichiers. Les caractéristiques du transfert dans une Grid : transfert à haute vitesse découpage en paquets (stripped data transfer) possibilité de transfert partiel transfert sous le contrôle d un tiers (third-party control of transfer) transfert re-initialisable (restartable transfer)
82 Management des données Allocation de charge Monitoring Sécurité et confiance Transfert des données Techniquement le tranfert se réalise avec FTP ou avec GridFTP. GridFTP est un protocole basé sur FTP et adapté aux réseaux avec une bande passante importante et une large étendue il intègre le GSI (Grid Security Infrastructure) et KERBEROS (cryptage et authentification) il offre découpage des paquets, le contrôle d un tiers transferts à points de reprise et tolérants aux fautes négociation préalable en TCP sur la taille des paquets
83 Management des données Allocation de charge Monitoring Sécurité et confiance Transfert des données Modes de transfert adaptés au fonctionnement d une Grid : transfert en co-allocation (Co-Allocation Data Transfer) - le message à transmettre, qui est souvent une donnée répliquée, est découpé en paquets et chaque paquet peut être envoyé depuis des sites de réplication distinct vers la destination. Deux mécanismes stateless allocation / stateful allocation qui prennent en compte ou pas l état du réseau Peer-to-Peer Data Sharing
84 Management des données Allocation de charge Monitoring Sécurité et confiance Traitement des transactions Une transaction est un ensemble d opérations de lecture/écriture sur un ensemble de données qui doit se réaliser comme une unique opération en laissant les données (la base de données) dans un état cohérent. Propriétés d une transaction (ACID) : atomicité : les opérations d une transaction sont exécutées comme une unique opération consistance : la base reste dans un état cohérent à la fin de la transaction isolation : la transaction s exécute indépendamment d autres opérations sur la base durabilité : les mises à jour d une transaction sont définitives
85 Management des données Allocation de charge Monitoring Sécurité et confiance Traitement des transactions Dans un environnement distribué et étendu comme une Grid les transactions sur des objets distants sont difficiles à mettre en œuvre car les accès ne sont pas centralisés. On rajoute à cela le problème de la synchronisation des répliques. Dans une BD classique (centralisée) on a majoritairement des transactions à une seule phase avec un unique verrou sur les données concernées (tables entières, enregistrement ou champ) et le relâche en fin de transaction. En environnement distribué on utilise diverses techniques : verrouillage à deux ou trois phases, estampillage, réalisation par agent, etc, mais on ne peux pas assurer toujours toutes les propriétés de la transaction ou parfois on peut générer un inter-blocage.
86 Management des données Allocation de charge Monitoring Sécurité et confiance Traitement des transactions Un verrouillage à deux phases peut assurer la cohérence mais il engendre des temps d attente très (trop) longs. La principe : une phase où la transaction pose les verrous dont elle a besoin une phase où la transaction retire tous les verrous sans en poser de nouveaux
87 Management des données Allocation de charge Monitoring Sécurité et confiance Synchronisation des données Si les données sont uniquement en lecture le problème de la cohérence des répliques ne se pose pas (on lit la même donnée). Les répliques servent en lecture et aussi en écriture. En cas d écriture, il y a le risque d écrire sur les répliques différentes d une même donnée. Toute écriture devrait s assurer de l exclusivité de l accès à la donnée. Le consistance des répliques d une même données peut s évaluer sur 5 niveaux de -1 à 3 : -1 : possibilité des fichiers inconsistants (aucune synchronisation, même au niveau de la même ressource) 3 : toutes les répliques sont identiques pour toute donnée La mise en œuvre dépend du middleware.
88 Management des données Allocation de charge Monitoring Sécurité et confiance Gestion de stockage et d accès aux données La gestion de stockage et d accès aux données est une une composante essentielle de la gestion globale des données dans une Grid. Pratiquement elle est implémentée de manière très diverse d un middleware à un autre. La plupart des DFS (Distributed File System) sont basé sur le principe de la représentation arborescente de l ensemble de fichiers de la Grid.
89 Management des données Allocation de charge Monitoring Sécurité et confiance Intégration des données L intégration a pour but de collecter et combiner les données depuis plusieurs sources afin d en offrir une vue uniforme. L intégration se compose d une succession de pas : découverte, accès, transport (transfert), analyse et synthèse. Elle se base autant sur le service de réplication, que sur le service de méta-données, que sur le service de stockage. Il est fort probable que lors de la phase d analyse les données s avèrent ayant des formats différents. L analyse des données peut être faite au niveau statistique et au niveau sémantique.
90 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge L allocation de charge est un module qui réalise une association entre les demandes de l utilisateur (de traitement et de données) et des ressources présentes dans le Grid. On indique donc quelle ressource est associée à quelle demande. L allocation de charge peut se faire de manière : statique : lors de la phase d initiation du travail : on décide du placement unique et définitif de chaque tâche dynamique : on décide lors de l exécution soit d un nouveau placement des tâches existantes, soit du placement des nouvelles tâches apparues (si application dynamique) Termes utilisés : allocation de charge = placement = scheduling.
91 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge La régulation de charge est un module (optionnel) qui est capable de transmettre à d autres ressources una partie de sa charge Une allocation dynamique de charge est dite efficace si le temps pris par l allocation (information, décision, transfert) est couvert par de gain de temps obtenu dans la réalisation de l application. T execution avec allocation dynamique +T allocation dynamique < T execution sans allocation dynamique Termes utilisés : régulation de charge = ré-équilibrage de charge = load balancing. charge = load, tâche = task / job
92 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge La distribution de charge est un cas particulier de régulation qui vise à assurer qu l n y a pas de ressources non utilisées. Difficultés de l allocation de charge : allocation statique : problème difficile (NP-complet) pour des demandes non-homogènes et plus de 2 ressources demandés, plusieurs critères à optimiser (temps d exécution, temps de transfert, temps de communication (throughput) pendant l application) information précise et cohérente sur la charge des ressources cible pour le régulation de charge et l allocation des application dynamique l allocation dynamique / régulation se font sur la base d une information partielle et indépendamment d autre éventuelle demande de même type
93 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge Algorithmes pour la résolution de l allocation statique : par partitionnement (bi-partitionnement) recherche itérative : permutation aléatoire jusqu à minimum local application des algorithmes de type recuit simulé, recherche tabou, algorithme génétique Pour l allocation dynamique (et régulation de charge) on a : mécanismes de : initiation (le moins chargé / le plus chargé), information (services de monitoring ou informations collectées à la demande) et décision (sur sa propre information de charge et celles collectées) stratégie - comment faire?
94 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge Les stratégies possibles d allocation dynamique et régulation : choix aléatoire de la destination (souvent pris comme référence de comparaison) choix de la cible avec les meilleurs possibilités affichées (conflits possibles) par collecte d information élargie (sous-partie de Grid) et heuristiques spécifiques par diffusion avec les voisins directs
95 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge avec des contraintes de données Si les tâches font appel à des données avec réplication, la politique d allocation doit en tenir compte. Un services d allocation dans un environnement faiblement couplé sera composé de : External Scheduler (ES) : chaque site contient un ES où les utilisateurs soumettent leurs tâches. On doit connaitre la charge sur les site distant et l adresse des données Local Scheduler (LS) : pour chaque tâche envoyé depuis un site distant le LS lui affecte une ressource locale ; il a également une vision complète de son propre domaine Dataset Scheduler (DS) : garde des information sur la popularité des données locales et peut les transmettre au service de réplication en lui demandant aussi des nouvelles Mihaela répliques. JUGANARU-MATHIEU [email protected]
96 Management des données Allocation de charge Monitoring Sécurité et confiance Allocation de charge avec des contraintes de données Les stratégies utilisées par le ES : JobRandom, JobLeastLoaded, JobDataPresent et JobLocal. Les stratégies employées par le DS : DataDoNothing - aucune réplique demandée DataRandom - si le seuil d accès est dépassé on demande une réplication sur un site aléatoire DataLeastLoaded - si besoin est de réplication celle-ci se fait sur le site le moins chargé
97 Management des données Allocation de charge Monitoring Sécurité et confiance Monitoring Le service de monitoring ou service d information est censé collecter, traiter et mettre à disposition des informations physiques et logiques sur les ressources physiques de la Grid : unités de calcul, réseau, stockage, périphériques, etc... Le service de monitoring a une tâche complexe car les informations traitées doivent être de qualité et celles-ci périment vite la collecte des informations doit se faire en respectant les règles d authentification et d autorisation les informations synthétiques fournies se font aussi en authentifiant le demandeur les information traitées
98 Dans une Grid on fait fonctionner le principe de la délégation Introduction au Management des données Allocation de charge Monitoring Sécurité et confiance Authentification, autorisation et contrôle d accès Dans une Grid l authentification, l autorisation des utilisateurs et le contrôle d accès doivent prévenir l utilisation abusive/malveillante de ressources et les problèmes de sécurité. Authentification = on identifie un utilisateur comme étant bien quelqu un qui a un droit dans la Grid. Autorisation = on identifie si un utilisateur a un droit sur une ressource. L accès d un utilisateur à une donnée lui ouvre automatiquement le droit d accès à toutes les répliques. Pour cette raison les répliques sont disséminées dans des nœuds proches du nœud d accès de l utilisateur.
99 Management des données Allocation de charge Monitoring Sécurité et confiance GSI Grid Security Infrastructure (GSI) est une infrastructure basée sur la notion de clé privé / clé publique et celle de signature électronique. La connexion se fait SSO (Sigle Sign-On) et un certificat est délivré. Ce certificat contient un clé publique et Une relation de confiance s établit d amblé avec les proxies de la Grid. Le certificat devient délégable surtout au niveau des proxies. Il est possible aussi de mettre en place des clés privées (délégables aussi).
100 Globus glite UNICORE
101 Globus Middleware réalisé au fil du temps suite à un projet de recherche académique aux Etats Unis, nouvelle récente : Announcing Release of GT
102 Globus - ses standards Open Grid Services Architecture (OGSA) Open Grid Services Infrastructure (OGSI) Web Services Resource Framework (WSRF) Job Submission Description Language (JSDL) Distributed Resource Management Application API (DRMAA) WS-Management WS-BaseNotification SOAP WSDL Grid Security Infrastructure (GSI)
103 Globus Les services essentiels qui le composent : gestion de ressources : Grid Resource Allocation & Management Protocol (GRAM) service de monitoring : Monitoring and Discovery Service (MDS) service de sécurité : Grid Security Infrastructure (GSI) service de gestion et mouvement de données : Global Access to Secondary Storage (GASS) and GridFTP
104 Globus
105 Globus - le scheduler
106 projet ( ) - calcul distribué projet européen DataGrid ( ) : projet européen GRID-TLSE ( ) - algèbre des matrices creuses divers projets aux Etats Unis (cf. Conférence oct de Barry Wilkinson)
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
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
3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. [email protected] http://www.metz.supelec.
3A-IIC - Parallélisme & Grid Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle Principes et Objectifs Evolution Leçons du passé Composition d une Grille Exemple d utilisation
Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing
Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud Grid and Cloud Computing Problématique Besoins de calcul croissants Simulations d'expériences coûteuses ou dangereuses Résolution de
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 [email protected] web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre
INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1
INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 4 : Multiprocesseurs Sylvain Martel - INF6500 2 Multiprocesseurs Type SISD SIMD MIMD Communication Shared memory Message-passing Groupe
SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Conception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
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,
INFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : [email protected] 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
Les environnements de calcul distribué
2 e Atelier CRAG, 3 au 8 Décembre 2012 Par Blaise Omer YENKE IUT, Université de Ngaoundéré, Cameroun. 4 décembre 2012 1 / 32 Calcul haute performance (HPC) High-performance computing (HPC) : utilisation
Programmation parallèle et distribuée
ppd/mpassing p. 1/43 Programmation parallèle et distribuée Communications par messages Philippe MARQUET [email protected] Laboratoire d informatique fondamentale de Lille Université des sciences
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
Rapport d activité. Mathieu Souchaud Juin 2007
Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix
É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
Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction
Plan du cours Autres modèles pour les applications réparties Introduction [email protected] http://rangiroa.polytech.unice.fr Notre terrain de jeu : les systèmes répartis Un rappel : le modèle dominant
Cours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine [email protected] Transparents Disponibles
Evaluation des performances de programmes parallèles haut niveau à base de squelettes
Evaluation des performances de programmes parallèles haut niveau à base de squelettes Enhancing the Performance Predictability of Grid Applications with Patterns and Process Algebras A. Benoit, M. Cole,
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 [email protected] Françoise LAMOUR [email protected] Aspects théoriques
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
Les processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
«clustering» et «load balancing» avec Zope et ZEO
IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4
PROJET 1 : BASE DE DONNÉES REPARTIES
PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties
Quantification d incertitude et Tendances en HPC
Quantification d incertitude et Tendances en HPC Laurence Viry E cole de Physique des Houches 7 Mai 2014 Laurence Viry Tendances en HPC 7 Mai 2014 1 / 47 Contents 1 Mode lisation, simulation et quantification
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES
FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBLITÉ CONTINUE ET MOBILITÉ DES DONNÉES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue
Présentation Alfresco
Présentation d un CMS : Alfresco Présentation Alfresco Ludovic Plantin, Frédéric Sénèque, Xu Zhao Polytech Grenoble Décembre 2008 Plantin, Sénèque, Xu (Polytech) Présentation Alfresco Décembre 2008 1 /
Programmation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
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
PRODIGUER un noeud français de distribution de données GIEC/IPCC
PRODIGUER un noeud français de distribution de données GIEC/IPCC Sébastien Denvil et Olivier Marti Pôle de Modélisation, IPSL Prodiguer - Mercredi 18 juin 2008 1 Le contexte : le compte à rebours du rapport
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 [email protected] http://www.metz.supelec.fr/~vialle MPI-1 2ème partie
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
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
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN
PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,
Limitations of the Playstation 3 for High Performance Cluster Computing
Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire
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é
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
SPECIFICATION ET DESCRIPTION DU MULTICAST FIABLE DANS ETOILE
page 1 / 10 Date : 19 décembre 2002 Origine : INRIA RESO Dossier : MULTICAST Titre : SPECIFICATION ET DESCRIPTION DU MULTICAST FIABLE DANS E Référence : Multicast version 0 État : DRAFT VERSIONS SUCCESSIVES
La sécurité dans les grilles
La sécurité dans les grilles Yves Denneulin Laboratoire ID/IMAG Plan Introduction les dangers dont il faut se protéger Les propriétés à assurer Les bases de la sécurité Protocoles cryptographiques Utilisation
FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters
FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBILITE CONTINUE ET MOBILITE DES DONNEES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue
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 [email protected] Février
Architecture de la grille
1 2 Diversité des applications et des utilisateurs (profile, nombre,...) supposent des solutions différentes architectures différentes avec des services communs Services de base authentification: établir
Architecture et Extensions d ArcGIS Server
Architecture et Extensions d ArcGIS Server Plan de la présentation Présentation Générale ArcGIS Server Deconstructed Architecture et retours d expérience Execution (LoadBalancing // FailOver) Securité
Systèmes et traitement parallèles
Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI [email protected] 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Grid Computing. Plan du cours. Plan. Composants d une Grille. [email protected]. Besoin d intergiciels robustes
Grid Computing Plan du cours [email protected] Les grilles informatiques : concepts et infrastructures La grille nationale Grid5000 Modèles de programmation et intergiciels pour le grilles Etude
Gestion répartie de données - 1
Gestion répartie de données - 1 Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Gestion répartie de données Plan de la présentation Introduction
Programmation parallèle et distribuée
Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution
<Insert Picture Here> Solaris pour la base de donnés Oracle
Solaris pour la base de donnés Oracle Alain Chéreau Oracle Solution Center Agenda Compilateurs Mémoire pour la SGA Parallélisme RAC Flash Cache Compilateurs
Projet ViSaGe : implémentation de l administration et du monitoring de ViSaGe (Virtualisation du Stockage appliquée aux Grilles informatiques)
RenPar 18/ SympA 2008 / CFSE 6 / JC 2008 Fribourg en Suisse, 11 au 13 février 2008 Projet ViSaGe : implémentation de l administration et du monitoring de ViSaGe (Virtualisation du Stockage appliquée aux
24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.
Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
Introduction à MapReduce/Hadoop et Spark
1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -
La continuité de service
La continuité de service I INTRODUCTION Si la performance est un élément important de satisfaction de l'utilisateur de réseau, la permanence de la disponibilité des ressources l'est encore davantage. Ici
Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24
Ecole Mohammadia d Ingénieurs Systèmes Répartis Pr. Slimane Bah, ing. PhD G. Informatique Semaine 24 1 Semestre 4 : Fev. 2015 Cluster Caractéristiques : Centralisé Fortement couplé Même domaine administratif
Le projet Gaïa, le Big Data au service du traitement de données satellitaires CRIP - 16/10/2013 Pierre-Marie Brunet
Le projet Gaïa, le Big Data au service du traitement de données satellitaires CRIP - 16/10/2013 Pierre-Marie Brunet 1 SOMMAIRE Le calcul scientifique au CNES Le BigData au CNES, le cas Gaïa HPC et BigData
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
Infrastructures Parallèles de Calcul
Infrastructures Parallèles de Calcul Clusters Grids Clouds Stéphane Genaud 11/02/2011 Stéphane Genaud () 11/02/2011 1 / 8 Clusters - Grids - Clouds Clusters : assemblage de PCs + interconnexion rapide
Bases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Contributions à l expérimentation sur les systèmes distribués de grande taille
Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte
Serveur Appliance IPAM et Services Réseaux
Page 1 Datasheet Serveur Appliance IPAM et Services Réseaux SIMPLIFER LE DEPLOIEMENT DE VOS ARCHITECTURES & DHCP Les services d adressage et de nommage sont au cœur de votre système d information, car
OS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah [email protected] RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie
Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie 1 Présenté par: Yacine KESSACI Encadrement : N. MELAB E-G. TALBI 31/05/2011 Plan 2 Motivation
Middleware et services de la grille
1 2 La vision EGEE (Enabling Grids for E-sciencE) Création d une infrastructure Grid à travers l Europe, qui implique les réseaux de recherches scientifiques actuelle et futur Offrir à la communauté des
Introduction to Parallel Programming with MPI
Introduction to Parallel Programming with MPI Master Modélisation et Simulation - ENSTA cours A1-2 Pierre Kestener [email protected] CEA-Saclay, DSM, France Maison de la Simulation MDLS, September,
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
WASD en environnement haute disponibilité Jean-Pierre PETIT WASD Le produit WASD WASD signifie Wide Area Surveillance Division C est le nom d une division de la défense australienne qui a accepté en 1996
Chapitre 01 Généralités
Chapitre 01 Généralités I- Introduction II- Windows Server 2008 R2 1. Historique 2. Caractéristiques 3. Les différentes éditions 4. Outils d administration 4.1. Gestionnaire de serveur 4.2. Utilisateurs
API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture
API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant
Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy
Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy Séminaire Aristote, 17 Déc. 2009 Ecole Polytechnique Palaiseau Plan L'univers du cloud Ressources Grilles, middleware
3A-IIC - Parallélisme & Grid GRID : Middleware
3A-IIC - Parallélisme & Grid GRID : Middleware Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle Grid : Middleware 1. Globus 2. UniGrids 3. NES 4. XtremWeb 5. JavaSpaces/Jini
Communications performantes par passage de message entre machines virtuelles co-hébergées
Communications performantes par passage de message entre machines virtuelles co-hébergées François Diakhaté1,2 1 CEA/DAM Île de France 2 INRIA Bordeaux Sud Ouest, équipe RUNTIME Renpar 2009 1 Plan Introduction
Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures
Le stockage 1. Architecture de stockage disponible a. Stockage local ou centralisé L architecture de stockage à mettre en place est déterminante pour l évolutivité et la performance de la solution. Cet
Architectures d'intégration de données
Architectures d'intégration de données Dan VODISLAV Université de Cergy-ontoise Master Informatique M1 Cours IED lan Intégration de données Objectifs, principes, caractéristiques Architectures type d'intégration
Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair
Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair Mathieu Jan [email protected] Superviseurs : Gabriel Antoniu, Luc Bougé, Thierry Priol {Gabriel.Antoniu,Luc.Bouge,Thierry.Priol}@irisa.fr
Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
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
Exécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Livre blanc Haute disponibilité sous Linux
Livre blanc Haute disponibilité sous Linux Nicolas Ferre 29 septembre 2000 Résumé Ce livre blanc décrit une solution informatique à haute disponibilité. Les technologies mises
Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Cloud Computing Stratégie Esri
Séminaire Partenaires Esri France 7-8 juin 2011 - Paris Cloud Computing Stratégie Esri Gaëtan LAVENU Plan de la présentation Evolution des architectures SIG Qu'est ce que le Cloud Computing? ArcGIS et
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
Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration
Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig [email protected]
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig [email protected] Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
. Plan du cours. . Architecture: Fermi (2010-12), Kepler (12-?)
Plan du cours Vision mate riel: architecture cartes graphiques NVIDIA INF 560 Calcul Paralle le et Distribue Cours 3 Vision logiciel: l abstraction logique de l architecture propose e par le langage CUDA
Les Virtual LAN. F. Nolot. Master 1 STIC-Informatique 1
Les Virtual LAN Master 1 STIC-Informatique 1 Les Virtual LAN Introduction Master 1 STIC-Informatique 2 Les Réseaux Locaux Virtuels (VLAN) Avantages des LAN Communication rapide, broadcasts Problèmes des
Génération de code binaire pour application multimedia : une approche au vol
Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation
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 :
Le modèle client-serveur
Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)
Software Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Prise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec [email protected] Action RASC Plan de cet exposé Contexte Motivations
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
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
BIG DATA en Sciences et Industries de l Environnement
BIG DATA en Sciences et Industries de l Environnement François Royer www.datasio.com 21 mars 2012 FR Big Data Congress, Paris 2012 1/23 Transport terrestre Traçabilité Océanographie Transport aérien Télémétrie
Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES
Aristote ----- Cloud Interopérabilité Retour d'expérience L A F O R C E D E L I N N O V A T I O N Résumé Les systèmes d'information logistique (SIL) sont des outils qui amènent des gains de productivité
Urbanisme du Système d Information et EAI
Urbanisme du Système d Information et EAI 1 Sommaire Les besoins des entreprises Élément de solution : l urbanisme EAI : des outils au service de l urbanisme 2 Les besoins des entreprises 3 Le constat
Eléments d architecture des machines parallèles et distribuées
M2-RISE - Systèmes distribués et grille Eléments d architecture des machines parallèles et distribuées Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle Notions d architecture
Module BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet [email protected] Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de
