Introduction à Rmpi
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Introduction à Rmpi

on

  • 304 views

 

Statistics

Views

Total Views
304
Views on SlideShare
304
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Introduction à Rmpi Presentation Transcript

  • 1. MEETUP R ADDICTS – PARALLELISATION ET CALCULS HAUTE PERFORMANCE Package Rmpi
  • 2. ©Keyrus-Allrightsreserved 2 CARTOGRAPHIE DU MONDE R HAUTE PERFORMANCE Parallélisme File Systems Algorithmique bigmemory ff biglmRODBC biglars biganalytics multicore snow rmr rhdfs bigtabulate bigalgebra rhbase RHadoop The Bigmemory Project Rmpi Forking de sessions ; unix only Cloning de sessions + gestion manuelle de la communication entre sessions Couche d’abstraction pour MPI, PVD et sockets Implémentation MapReduce Matrices numériques only
  • 3. ©Keyrus-Allrightsreserved 3 PRÉSENTATION DE RMPI  MPI  MPI signifie Message Passing Interface. MPI définit un environnement dans lequel des programmes fonctionnent en paralléle et communiquent entre eux en s’envoyant des messages.  Chaque programme possède une file de message (FIFO) et peut placer un message dans la file d’un autre programme  Lorsqu’il le souhaite, un programme peut traiter un message dans sa file  OpenMPI  Implémentation Open Source de MPI  Maintenue et en développment actif  Implémentation préconisée par le développeur du package Rmpi  Rmpi  Requiert l’installation d’une implémentation de MPI (ex: OpenMPI)  Package Rmpi_x.y-r.tar.gz à télécharger sur le CRAN
  • 4. ©Keyrus-Allrightsreserved 4 FONCTIONS PRINCIPALES  Ouvrir/fermer les slaves  mpi.spawn.Rslaves(nslaves)  mpi.close.Rslaves()  Identifier les slaves  mpi.comm.size()  mpi.comm.rank()  Envoyer/recevoir des objets  mpi.send.Robj(obj, ,destination,tag)  mpi.recv.Robj(source,tag)  mpi.bcast.Robj2slave(thedata)  Faire exécuter du code aux slaves  mpi.bcast.cmd(« Rcode »)  mpi.remote.exec(« Rcode »)
  • 5. ©Keyrus-Allrightsreserved 5 COMMUNIQUER ENTRE SESSIONS PARALLELLES  Brute force  N tâches = n slaves  Le master distribue les n tâches aux n slaves  Task push  N tâches >> n slaves  Le master attribue N1, N2, N3… Nn tâches aux n slaves  Chaque slave réalise une tâche puis demande la suivante au master  Par rapport au brute force, moins coûteux en mémoire  Task pull  N tâches >> n slaves  Le master donne une tâche aux slaves disponibles  Quand une tâche est traitée, le slave informe le master de sa disponibilité  Par rapport au task push :  On ne sait pas par avance quel slave va réaliser quelle tâche  Gére automatiquement des différences de perf entre slaves
  • 6. ©Keyrus-Allrightsreserved 6 TASK PULL MasterSlave 1 Slave 2 Slave 1 Ready Do Task 1 Done Task 1 Do Task 3 Done Task 3 All Tasks Sent Slave 1 Done Stop Slave 1 Stop Master Stop Slave 2 Slave 2 Ready Do Task 2 Done Task 2 All Tasks Sent Slave 2 Done Do Task 1 Do Task 3 Do Task 2 Slave 1 Ready
  • 7. ©Keyrus-Allrightsreserved 7 CONCLUSION  Permet une gestion low-level du parallélisme  Nécessite plus de développement que des solutions « packagées » (foreach, snow…)  Très souple  Très performante (communications « instantanées »)  Plus simple qu’il n’en a l’air  Ressources  http://math.acadiau.ca  http://www.stats.uwo.ca/faculty/yu/Rmpi/install.htm
  • 8. ©Keyrus-Allrightsreserved 8 CONTACT Pierre Petronin Porteur de l’offre Statistiques Keyrus France Pierre.Petronin@keyrus.com Mobile : +33 (0)6 99 33 19 97