MEETUP R ADDICTS – PARALLELISATION ET CALCULS HAUTE
PERFORMANCE
Package Rmpi
©Keyrus-Allrightsreserved
2
CARTOGRAPHIE DU MONDE R HAUTE PERFORMANCE
Parallélisme File Systems Algorithmique
bigmemory
ff...
©Keyrus-Allrightsreserved
3
PRÉSENTATION DE RMPI
 MPI
 MPI signifie Message Passing Interface. MPI définit un environnem...
©Keyrus-Allrightsreserved
4
FONCTIONS PRINCIPALES
 Ouvrir/fermer les slaves
 mpi.spawn.Rslaves(nslaves)
 mpi.close.Rsla...
©Keyrus-Allrightsreserved
5
COMMUNIQUER ENTRE SESSIONS PARALLELLES
 Brute force
 N tâches = n slaves
 Le master distrib...
©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 ...
©Keyrus-Allrightsreserved
7
CONCLUSION
 Permet une gestion low-level du parallélisme
 Nécessite plus de développement qu...
©Keyrus-Allrightsreserved
8
CONTACT
Pierre Petronin
Porteur de l’offre Statistiques
Keyrus France
Pierre.Petronin@keyrus.c...
Prochain SlideShare
Chargement dans…5
×

Introduction à Rmpi

389 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
389
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
9
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à Rmpi

  1. 1. MEETUP R ADDICTS – PARALLELISATION ET CALCULS HAUTE PERFORMANCE Package Rmpi
  2. 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. 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. 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. 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. 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. 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. 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

×