comment faire tourner des scripts R sur un réseau de PC?

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

BAUDEMENT Marie-Odile
Messages : 2
Enregistré le : 08 Sep 2014, 15:07

comment faire tourner des scripts R sur un réseau de PC?

Messagepar BAUDEMENT Marie-Odile » 09 Sep 2014, 13:07

Bonjour à tous,
je voulais savoir si vous connaissiez un moyen (au moins juste me renseigner sur le nom exact de la méthode) qui pourrait me permettre de faire tourner des scripts R non pas en exploitant les capacités d'un seul PC, mais en exploitant les capacités de l'ensemble d'un réseau de PC (genre une vingtaine) ? Je ne parle pas d'un cluster, mais réellement de 20 machines en réseau.
En effet, malgré mes recherches, je n'ai pas réussi à me renseigner seul donc je me tourne vers vous.
je vous remercie par avance des petites pistes que vous pourrez me donner (liens internets ou autre).
Cordialement.

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Messagepar Dominique Soudant » 09 Sep 2014, 14:33

La seule chose que le problème m'évoque c'est la parallélisation. Et dans ce cadre on peut définir un cluster constitué de plusieurs machine et l'utiliser.
http://cran.r-project.org/web/views/Hig ... uting.html
Quelle différence faites vous entre un cluster et "réellement de 20 machines en réseau" ?

@+

BAUDEMENT Marie-Odile
Messages : 2
Enregistré le : 08 Sep 2014, 15:07

Messagepar BAUDEMENT Marie-Odile » 09 Sep 2014, 16:00

Bonjour,
merci pour ta réponse si rapide, et le lien, très complet.
Ce que je voulais entendre par "réellement de 20 machines en réseau", c'est qu'il n'y avait pas de PC administrateur ou maître dans ce réseau, que tous étaient au même niveau de hiérarchie.
Après, pour les solutions que je vois d'après ton lien, je pense que malheureusement je n'ai pas les compétences requises pour les mettre en place.
Je vais quand même tenter le coup, mais je ne suis pas sûr de la réussite.
Encore merci, au moins cela me fait un bon support pour explorer quand même cette possibilité.
Bonne fin de journée.

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Messagepar Dominique Soudant » 10 Sep 2014, 07:39

Je regaderais du coté de snow et snowfall :
Requirements
• snow (Simple Network Of Workstations) is the package
that implements parallel computing in R
• snowfall is a wrapper package for snow that diminishes
the learning curve
• a multi-core system
• standard for recent computers: dual-core, quad-core, or
• cluster of machines with a common mounted disk space
(home directory, ∼/)
• Assumption: Cluster is UNIX-based
source

Je ne sais pas si l'hypothèse finale est sine qua non, mais si c'est le cas, dans notre monde envahit par MS ça semble un frein. Une nouvelle fois je ne sais pas quel objectif tu poursuit avec cette idée de cluster de machines, mais si c'est le calcul parallèle, une machine multicoeur fait le job. J'ai un double xéon, soit 2*12=24 proc et 64 GO de RAM, le tout pour ~3K € HT et ça fait bien le job.

@+

matthieu faron
Messages : 586
Enregistré le : 16 Fév 2011, 11:23

Messagepar matthieu faron » 10 Sep 2014, 09:24

Bonjour,

Je n'ai jamais essayé mais pour un usage intensif mais ponctuel, plutôt que d'investir il est possible utiliser des processeurs et de la RAM "dans le cloud" pour une somme très raisonnable :
http://fr.slideshare.net/ianmcook/running-r-on-the-amazon-cloud-2013-0620
http://www.stat.yale.edu/~jay/EC2/CreateFromScratch.html
Matthieu FARON

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Messagepar Serge Rapenne » 10 Sep 2014, 10:21

Bonjour à tous,

Petite question pour Dominique, c'est quoi comme processeur Xeon. Car un processeur Xeon e7 12 coeurs seul coute plus cher que le prix de la machine complète que tu indiques ?

Serge

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Messagepar Mickael Canouil » 10 Sep 2014, 13:14

Sinon il faut passer par le calcul GPU avec CUDA par exemple (nécessite une carte Nvidia).

Il y a quelques paquets et autre tutoriel pour utiliser CUDA et R
Mickaël
mickael.canouil.fr | rlille.fr

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Messagepar Dominique Soudant » 10 Sep 2014, 13:18

Ce sont des processeurs pour serveur et qui ont la possibilité d'être montés à plusieurs sur une carte mère (ce sont des cartes mères spéciales qui coûte un bras aussi ... ), je crois me rappeler qu'ils ont un canal de communication dédié, c'est pas le cas des i7 par exemple. Par contre, mes xéon sont pas des bêtes de courses : j'ai une collègues qui a un i7 à 12 cœurs, pour une même tâche en multiproc on met le même temps => en monoproc elle tourne 2 fois plus vite que moi ... sauf qu'il faut qu'elle mette son portable dans la salle climatisée à 18° sinon le proc dépasse les 100°C alors que moi même à fond je dépasse pas les 65°C. Mes xéons sont des e5-2620.

Dans mon cas, ce qui me fait gagner du temps c'est vraiment de paralléliser, je ne voulais pas d'un proc plus rapide, je voulais plein de proc. Typiquement je vais traiter 80 séries temporelles à raison de 3 modèle par série => 240 modèles, à raison de 1 à 3 minutes par modèle pour les estimations du maximum de vraisemblance, arrondissons à 2 min => 480 min => 8H en monoproc => 20 min avec 24 proc (en réalité le gain de temps en multiproc n'est pas aussi mécanique que cela, mais on est pas loin je dois mettre 1/2H). Quand on développe un système comme celui là, attendre 8H pour avoir les résultats, chercher, corriger les pbs rencontrés avant de relancer le process, c'est juste ... usant, impossible, pas tenable.

Bref ...
@+

EDIT :
Mickael Canouil a écrit :CUDA
Ouuuuuu comment il m'intéresse lui, j'ai une nvidia qui m'affiche 48 cores ...

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Messagepar Mickael Canouil » 10 Sep 2014, 13:59

Des exemples de packages utilisant la puissance GPU
http://cran.r-project.org/web/packages/ ... index.html
http://cran.r-project.org/web/packages/ ... index.html

Il y a bien sûr des alternatives à l'outil propriétaire de nvidia.
Mickaël
mickael.canouil.fr | rlille.fr

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 14 Jan 2015, 09:18

Hello,

lors de la parallélisation, il faut quand même faire attention à quelques petites choses.

- Ne pas confondre cores et threads. Le multithreading est cool, mais c'est généralement + 20% en perf.

- Avoir suffisamment de mémoire pour alimenter les CPUs et pour gérer efficacement le partage des données. Si on travaille sur des jeux de données raisonnables, il n' y a pas de soucis. Mais, si on travaille sur des gros jeux de données (exemple DNA methylation pourlus de 500 indvidus), ça peut vite devenir toxique!

- La communication et la phase d'aggregation des données prennent du temps.


sinon, de façon plus général:

- R est une quiche dans la gestion de la mémoire! ... désolé :(

- Ne pas hésiter à user et abuser du garbage collector (gc). Par exemple, il est parfois plus efficace:
1) sauvegarder un objet (surtout si il est bien balaise :p)
2) vider la pile R
3) gc()
4) recharger l'objet pour continuer les calculs.

- L'utilisation de langage bas niveau permet gagner du temps de calcul (voir C, C++ et les packages type Rcpp) ... mais, c'est souvent plus long à écrire.

- On peut également changer de library BLAS et Lapack (ex. MKL, openBLAS, ...), mais c'est pas toujours compatible avec les autres fonctions de paralélisation.


les xeon phi semblent prometteurs (un mini-cluster à l'intérieur de la machine) mais le volume de mémoire disponible reste limité.

en espérant avoir aidé un peu ... et être encore un peu dans le sujet du post :)

@++ et bonne journée,


pierre


PS:Désolé de remonter ce post, mais je suis(re)tomber dessus par hasard :)
=@===--------¬-------¬------¬-----¬
liens utiles :
http://www.gnurou.org/Writing/SmartQuestionsFr
http://neogrifter.free.fr/welcomeOnInternet.jpg
]<((((*< -------------------------------

Alexis Thieullen
Messages : 128
Enregistré le : 04 Jan 2011, 12:11

Messagepar Alexis Thieullen » 14 Jan 2015, 16:14

Bonjour Pierre,

Je plussois fortement l'utilisation du garbage collector !
Pour le calcul parallèle, le package... "parallel" (incroyable !) est disponible depuis R 2.14 (ICI). A lire également.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité