Les posteurs les plus actifs de la semaine
Fred_44
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 
Eric Wajnberg
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 
zezima
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 
Volivoile
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 
Ayana
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 
gg
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 
ayoubas01
Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_lcapEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Voting_barEnvoie moi ton parallélisme sous R Joyeux_lapin13 ! Vote_rcap 


Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par skaperla le Jeu 24 Mai 2012 - 12:14

Bonjour tout le monde,
J'ai vu la discussion sur les simulations sous SAS et les calculs en parallèle et ça m'a fait rêver donc je voudrais faire ça sous R :
Le plus simple pour mon code aurait été d'utiliser la fonction mclapply du package multicore, mais malheureusement j'ai windows au boulot donc c'est mort.
Joyeux_lapin13 tu parlais du package doSNOW et du coup ça m'intéresse, mais j'ai un peu de mal à comprendre comment ça fonctionne, est ce que tu pourrais m'en dire plus ?
Toute autre aide est la bienvenue aussi Smile
Merci d'avance
Skaperla
skaperla
skaperla

Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par joyeux_lapin13 le Jeu 24 Mai 2012 - 12:44

Le problème du parallélisme c'est d'abord de savoir s'il peut s'appliquer à ton cas, que cherches-tu à faire?

Sinon c'est extrêmement simple avec R, ça consiste à distribuer tes calculs sur plusieurs serveurs ou coeurs (résumons au mot processeur par conséquent) et donc de diviser le nombre de calcul par le nombre de processeurs que tu as à disposition. doSNOW fait très bien ça mais est limité à 120 cores, au dessus ça crash.

Si ça peut attendre je verrais de mettre un exemple sur le topic épinglé de ce forum courant semaine prochaine, dans le cas contraire rien ne t'empêche de m'en dire plus sur ce que tu souhaites paralléliser.
joyeux_lapin13
joyeux_lapin13

Nombre de messages : 1925
Age : 36
Localisation : Mayotte
Date d'inscription : 21/04/2010

https://lemakistatheux.wordpress.com/

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par skaperla le Jeu 24 Mai 2012 - 13:02

Alors, je simule des données sous différents scenarii et ensuite je les analyse. Donc pour chaque scenario je simule disons 1000 données et je fais 1000 analyses et après je fais des moyennes, de graphiques et des trucs. J'ai donc écrit une fonction boucle() qui simule un jeu de données et produit une analyse (et renvoie le résultat de l'analyse), et en simplifiant beaucoup, mon code ressemble un peu à ça :

Code:
for (i in 1:10){
scenario<-scenarii[i]
    resultat<-apply(1:1000,boucle)
    write.table(resultat,paste("resultat_",i,".txt))
}

ça fonctionne super, ça prend juste un peu trop de temps.
Une proposition ?
Merci,
Skaperla
skaperla
skaperla

Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par joyeux_lapin13 le Jeu 24 Mai 2012 - 13:07

Et bien dans ton cas tu peux paralléliser tes itérations i, en définissant k ton nombre de processeurs/cores dans ton cas, au lieu de les traiter 1 une par 1 tu pourras les traiter k par k.

Combien de coeurs sur ton PC?
joyeux_lapin13
joyeux_lapin13

Nombre de messages : 1925
Age : 36
Localisation : Mayotte
Date d'inscription : 21/04/2010

https://lemakistatheux.wordpress.com/

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par skaperla le Jeu 24 Mai 2012 - 13:26

Quatre de coeur.

Ouai ça va être super !! Et donc ça je le fais avec le package doSNOW ? D'après ce que j'ai compris tu définis k avec la fonction makeCluster, et après ça m'a semblé un peu complexe...
skaperla
skaperla

Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par joyeux_lapin13 le Jeu 24 Mai 2012 - 13:33

Essaie ça:

Code:

  nbcore = 3
  library(doSNOW)
  cl = makeCluster(nbcore, "SOCK")
  registerDoSNOW(cl)

  test= foreach(i = 1:10, .combine = rbind) %dopar% {
          [ton code]
          }

 stopCluster(cl)

NB important: il faut que chacune de tes itérations soient "indépendantes"!
joyeux_lapin13
joyeux_lapin13

Nombre de messages : 1925
Age : 36
Localisation : Mayotte
Date d'inscription : 21/04/2010

https://lemakistatheux.wordpress.com/

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par skaperla le Jeu 24 Mai 2012 - 14:14

Misère !
ça ne fonctionne pas (erreur= une fonction qui est utilisée est inconnue alors que pas du tout il l'a connait hein) mais je pense que c'est parce que dans mon code j'utilise un autre logiciel lancé par R et c'est là que ça coince parce qu'on doit pas pouvoir le lancer plusieurs fois. D'ailleurs en remplaçant %dopar% par %do% ça fonctionne en séquentiel

Merci beaucoup en tout cas de m'avoir expliqué tout ça, ça me servira surement par la suite !

Ah et une dernière question, pourquoi nbcore=3 et pas 4 ?
skaperla
skaperla

Nombre de messages : 18
Localisation : Tours
Date d'inscription : 11/05/2011

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par joyeux_lapin13 le Jeu 24 Mai 2012 - 14:26

Si tu as besoin d'utiliser des fonctions de package dans ta boucle foreach il te faut les importer dans les sessions filles avec la syntaxe:
Code:
clusterCall(cl, function() library(nom du package))

Etant donné que tu lances sur ton PC, dans le doute il vaut mieux prendre 3 cores au lieu de 4 et t'en gardé un pour faire autre chose au cas où. Par contre surveille tes ventilos car tu vas monopoliser 75% de ton PC et ça ça chauffe.
joyeux_lapin13
joyeux_lapin13

Nombre de messages : 1925
Age : 36
Localisation : Mayotte
Date d'inscription : 21/04/2010

https://lemakistatheux.wordpress.com/

Revenir en haut Aller en bas

Envoie moi ton parallélisme sous R Joyeux_lapin13 ! Empty Re: Envoie moi ton parallélisme sous R Joyeux_lapin13 !

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum