16/03/2015. Diviser pour calculer plus vite Fork - Join. Quelques modèles en programmacon parallèle et leur mise en œuvre en Java.

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

Download "16/03/2015. Diviser pour calculer plus vite Fork - Join. Quelques modèles en programmacon parallèle et leur mise en œuvre en Java."

Transcription

1 Diviser pour calculer plus vite Fork - Join riveill@unice.fr h5p:// Quelques modèles en programmacon parallèle et leur mise en œuvre en Java 2 SituaCon 1 Synchroniser un ensemble de thread : la barrière Il existe de nombreux problèmes organisés de la manière suivante : Idée : tous les processus franchissent au même moment la barrière données Calcul données Calcul données Calcul Implémenta-on : Facile à implémenter par un moniteur ou avec des sémaphores a été introduit dans Java 7 SynchronisaCon et échange des données Principe en Java 7 : Un processus crée un objet barrière il donne le nombre N de processus a5endu Les données peuvent être idencques ou non Les calcul peuvent être idencque ou non, l important c est qu ils s effectuent sur des données indépendantes 3 Chaque processus exécute «await» sur l objet barrière Quand N est a5eint, la barrière s ouvre 4 1

2 La barrière La barrière public class MonRunnable implements Runnable { private CyclicBarrier barrier; string name = Thread.currentThread().getName(); public MonRunnable(CyclicBarrier barrier) { this.barrier = barrier; main(string args[]) { //creating CyclicBarrier with 3 Threads needs to call await() CyclicBarrier cb = new CyclicBarrier(3, new Runnable(){ public void run(){ //This task will be executed once all thread reaches barrier System.out.println("All parties are arrived at barrier"); ); public void run() { System.out.println(threadName + " is started"); Thread.sleep(400*new Random().nextInt(10)); System.out.println(threadName + " is waiting on barrier"); barrier.await(); System.out.println(threadName + " has crossed the barrier"); 5 //starting each of thread Thread t1 = new Thread(new MonRunnable(cb), "Thread 1"); Thread t2 = new Thread(new MonRunnable(cb), "Thread 2"); Thread t3 = new Thread(new MonRunnable(cb), "Thread 3"); System.out.println("Début démarrage des threads"); t1.start(); t2.start(); t3.start(); System.out.println("Fin démarrage des threads"); 6 La barrière La barrière en Java Un exemple d exécucon Début démarrage des threads Fin démarrage des threads Thread 3 is started Thread 1 is started Thread 2 is started Thread 1 is waiting on barrier Thread 2 is waiting on barrier Thread 3 is waiting on barrier All parties are arrived at barrier, lets play Thread 3 has crossed the barrier Thread 2 has crossed the barrier Thread 1 has crossed the barrier Evidemment dans la cas de tâches cycliques, il faut réinicaliser la barrière reset() 7 Class Barrier { private final int N_THREADS; int arrived; public Barrier (int n) { N_THREADS = n; public synchronized void await () { arrived++; if (arrived < N_THREADS) { wait(); else { arrived = 0; notifyall(); Sans un phénomène bien curieux appelé à Spurious wakeup 8 2

3 Spurious wakeup h6p://docs.oracle.com/javase/7/docs/api/java/lang/object.html A thread can also wake up without being nocfied, interrupted, or Cming out, a so- called spurious wakeup. While this will rarely occur in praccce, applicacons must guard against it by tescng for the condicon that should have caused the thread to be awakened, and concnuing to wait if the condicon is not sacsfied. In other words, waits should always occur in loops, like this one: Arrive en parcculier sur synchronized (obj) { Linux car mise en œuvre while (<condition does not hold>) de la JVM avec les pthread qui me5ent en obj.wait(timeout); gardent contre les... // Perform action «Spurius wakeup» For more informacon on this topic, see SecCon in Doug Lea's "Concurrent Programming in Java (Second EdiCon)" (Addison- Wesley, 2000), or Item 50 in Joshua Bloch's "EffecCve Java Programming Language Guide" (Addison- Wesley, 2001). 9 La barrière en Java Class Barrier { private final int N_THREADS; int[] counts = new int[] {0, 0; int current = 0; public Barrier (int n) { N_THREADS = n; Prise en compte du Spurious wakeup public synchronized void await () { int my = current; counts[my]++; if (counts[my] < N_THREADS) while (counts[my] < N_THREADS) wait(); else { current ^= 1; counts[current] = 0; notifyall(); 10 SituaCon 2 ProposiCon de solucon Il existe de nombreux problèmes qui peuvent être décomposé en sous- problèmes indépendants et qui sont donc facilement parallélisables Principe On crée autant de thread que de problème à résoudre (fork) La thread principale a5end la terminaison des différents calculs (join) Pa5ern de calcul fork- join Principe de mise en œuvre CréaCon d autant de tâches que de sous- problèmes ExécuCon en parallèle de toutes ces tâches A5ente de la fin de toutes les tâches (barrière) Java moniteur Class { int i; Synchronized a5endre (int N) { i := N; wait (); // appel thread principale Synchronized fini () { i- - ; if (i<=0) nocfy (); // appel des N thread filles Java semaphore for (i:=0; i++; i<n) s.down(); s.up (); Fusion des résultats parcels // appel thread principale // appel des N thread filles 11 Depuis Java 7 il est possible de traiter ce cas directement avec le modèle fork- join 12 3

4 Cas d uclisacon du modèle Fork / Join Lorsque le traitement est décomposable en sous- tâches indépendantes Existence d'algorithmes parallèles spécifiques La décomposicon en sous- tâches peut être : stacque : découper un tableau en zones fixes dynamique : découvrir une arborescence de fichiers A5enCon à maîtriser le volume de tâches créées récursive Problème 1 : contrôler le nombre de thread en accvité 14 Contrôle du parallélisme Pool de thread Le parallélisme c est bien mieux si on peut effec-vement calculer en parallèle ExploitaCon d une l architecture mulc- cœur Java Nom du thread courant : Thread.currentThread().getName() Nombre de cœur sur le processeur : Thread.currentThread().getName() Quel est l intérêt de lancer 10 thread si on a que 4 cœurs? Jusqu à présent on créait des threads parallèles sans jamais se poser la quescon du nombre de threads qui était effeccvement exécuté en // Un modèle : les «pools» de thread Créer une thread coûte cher Alors on recycle J Principe On crée un ensemble de N threads Généralement moins que de processeurs/coeurs existants Ou au contraire légèrement plus pour prendre en compte les opéracons bloquantes (entrée/sorce, réseau) On crée un ensemble de tâche Le nombre dépend généralement du problème à résoudre Les tâches sont successivement exécutées par les thread Mise en œuvre en Java à l aide d une nouvelle hiérarchie : Executor

5 Classe Executors une autre manière d accver une thread Classe Executors : exécucon séquencelle des tâches public class MonRunnable implements Runnable { public void run(){ System.out.println("Debut execution dans le thread " +Thread.currentThread().getName()); //On simule un traitement long Thread.sleep(4000); System.out.println("Fin execution dans le thread " +Thread.currentThread().getName()); SoluCon déjà connue Thread thread = new Thread(new MonRunnable()); thread.start(); En uclisant l interface Executor Executor executor = Executors.newSingleThreadExecutor(); executor.execute(new MonRunnable()); 17 List<Runnable> runnables = new ArrayList<Runnable>(); //création de 4 tâches //création executor mono-thread ExecutorService executor = Executors.newSingleThreadExecutor(); //exécution des tâches selon le modèle choisi for(runnable r : runnables){ executor.execute(r); //attente de la terminaison de toutes les tâches executor.shutdown(); 18 Classe Executors : exécucon séquencelle des tâches Classe Executors : exécucon séquencelle des tâches B A C B A Serveur CPU Le CPU est inaccf pendant les E/S Evidemment les traces d exécucon sont : Debut execution dans le thread pool-1-thread-1 Fin execution dans le thread pool-1-thread-1 Debut execution dans le thread pool-1-thread-1 Fin execution dans le thread pool-1-thread-1 Debut execution dans le thread pool-1-thread-1 Fin execution dans le thread pool-1-thread-1 Debut execution dans le thread pool-1-thread-1 Fin execution dans le thread pool-1-thread-1 C File contenant les requêtes en a5ente Avantage Facile à ucliser

6 Classe Executors : exécucon parallèle des tâches Classe Executors : exécucon parallèle des tâches List<Runnable> runnables = new ArrayList<Runnable>(); //création de 4 tâches Seul changement A A CPU Serveur B CPU Un nombre opcmum de thread peut être créé et recyclé //création executor pool de 2 threads ExecutorService executor = Executors.newFixedThreadPool(2); //Executors.newSingleThreadExecutor(); //exécution des taches selon le modèle choisi for(runnable r : runnables){ executor.execute(r); //attente de la terminaison de toutes les taches executor.shutdown(); 21 B C C Avantage Moins de requête dans la file d a5ente Minimize la créacon /destruccon de thread Désavantage Nécessité de «tunning» pour Crer le meilleur parc du matériel Pas facile à me5re en œuvre avant Java Classe Executors : exécucon parallèle des tâches Un exemple d exécucon des threads Debut execution dans le thread pool-1-thread-1 Debut execution dans le thread pool-1-thread-2 Fin execution dans le thread pool-1-thread-2 Fin execution dans le thread pool-1-thread-1 Debut execution dans le thread pool-1-thread-2 Debut execution dans le thread pool-1-thread-1 Fin execution dans le thread pool-1-thread-1 Fin execution dans le thread pool-1-thread-2 Problème 2 : lancer un calcul et récupérer plus tard son résultat

7 Un modèle : l appel asynchrone avec avec future Runnable versus Callable<T> Appel synchrone appelant client appelé serveur Appel asynchrone avec futur appelant client appelé serveur futur Runnable Introduced in Java 1.0 Callable<T> Introduced in Java 1.5 as part of java.ucl.concurrent library execute() submit() new() Runnable cannot be parametrized Callable is a parametrized type whose type parameter indicates the return type of its run method returns() Appel de méthode Appel de procédure à distance (RPC) Client- serveur get() returns() put() Acteurs / objets accfs Appel aynchrone de procédure à distance (A- RPC) 25 Classes implemencng Runnable needs to implement run() method Runnable.run() returns no Value Can not throw Checked ExcepCons publicinterfacerunnable { void run(); Classes implemencng Callable needs to implement call() method Callable.call() returns a value of Type T Can throw Checked ExcepCons publicinterfacecallable<v>{ V call() throwsexception; 26 Classe Callable La classe Future<T> public class MonCallable implements Callable<Integer> { public Integer call() { System.out.println("Debut execution ); //Simulation traitement long Thread.sleep(4000); System.out.println("Fin execution); return new Random().nextInt(10); // création d un Executor ExecutorService executor = Executors.newSingleThreadExecutor(); //Appel de la tache et récupération d un Future<V> Future<Integer> future = executor.submit(new MonCallable()); System.out.println("Apres submit"); //On a besoin du résultat on appel : future.get() // appel bloquant System.out.println("Resultat=" + future.get()); System.out.println("Avant shutdown"); execute.shutdown();

8 Appel asynchrone avec futur Exemple de trace Apres submit Debut execution Fin execution Resultat=6 Avant shutdown Mise en oeuvre du modèle fork- join en Java Mise en oeuvre du pa5ern forkjoin en Java Algorithme Exemple Cré de : h5p://fr.openclassrooms.com/informacque/cours/apprenez- a- programmer- en- java/depuis- java- 7- le- pa5ern- fork- join Le problème Parcourir tous les répertoires de mon $HOME et afficher le nombre de fichier contenant le suffixe psd Se décompose assez aisément en sous- problèmes indépen- dants L analyse d un répertoire peut être réalisé de manière récur- sive par analyse des sous ré- pertoire Dans chaque répertoire : On lance une nouvelle analyse pour chaque sous- répertoires On compte le nombre de fichier correspondant au filtre On a5end la terminaison des analyses des sous répertoires et on addiconne le nombre de fichier trouvé

9 Le pa5ern forkjoin Approche séquencelle Il y a 92 fichier(s) portant l'extension *.psd Temps de traitement : UClisaCon de 4 coeurs Il y a 92 fichier(s) portant l'extension *.psd Temps de traitement : Mais temps d a5ente presque 3 fois plus cours ForkJoinPool : représente un pool de thread qui reçoit la liste des tâches à réaliser invoque : lance les tâches passées en paramètre de manière synchrones execute : lance les tâches passées en paramètre de manière asynchrones submit : lance la tâche passée en paramètre de manière asynchrone et renvoie un objet futur immédiatement ForkJoinTask : représente une tâche unique invoke(): exécucon de la tâche par la thread courante fork(): lance une autre tâche dans le même pool que la thread courante join(): retourne le résultat de l exécucon de ce5e tâche Un ForkJoinPool exécute des ForkJoinTasks <interface> Executor <interface> ExecutorService ForkJoinPool <interface> Future<V> <abstract> ForkJoinTask<V> T invoke(task) void execute(task) Future<T> submit(task) RecursiveTask<V> RecursiveAction compute(), invoke(), fork(), join(), isdone(), get() ForkJoinTask Main RecursiveAction Implémente Future<Void> Modélise un traitement qui ne renvoie pas de valeur Peut néanmoins modifier les données passées en paramètre Ex : trier un tableau "in- place" RecursiveTask<V> Implémente Future<V> Modélise un traitement récursif qui renvoie une valeur Ex : calculer la taille totale d'une arborescence de fichiers // Nombre de processeurs disponibles int processeurs = RunCme.getRunCme().availableProcessors(); // CréaCon du pool de thread ForkJoinPool pool = new ForkJoinPool(processeurs); compute() est la méthode excécutée par la tâche équivalent à run() pour les thread Les tâches peuvent être appelées de manière synchrone ou asynchrone Synchrone : invoke() Asynchrone : fork() // CréaCon de l'objet FolderScanner FolderScanner fs = new FolderScanner(chemin, filtre); // Analyse resultat = fs.sequencalscan(); // Un transparent qui suit décrit : // sequencalscan // CréaCon de l'objet FolderScanner RecursiveTask<Long> fs = new FolderScanner(chemin, filtre); // Analyse resultat = pool.invoke(fs); // exécute compute // Un transparent qui suit décrit : // compute 36 9

10 Synchrone ou Asynchrone? (ForkJoinPool) FolderScanner Resultat = pool.invoke(fs); est équivalent à : pool.invoke(fs); Bla bla bla resultat = fs.join(); Resultat = pool.execute(fs); est équivalent à : pool.execute(fs); Bla bla bla resultat = fs.join(); public class FolderScanner { public long sequencalscan() { // RécupéraCon de la liste des fichiers du répertoire d analyse DirectoryStream<Path> liscng = Files.newDirectoryStream(path)); for (Path nom : liscng) { if (Files.isDirectory(nom.toAbsolutePath())) { // S'il s'agit d'un dossier il est analysé result += new FolderScanner( nom.toabsolutepath(), this.filter).sequencalscan(); // RécupéraCon de la liste des fichiers répondant au filtre DirectoryStream<Path> liscng = Files.newDirectoryStream(path, this.filter)); for (Path nom : liscng){ // Pour chaque fichier, on incrémente le compteur result++; public class FolderScanner extends RecursiveTask<Long> public Long compute() { // RécupéraCon de la liste des fichiers du répertoire d analyse DirectoryStream<Path> liscng = Files.newDirectoryStream(path)); for (Path nom : liscng) { if (Files.isDirectory(nom.toAbsolutePath())) { // S'il s'agit d'un dossier il est analysé subtasks.add(new FolderScanner( nom.toabsolutepath(), this.filter).fork()); // RécupéraCon de la liste des fichiers répondant au filtre DirectoryStream<Path> liscng = Files.newDirectoryStream(path, this.filter)); for (Path nom : liscng) { // Pour chaque fichier, on incrémente le compteur result++; // RécupéraCon du résultat de toutes les sous- tâches for (ForkJoinTask<Long> subtask : subtasks) result += subtask.join(); 37 return result; return result; 38 Synchrone ou asynchrone? (ForkJoinTask/RecursiveTask/RecursiveAcCon) Asynchronisme et tâches récursives (RecursiveTask) if (Files.isDirectory(nom.toAbsolutePath())) { // S'il s'agit d'un dossier il est analysé ForkJoinTask<Long> fs = new FolderScanner( nom.toabsolutepath(), this.filter).invoke(); if (Files.isDirectory(nom.toAbsolutePath())) { // S'il s'agit d'un dossier il est analysé ForkJoinTask<Long> fs = new FolderScanner( nom.toabsolutepath(), this.filter).fork(); // correct protected Long compute() { List<ForkJoinTask<Long>> subtasks = new ArrayList<>(); long size = 0; // Incorrect protected Long compute() { ForkJoinTask<Long> subtask; long size = 0; fs.invoke(); Bla bla bla fs.join(); fs.fork(); Bla bla bla fs.join(); 39 for(file f : root.listfiles()) { if (f.isdirectory()) { subtasks.add(new Task(f).fork()); else { size += f.length(); for (ForkJoinTask<Long> subtask : subtasks) { size += subtask.join(); return size; for (File f : root.listfiles()) { if (f.isdirectory()) { subtask = new Task(f).fork(); size += subtask.join(); else { size += f.length(); return size; /* l asynchronisme souhaité (fork) n est pas exploité : on a5end tout de suite */ 10

11 Bonnes pracques OpCmisaCons A5enCon au coût de gescon Le bénéfice obtenu en parallélisant un traitement doit être supérieur au coût de gescon par le framework Trouver la bonne granularité A5enCon à la consommacon mémoire Grosses structures : préférer la modificacon "in- place" Découverte dynamique des sous- tâches A5enCon à la complexité OpCmisaCon prématurée? Maintenance Framework Fork / Join Threads >= Degré de parallélisme Les tâches en a5ente de join() sont mises de côté pour perme5re à d'autres tâches d'être traitées Tâches Eviter la synchronisacon manuelle UCliser fork() et join() uniquement OpCmiser la granularité à l'aide des stacscques du pool getqueuedsubmissioncount(), getstealcount()... Possibilité d'opcmisacon dynamique Quelques références qui m ont aidées pour préparer ce cours API Java 7, package java.ucl.concurrent h5p://download.java.net/jdk7/docs/api/ Etude de Doug Lea h5p://gee.cs.oswego.edu/dl/papers/ˆ.pdf Des blogs/tutoriaux h5p:// join html h5p://blog.paumard.org/2011/07/05/java- 7- fork- join/ h5p://sdz.tdct.org/sdz/le- framework- executor.html h5p://fr.openclassrooms.com/informacque/cours/apprenez- a- programmer- en- java/depuis- java- 7- le- pa5ern- fork- join Un modèle proche mais complémentaire Map Reduce Sera présenté en détail dans certains parcours de 5ème année 44 11

12 Map Reduce Exemple Modèle de programmacon très contraint qui permet Une parallélisacon automacque De l équilibrage de charge Des opcmisacons sur les transferts disques et réseaux De la tolérance aux pannes 1. Lecture des données 2. Map A chaque élément du flux repéré par une clé K1, Map associe un liste de couple <clé, valeur> Map: <K1, V1> à list (K2, V2) 3. Shuffle/Sort : regrouper les sorces et les trier selon les clés K2 4. Reduce Exécuté une fois la phase Map terminée AgrégaCon en liste de toutes les valeurs intermédiaires associées à une clé K2 AgrégaCon est une opéracon associacve Reduce: <K2, list(v2) > à list (K3, V3) bien souvent : K2 = K3 5. Ecrire les données 45 Parmis un ensemble de texte, compter les occurrences de chaque mot 1. Données : ensemble de fichier 2. Map Sur chaque texte, décomposer en mots, et à chaque mot m, ajouter à la liste des couples émis le couple (m, 1) 3. Shuffle/Sort Le système regroupe toutes les couples émis et les regroupes selon la clé m (a,1), (b,1), (c, 1), (b, 1), (a, 1), à (a, 1, 1), (b, 1, 1), (c, 1), 4. Reduce Les valeurs 1 sont addiconnées pour chaque mot (a, 1, 1), (b, 1, 1), (c, 1), à (a, 2), (b, 2), (c, 1) 46 Exemple : Compter l occurrence de chaque mots dans un ensemble de fichiers Exemple (suite) Map Map: <K1, V1> à list (K2, V2) Exemple: K1 = nom du fichier, permet d associer chaque fichier à un noeud qui va traiter la fonccon Map V1 = contenu du fichier K2 = mot V2 = 1 (présence d une occurrence) Orange Poire Orange Poire Orange Map <, 1> <Orange, 1> <Poire, 1> <, 1> <, 1> <Orange, 1> <Poire, 1> <Orange, 1> Reduce <K2, list(v2) > à list (K3, V3) bien souvent : K2 = K3 Exemple: K2 = mot, permet d associé un mot à un noeud qui va traiter la fonccon reduce V2 = 1 (présence d une occurrence) K3 = K2 V3 = N (nbre d occurrence détectée) La fonccon d aggrégacon est la somme, elle est bien associacve <, 1, 1, 1> <Orange, 1, 1, 1> Reduce Reduce <, 3> <Orange, 3> Map 47 <Poire, 1, 1> Reduce <Poire, 2> 48 12

13 Exemple Orange Orange Poire Poire Orange S P L I T Orange Poire Orange Poire Orange Map Map <Orange, 3> <Poire, 2> <, 1> <Orange, 1> <Poire, 1> <, 1> <, 1> <Orange, 1> <Poire, 1> <Orange, 1> S H U F F L E / S O R T <Orange, 1, 1, 1> <Poire, 1, 1> <, 1, 1, 1> Reduce Reduce Exemple (Mise en oeuvre) L uclisateur programme les fonccons Map / Reduce En pseudo Java Map(String input_key, String input_value) { foreach word w in input_value do { EmitIntermediate (w, 1); Reduce (String key, Iterator<Integer> intermediate_value) { int result =0; foreach v in intermediate_value do { result += v; Le framework fourni les fonccons SPLIT / SORT mais aussi la gescon du flux de données <, 3> Reduce ForkJoin versus MapReduce ForkJoin Single machine Takes advantage of mulcple cores ForkJoin recursively parccons a task into several subtasks, on a single machine Starts quickly and scales well for small inputs (<5MB), but it cannot process larger inputs due to the size restriccons of shared- memory, single node architectures. No fault tolerance No distribucon Exist in Java since Java 7 MapReduce Cluster machine Take advantages of cluster machine. Massively scalable. Does only one big split, with no communicacon between the parts uncl the reduce step. MapReduce takes tens of seconds to start up, but scales well for much larger inputs (>100MB) on a compute cluster. Generally, fault tolerant implementacon, transparent task distribucon Exist since 2004 Popularized by google Open source implementacon: hadoop (h5p://hadoop.apache.org/) 51 Q&A h5p://

Introduction à MapReduce/Hadoop et Spark

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 -

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr 4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs

Plus en détail

Threads. Threads. USTL http://www.lifl.fr/ routier 1

Threads. Threads. USTL http://www.lifl.fr/ routier 1 Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un

Plus en détail

Certificat Big Data - Master MAthématiques

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

Plus en détail

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données Stéphane Genaud ENSIIE Traitement de données distribuées Google a introduit Map-Reduce [Dean and Ghemawat 2004] Ils s

Plus en détail

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. 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

Plus en détail

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan

Plus en détail

Introduction : les processus. Introduction : les threads. Plan

Introduction : les processus. Introduction : les threads. Plan IN328 Programmation distribuée avec Java et J2EE 2 - Threads en Java Introduction : les processus Un processus est un ensemble d instructions à exécuter, un espace mémoire réservé et éventuellement d autres

Plus en détail

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread

Plus en détail

Notion de thread (1/2)

Notion de thread (1/2) Notion de thread (1/2) La machine virtuelle java (JVM) permet d'exécuter plusieurs traitements en parallèle (en pratique, ils s'exécutent par tranche et en alternance sur le processeur). Ces traitements

Plus en détail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

Java avancé Objectifs. version support 1.2

Java avancé Objectifs. version support 1.2 Java avancé Objectifs version support 1.2 Objectifs Utiliser la programmation concurrente Utiliser quelques mécanismes de communication distante socket, RMI et JMS Savoir utiliser les mécanismes de déploiement

Plus en détail

Un ordonnanceur stupide

Un ordonnanceur stupide Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire

Plus en détail

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1 Big Data Cyril Amsellem Consultant avant-vente 16 juin 2011 Talend 2010 1 Big Data Architecture globale Hadoop Les projets Hadoop (partie 1) Hadoop-Core : projet principal. HDFS : système de fichiers distribués

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

MapReduce et Hadoop. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

MapReduce et Hadoop. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 MapReduce et Hadoop Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Fouille de données Recherche & indexation de gros volumes Appliquer une opération simple à beaucoup

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

TD2 Programmation concurrentielle

TD2 Programmation concurrentielle TD2 Programmation concurrentielle Développement Logiciel (L2-S4) Lundi 10 février 2014 Exercice 1 (Au bar...) Trois clients se trouvent au bar. Il est tard, ils sont fatigués, et ils s endorment sur le

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Une introduction à la technologie EJB (2/3)

Une introduction à la technologie EJB (2/3) Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce

Plus en détail

Notes de cours Practical BigData

Notes de cours Practical BigData Notes de cours Practical BigData Nguyen-Nhut DOAN 15 janvier 2015 Introduction Ces notes personnelles traduisent la deuxième partie du cours INF553 de l Ecole Polytechnique sur les bases de données et

Plus en détail

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

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

Plus en détail

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

Plus en détail

Cartographie des solutions BigData

Cartographie des solutions BigData Cartographie des solutions BigData Panorama du marché et prospective 1 1 Solutions BigData Défi(s) pour les fournisseurs Quel marché Architectures Acteurs commerciaux Solutions alternatives 2 2 Quels Défis?

Plus en détail

Génération de code binaire pour application multimedia : une approche au vol

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

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Exercices sur SQL server 2000

Exercices sur SQL server 2000 Exercices sur SQL server 2000 La diagramme de classe : Exercices sur SQL server 2000 Le modèle relationnel correspondant : 1 Créer les tables Clic-droit on Tables et choisir «New Table» Créer la table

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs

Plus en détail

Differential Synchronization

Differential Synchronization Differential Synchronization Neil Fraser Google 2009 BENA Pierrick CLEMENT Lucien DIARRA Thiemoko 2 Plan Introduction Stratégies de synchronisation Synchronisation différentielle Vue d ensemble Dual Shadow

Plus en détail

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant Organiser vos données - Big Data Patrick Millart Senior Sales Consultant The following is intended to outline our general product direction. It is intended for information purposes only, and may not be

Plus en détail

4 Exemples de problèmes MapReduce incrémentaux

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

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

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

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

Plus en détail

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14 Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...

Plus en détail

APPENDIX 6 BONUS RING FORMAT

APPENDIX 6 BONUS RING FORMAT #4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce Algorithmes : K-means et Apriori Maria Malek LARIS-EISTI maria.malek@eisti.fr 1 Cloud Computing et MapReduce

Plus en détail

Introduc)on à Map- Reduce. Vincent Leroy

Introduc)on à Map- Reduce. Vincent Leroy Introduc)on à Map- Reduce Vincent Leroy Sources Apache Hadoop Yahoo! Developer Network Hortonworks Cloudera Prac)cal Problem Solving with Hadoop and Pig Les cours seront mis en ligne sur hhp://membres.liglab.fr/leroy/

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009 SugarCubes Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués Paris, le 9 janvier, 2009 Plan 2 Les SugarCubes au dessus de J2ME Quelques résultats expérimentaux Les

Plus en détail

BIG Data et R: opportunités et perspectives

BIG Data et R: opportunités et perspectives BIG Data et R: opportunités et perspectives Guati Rizlane 1 & Hicham Hajji 2 1 Ecole Nationale de Commerce et de Gestion de Casablanca, Maroc, rguati@gmail.com 2 Ecole des Sciences Géomatiques, IAV Rabat,

Plus en détail

MapReduce. Nicolas Dugué nicolas.dugue@univ-orleans.fr. M2 MIAGE Systèmes d information répartis

MapReduce. Nicolas Dugué nicolas.dugue@univ-orleans.fr. M2 MIAGE Systèmes d information répartis MapReduce Nicolas Dugué nicolas.dugue@univ-orleans.fr M2 MIAGE Systèmes d information répartis Plan 1 Introduction Big Data 2 MapReduce et ses implémentations 3 MapReduce pour fouiller des tweets 4 MapReduce

Plus en détail

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

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

Plus en détail

Contents Windows 8.1... 2

Contents Windows 8.1... 2 Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Calcul Parallèle. Cours 5 - JAVA RMI

Calcul Parallèle. Cours 5 - JAVA RMI Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation

Plus en détail

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives Hadoop, Spark & Big Data 2.0 Exploiter une grappe de calcul pour des problème des données massives Qui suis-je? Félix-Antoine Fortin Génie info. (B. Ing, M. Sc, ~PhD) Passionné de Python, Data Analytics,

Plus en détail

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

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

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

Plus en détail

Practice Direction. Class Proceedings

Practice Direction. Class Proceedings Effective Date: 2010/07/01 Number: PD - 5 Title: Practice Direction Class Proceedings Summary: This Practice Direction describes the procedure for requesting the assignment of a judge in a proceeding under

Plus en détail

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007 NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation

Plus en détail

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION 3615 SELFIE http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION Hardware : Minitel Computer DIN FM545 45 connector (http://www.gotronic.fr/art-fiche-din-fm545-4747.htm) Cable Arduino compatible

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

Plus en détail

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Fouillez facilement dans votre système Big Data. Olivier TAVARD Fouillez facilement dans votre système Big Data Olivier TAVARD A propos de moi : Cofondateur de la société France Labs Développeur (principalement Java) Formateur en technologies de moteurs de recherche

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne Online Applications Tutorial 1/4 Pour postuler aux Appels d Offres de l ENP, vous devez aller sur la plateforme : calls.parisneuroscience.fr.

Plus en détail

Guide d'installation rapide TFM-560X YO.13

Guide d'installation rapide TFM-560X YO.13 Guide d'installation rapide TFM-560X YO.13 Table of Contents Français 1 1. Avant de commencer 1 2. Procéder à l'installation 2 Troubleshooting 6 Version 06.08.2011 16. Select Install the software automatically

Plus en détail

http://blog.khaledtannir.net

http://blog.khaledtannir.net Algorithme de parallélisations des traitements Khaled TANNIR Doctorant CIFRE LARIS/ESTI http://blog.khaledtannir.net these@khaledtannir.net 2e SéRI 2010-2011 Jeudi 17 mars 2011 Présentation Doctorant CIFRE

Plus en détail

Exercices INF5171 : série #3 (Automne 2012)

Exercices INF5171 : série #3 (Automne 2012) Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre

Plus en détail

Dis papa, c est quoi un bus logiciel réparti?

Dis papa, c est quoi un bus logiciel réparti? Dis papa, c est quoi un bus logiciel réparti? Raphael.Marvie@lifl.fr LIFL IRCICA Equipe GOAL Octobre 2006 10. Des sockets aux bus logiciels répartis 1 0. Une application répartie 2 Objectif Découvrir la

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

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

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

Plus en détail

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/23 2/23 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition Surveillance de Scripts LUA et de réception d EVENT avec LoriotPro Extended & Broadcast Edition L objectif de ce document est de présenter une solution de surveillance de processus LUA au sein de la solution

Plus en détail

Plan. Department of Informatics

Plan. Department of Informatics Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Special Topics 7. Prise de recul critique Enterprise

Plus en détail

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

Plus en détail

1.The pronouns me, te, nous, and vous are object pronouns.

1.The pronouns me, te, nous, and vous are object pronouns. 1.The pronouns me, te, nous, and vous are object pronouns.! Marie t invite au théâtre?!! Oui, elle m invite au théâtre.! Elle te parle au téléphone?!! Oui, elle me parle au téléphone.! Le prof vous regarde?!!!

Plus en détail

Vanilla : Virtual Box

Vanilla : Virtual Box Vanilla : Virtual Box Installation Guide for Virtual Box appliance Guide d'installation de l'application VirtualBox Vanilla Charles Martin et Patrick Beaucamp BPM Conseil Contact : charles.martin@bpm-conseil.com,

Plus en détail

DOCUMENTATION - FRANCAIS... 2

DOCUMENTATION - FRANCAIS... 2 DOCUMENTATION MODULE SHOPDECORATION MODULE PRESTASHOP CREE PAR PRESTACREA INDEX : DOCUMENTATION - FRANCAIS... 2 INSTALLATION... 2 Installation automatique... 2 Installation manuelle... 2 Résolution des

Plus en détail

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009 Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009 Pôle de Calcul Intensif pour la mer, 11 Decembre 2009 CAPARMOR 2 La configuration actuelle Les conditions d'accès à distance règles d'exploitation

Plus en détail

Confirmation du titulaire de la carte en cas de contestation de transaction(s) Cardholder s Certification of Disputed Transactions

Confirmation du titulaire de la carte en cas de contestation de transaction(s) Cardholder s Certification of Disputed Transactions Confirmation du titulaire de la carte en cas de contestation de transaction(s) Cardholder s Certification of Disputed Transactions Informations personnelles Nom/Prénom Name / Firstname Numéro de la carte

Plus en détail

Conception des systèmes répartis

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

Plus en détail

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003. JAVA et Design Pattern Page 1/26 JAVA et Design Pattern Etude des Pattern Design Modélisation UML, Etude et critique des implémentations Java Par Laurent DESECHALLIERS Mastère Spécialisé en Management

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Programmation d Applications Concurrentes et Distribuées (INF431)

Programmation d Applications Concurrentes et Distribuées (INF431) Programmation d Applications Concurrentes et Distribuées (INF431) Julien Cervelle Albert Cohen Eric Goubault Francesco Zappa Nardelli François Pottier Samuel Mimram Benjamin Werner 1er janvier 2015 2 Table

Plus en détail

Our experience in using Apache Giraph for computing the diameter of large graphs. Paul Bertot - Flavian Jacquot

Our experience in using Apache Giraph for computing the diameter of large graphs. Paul Bertot - Flavian Jacquot Our experience in using Apache Giraph for computing the diameter of large graphs Paul Bertot - Flavian Jacquot Plan 1. 2. 3. 4. 5. 6. Contexte Hadoop Giraph L étude Partitionnement ifub 2 1. Contexte -

Plus en détail

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante : FOIRE AUX QUESTIONS COMMENT ADHÉRER? Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante : 275, boul des Braves Bureau 310 Terrebonne (Qc) J6W 3H6 La

Plus en détail

Android et le Cloud Computing

Android et le Cloud Computing Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un

Plus en détail

JSIam Introduction talk. Philippe Gradt. Grenoble, March 6th 2015

JSIam Introduction talk. Philippe Gradt. Grenoble, March 6th 2015 Introduction talk Philippe Gradt Grenoble, March 6th 2015 Introduction Invention Innovation Market validation is key. 1 Introduction Invention Innovation Market validation is key How to turn a product

Plus en détail

PARIS ROISSY CHARLES DE GAULLE

PARIS ROISSY CHARLES DE GAULLE GPS 2 34 1 E 49 0 46 N GPS* 2 56 56 E 49 0 12 N Votre contact / Your contact: et / and: Accueil : Cabines téléphoniques publiques Reception: Public telephone kiosks Navette Shuttle AÉROPORT DE TT CAR TRANSIT

Plus en détail

2013 IIHF WORLD WOMEN S HOCKEY CHAMPIONSHIP

2013 IIHF WORLD WOMEN S HOCKEY CHAMPIONSHIP 2013 IIHF WORLD WOMEN S HOCKEY CHAMPIONSHIP Name Mailing address Phone Girl s Hockey Association 2011/ 12 Team Name Email TICKET PACKAGE Price/ Seat 100 Level (12 games, Lower Bowl) $ 289 200 Level (12

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail