Diviser pour calculer plus vite Fork - Join. riveill@unice.fr h.p://

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

Download "Diviser pour calculer plus vite Fork - Join. riveill@unice.fr h.p://www.i3s.unice.fr/~riveill"

Transcription

1 Diviser pour calculer plus vite Fork - Join riveill@unice.fr h.p://

2 Quelques modèles en programma>on parallèle et leur mise en œuvre en Java 2

3 Situa>on 1 Il existe de nombreux problèmes organisés de la manière suivante : données données données Calcul Calcul Calcul Synchronisa>on et échange des données Les données peuvent être iden>ques ou non Les calcul peuvent être iden>que ou non, l important c est qu ils s effectuent sur des données indépendantes 3

4 Synchroniser un ensemble de thread : la barrière Idée : tous les processus franchissent au même moment la barrière Implémenta-on : Facile à implémenter par un moniteur ou avec des sémaphores a été introduit dans Java 7 Principe en Java 7 : Un processus crée un objet barrière il donne le nombre N de processus a.endu Chaque processus exécute «await» sur l objet barrière Quand N est a.eint, la barrière s ouvre 4

5 La barrière public class MonRunnable implements Runnable { private CyclicBarrier barrier; string name = Thread.currentThread().getName(); public MonRunnable(CyclicBarrier barrier) { this.barrier = 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

6 La barrière 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"); ); //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

7 La barrière Un exemple d exécu>on 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éini>aliser la barrière reset() 7

8 La barrière en Java 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

9 Spurious wakeup h6p://docs.oracle.com/javase/7/docs/api/java/lang/object.html A thread can also wake up without being no>fied, interrupted, or >ming out, a so- called spurious wakeup. While this will rarely occur in prac>ce, applica>ons must guard against it by tes>ng for the condi>on that should have caused the thread to be awakened, and con>nuing to wait if the condi>on is not sa>sfied. In other words, waits should always occur in loops, like this one: Arrive en par>culier sur synchronized (obj) { Linux car mise en œuvre while (<condition does not hold>) de la JVM avec les pthread qui me.ent en obj.wait(timeout); gardent contre les... // Perform action «Spurius wakeup» For more informa>on on this topic, see Sec>on in Doug Lea's "Concurrent Programming in Java (Second Edi>on)" (Addison- Wesley, 2000), or Item 50 in Joshua Bloch's "Effec>ve Java Programming Language Guide" (Addison- Wesley, 2001). 9

10 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; 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; Prise en compte du Spurious wakeup notifyall(); 10

11 Situa>on 2 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 a.end la terminaison des différents calculs (join) Pa.ern de calcul fork- join 11

12 Proposi>on de solu>on Principe de mise en œuvre Créa>on d autant de tâches que de sous- problèmes Exécu>on en parallèle de toutes ces tâches A.ente de la fin de toutes les tâches (barrière) Java moniteur Class { int i; Synchronized a.endre (int N) { i := N; wait (); Synchronized fini () { i- - ; if (i<=0) no>fy (); // appel thread principale // appel des N thread filles Java semaphore for (i:=0; i++; i<n) s.down(); s.up (); Fusion des résultats par>els // appel thread principale // appel des N thread filles Depuis Java 7 il est possible de traiter ce cas directement avec le modèle fork- join 12

13 Cas d u>lisa>on 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écomposi>on en sous- tâches peut être : sta>que : découper un tableau en zones fixes dynamique : découvrir une arborescence de fichiers A.en>on à maîtriser le volume de tâches créées récursive

14 Problème 1 : contrôler le nombre de thread en ac>vité 14

15 Contrôle du parallélisme Le parallélisme c est bien mieux si on peut effec-vement calculer en parallèle Exploita>on d une l architecture mul>- 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 ques>on du nombre de threads qui était effec>vement exécuté en // Un modèle : les «pools» de thread Créer une thread coûte cher Alors on recycle J 15

16 Pool de thread 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éra>ons bloquantes (entrée/sor>e, 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 16

17 Classe Executors une autre manière d ac>ver une thread public class MonRunnable implements Runnable { public void run(){ System.out.println("Debut execution dans le thread " //On simule un traitement long Thread.sleep(4000); +Thread.currentThread().getName()); System.out.println("Fin execution dans le thread " Solu>on déjà connue +Thread.currentThread().getName()); Thread thread = new Thread(new MonRunnable()); thread.start(); En u>lisant l interface Executor Executor executor = Executors.newSingleThreadExecutor(); executor.execute(new MonRunnable()); 17

18 Classe Executors : exécu>on séquen>elle des tâches List<Runnable> runnables = new ArrayList<Runnable>(); //création de 4 tâches runnables.add(new MonRunnable()); runnables.add(new MonRunnable()); runnables.add(new MonRunnable()); runnables.add(new MonRunnable()); //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

19 Classe Executors : exécu>on séquen>elle des tâches Serveur Le CPU est inac>f pendant les E/S A A CPU B C C B File contenant les requêtes en a.ente Avantage Facile à u>liser 19

20 Classe Executors : exécu>on séquen>elle des tâches Evidemment les traces d exécu>on 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 20

21 Classe Executors : exécu>on parallèle des tâches List<Runnable> runnables = new ArrayList<Runnable>(); //création de 4 tâches runnables.add(new MonRunnable()); runnables.add(new MonRunnable()); runnables.add(new MonRunnable()); runnables.add(new MonRunnable()); Seul changement //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

22 Classe Executors : exécu>on parallèle des tâches Serveur Un nombre op>mum de thread peut être créé et recyclé A A CPU B CPU B C C Avantage Moins de requête dans la file d a.ente Minimize la créa>on /destruc>on de thread Désavantage Nécessité de «tunning» pour >rer le meilleur par> du matériel Pas facile à me.re en œuvre avant Java

23 Classe Executors : exécu>on parallèle des tâches Un exemple d exécu>on 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 23

24 Problème 2 : lancer un calcul et récupérer plus tard son résultat 24

25 Un modèle : l appel asynchrone avec avec future Appel synchrone appelant client appelé serveur Appel asynchrone avec futur appelant client appelé serveur futur execute() submit() new() returns() get() returns() put() Appel de méthode Appel de procédure à distance (RPC) Client- serveur Acteurs / objets ac>fs Appel aynchrone de procédure à distance (A- RPC) 25

26 Runnable versus Callable<T> Runnable Introduced in Java 1.0 Runnable cannot be parametrized Classes implemen>ng Runnable needs to implement run() method Runnable.run() returns no Value Can not throw Checked Excep>ons publicinterfacerunnable { void run(); Callable<T> Introduced in Java 1.5 as part of java.u>l.concurrent library Callable is a parametrized type whose type parameter indicates the return type of its run method Classes implemen>ng Callable needs to implement call() method Callable.call() returns a value of Type T Can throw Checked Excep>ons publicinterfacecallable<v>{ V call() throwsexception; 26

27 Classe Callable 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); 27

28 La classe Future<T> // 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(); 28

29 Appel asynchrone avec futur Exemple de trace Apres submit Debut execution Fin execution Resultat=6 Avant shutdown 29

30 Mise en oeuvre du modèle fork- join en Java 30

31 Mise en oeuvre du pa.ern forkjoin en Java Exemple >ré de : h.p://fr.openclassrooms.com/informa>que/cours/apprenez- a- programmer- en- java/depuis- java- 7- le- pa.ern- 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 31

32 Algorithme Dans chaque répertoire : On lance une nouvelle analyse pour chaque sous- répertoires On compte le nombre de fichier correspondant au filtre On a.end la terminaison des analyses des sous répertoires et on addi>onne le nombre de fichier trouvé 32

33 Approche séquen>elle Il y a 92 fichier(s) portant l'extension *.psd Temps de traitement : U>lisa>on de 4 coeurs Il y a 92 fichier(s) portant l'extension *.psd Temps de traitement : Mais temps d a.ente presque 3 fois plus cours 33

34 Le pa.ern forkjoin 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écu>on 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écu>on de ce.e 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()... 34

35 ForkJoinTask 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 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()

36 Main // Nombre de processeurs disponibles int processeurs = Run>me.getRun>me().availableProcessors(); // Créa>on du pool de thread ForkJoinPool pool = new ForkJoinPool(processeurs); // Créa>on de l'objet FolderScanner FolderScanner fs = new FolderScanner(chemin, filtre); // Créa>on de l'objet FolderScanner RecursiveTask<Long> fs = new FolderScanner(chemin, filtre); // Analyse resultat = fs.sequen>alscan(); // Analyse resultat = pool.invoke(fs); // exécute compute // Un transparent qui suit décrit : // sequen>alscan // Un transparent qui suit décrit : // compute 36

37 Synchrone ou Asynchrone? (ForkJoinPool) Resultat = pool.invoke(fs); est équivalent à : Resultat = pool.execute(fs); est équivalent à : pool.invoke(fs); pool.execute(fs); Bla bla bla resultat = fs.join(); Bla bla bla resultat = fs.join(); 37

38 FolderScanner public class FolderScanner { public long sequen>alscan() { // Récupéra>on de la liste des fichiers du répertoire d analyse DirectoryStream<Path> lis>ng = Files.newDirectoryStream(path)); for (Path nom : lis>ng) { if (Files.isDirectory(nom.toAbsolutePath())) { // S'il s'agit d'un dossier il est analysé result += new FolderScanner( nom.toabsolutepath(), this.filter).sequen>alscan(); // Récupéra>on de la liste des fichiers répondant au filtre DirectoryStream<Path> lis>ng = Files.newDirectoryStream(path, this.filter)); for (Path nom : lis>ng){ // Pour chaque fichier, on incrémente le compteur result++; public class FolderScanner extends RecursiveTask<Long> public Long compute() { // Récupéra>on de la liste des fichiers du répertoire d analyse DirectoryStream<Path> lis>ng = Files.newDirectoryStream(path)); for (Path nom : lis>ng) { 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éra>on de la liste des fichiers répondant au filtre DirectoryStream<Path> lis>ng = Files.newDirectoryStream(path, this.filter)); for (Path nom : lis>ng) { // Pour chaque fichier, on incrémente le compteur result++; // Récupéra>on du résultat de toutes les sous- tâches for (ForkJoinTask<Long> subtask : subtasks) result += subtask.join(); return result; return result; 38

39 Synchrone ou asynchrone? (ForkJoinTask/RecursiveTask/RecursiveAc>on) if (Files.isDirectory(nom.toAbsolutePath())) { // S'il s'agit d'un dossier il est analysé ForkJoinTask<Long> fs = new FolderScanner( nom.toabsolutepath(), this.filter) 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();.fork(); fs.invoke(); fs.fork(); Bla bla bla fs.join(); Bla bla bla fs.join(); 39

40 Asynchronisme et tâches récursives (RecursiveTask) // correct protected Long compute() { List<ForkJoinTask<Long>> subtasks = new ArrayList<>(); long size = 0; // Incorrect protected Long compute() { ForkJoinTask<Long> subtask; long size = 0; 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 a.end tout de suite */

41 Bonnes pra>ques A.en>on au coût de ges>on Le bénéfice obtenu en parallélisant un traitement doit être supérieur au coût de ges>on par le framework Trouver la bonne granularité A.en>on à la consomma>on mémoire Grosses structures : préférer la modifica>on "in- place" Découverte dynamique des sous- tâches A.en>on à la complexité Op>misa>on prématurée? Maintenance

42 Op>misa>ons Framework Fork / Join Threads >= Degré de parallélisme Les tâches en a.ente de join() sont mises de côté pour perme.re à d'autres tâches d'être traitées Tâches Eviter la synchronisa>on manuelle U>liser fork() et join() uniquement Op>miser la granularité à l'aide des sta>s>ques du pool getqueuedsubmissioncount(), getstealcount()... Possibilité d'op>misa>on dynamique

43 Quelques références qui m ont aidées pour préparer ce cours API Java 7, package java.u>l.concurrent h.p://download.java.net/jdk7/docs/api/ Etude de Doug Lea h.p://gee.cs.oswego.edu/dl/papers/ˆ.pdf Des blogs/tutoriaux h.p:// join html h.p://blog.paumard.org/2011/07/05/java- 7- fork- join/ h.p://sdz.tdct.org/sdz/le- framework- executor.html h.p://fr.openclassrooms.com/informa>que/cours/apprenez- a- programmer- en- java/depuis- java- 7- le- pa.ern- fork- join

44 Un modèle proche mais complémentaire Map Reduce Sera présenté en détail dans certains parcours de 5ème année 44

45 Map Reduce Modèle de programma>on très contraint qui permet Une parallélisa>on automa>que De l équilibrage de charge Des op>misa>ons 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 sor>es et les trier selon les clés K2 4. Reduce Exécuté une fois la phase Map terminée Agréga>on en liste de toutes les valeurs intermédiaires associées à une clé K2 Agréga>on est une opéra>on associa>ve Reduce: <K2, list(v2) > à list (K3, V3) bien souvent : K2 = K3 5. Ecrire les données 45

46 Exemple 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 addi>onnées pour chaque mot (a, 1, 1), (b, 1, 1), (c, 1), à (a, 2), (b, 2), (c, 1) 46

47 Exemple : Compter l occurrence de chaque mots dans un ensemble de fichiers Map Map: <K1, V1> à list (K2, V2) Exemple: K1 = nom du fichier, permet d associer chaque fichier à un noeud qui va traiter la fonc>on Map V1 = contenu du fichier K2 = mot V2 = 1 (présence d une occurrence) Pomme Orange Poire Pomme Pomme Orange Poire Orange Map <Pomme, 1> <Orange, 1> <Poire, 1> <Pomme, 1> <Pomme, 1> <Orange, 1> <Poire, 1> <Orange, 1> Map 47

48 Exemple (suite) 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 fonc>on reduce V2 = 1 (présence d une occurrence) K3 = K2 V3 = N (nbre d occurrence détectée) La fonc>on d aggréga>on est la somme, elle est bien associa>ve <Pomme, 1, 1, 1> Reduce <Pomme, 3> <Orange, 1, 1, 1> Reduce <Orange, 3> <Poire, 1, 1> Reduce <Poire, 2> 48

49 Exemple Pomme Pomme Orange Orange Poire Poire Pomme Orange S P L I T Pomme Orange Poire Pomme Pomme Orange Poire Orange Map Map <Pomme, 1> <Orange, 1> <Poire, 1> <Pomme, 1> <Pomme, 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> <Pomme, 1, 1, 1> <Orange, 3> Reduce <Poire, 2> Reduce <Pomme, 3> Reduce 49

50 Exemple (Mise en oeuvre) L u>lisateur programme les fonc>ons 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 fonc>ons SPLIT / SORT mais aussi la ges>on du flux de données 50

51 ForkJoin versus MapReduce ForkJoin Single machine Takes advantage of mul>ple cores ForkJoin recursively par>>ons 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 restric>ons of shared- memory, single node architectures. No fault tolerance No distribu>on Exist in Java since Java 7 MapReduce Cluster machine Take advantages of cluster machine. Massively scalable. Does only one big split, with no communica>on between the parts un>l 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 implementa>on, transparent task distribu>on Exist since 2004 Popularized by google Open source implementa>on: hadoop (h.p://hadoop.apache.org/) 51

52 Q&A h.p:// 53

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

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

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

Évolu>on et maintenance

Évolu>on et maintenance IFT3912 Développement et maintenance de logiciels Évolu>on et maintenance Bruno Dufour Université de Montréal dufour@iro.umontreal.ca Modifica>on des logiciels Les modifica>ons sont inévitables Des nouveaux

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

Les termes du cloud CUMULO NUMBIO 2015 O. COLLIN

Les termes du cloud CUMULO NUMBIO 2015 O. COLLIN Les termes du cloud CUMULO NUMBIO 2015 O. COLLIN Agenda Pe$t glossaire du cloud : termes qui seront u$lisés lors de ce5e école Virtualisa$on CMP Environnement Bioinforma$que Linux Comment les machines

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

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

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

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

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

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

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

Architecture matériel et logiciel 2

Architecture matériel et logiciel 2 Architecture matériel et logiciel 2 Architectures Venera Arnaoudova Concep8on architecturale 1. Introduc8on 2. Modéliser l architecture avec UML 3. Éléments architecturaux 4. Styles architecturaux 1. Architecture

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

LA LOGISTIQUE LES BONNES QUESTIONS À SE POSER

LA LOGISTIQUE LES BONNES QUESTIONS À SE POSER LA LOGISTIQUE LES BONNES QUESTIONS À SE POSER Les bonnes questions à se poser 1. Qui sont mes clients (à qui vais- je vendre sur Internet)? 2. Ai- je du temps à consacrer à ma bou?que en ligne? 3. Ma

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

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

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

Qui sommes nous? Partie 1

Qui sommes nous? Partie 1 Qui sommes nous? Partie 1 A propos 10 collaborateurs Une exper)se à 360 Agence cer)fiée Google Partners Mul)lingues Présenta)on: Global Riviera est une agence webmarke/ng basée en région PACA. Fondée par

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

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que CQP 112 Introduc/on à la programma/on Thème 2 : Architecture d un système informa/que Département d informa/que CQP 112 : Introduc/on à la programma/on Plan 1. Historique des ordinateurs 2. Composants

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

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

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

Présentation Level5. Editeur de Logiciels. «If it s not monitored, it s not in production» Theo Schlossnagle #velocityconf

Présentation Level5. Editeur de Logiciels. «If it s not monitored, it s not in production» Theo Schlossnagle #velocityconf Editeur de Logiciels Présentation Level5 «If it s not monitored, it s not in production» Theo Schlossnagle #velocityconf «If you can not measure it, you can not improve it» Lord Kelvin vous accompagne

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

[ La série de normes EN 50600-x-y, Réponse de l Europe à l Uptime Institute et au TIA 942-A? ]

[ La série de normes EN 50600-x-y, Réponse de l Europe à l Uptime Institute et au TIA 942-A? ] [ La série de normes EN 50600-x-y, Réponse de l Europe à l Uptime Institute et au TIA 942-A? ] Stéphane Jaquet DCC Consulting, Directeur Membre du TK215 / Electrosuisse 17 septembre 2014 Agenda 1. Les

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

DOCUMENTATION KAPTravel Module de gestion des appels de disponibilité

DOCUMENTATION KAPTravel Module de gestion des appels de disponibilité DOCUMENTATION KAPTravel Module de gestion des appels de disponibilité 01/06/15 KAPT Tous Droits Réservés 2 PRÉSENTATION Ce+e présenta3on va vous perme+re de prendre en main la plateforme de ges3on KAPTravel

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

Arbres binaires de recherche

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

Plus en détail

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

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

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

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