Merci pour vos commentaires. Je n'ai regarder jusqu' parallel
après que j'ai posté cette question.
Enfin, après quelques essais, je l'ai eu en cours d'exécution. J'ai ajouté le code ci-dessous dans le cas où il est utile à d'autres
library(foreach)
library(doParallel)
#setup parallel backend to use many processors
cores=detectCores()
cl <- makeCluster(cores[1]-1) #not to overload your computer
registerDoParallel(cl)
finalMatrix <- foreach(i=1:150000, .combine=cbind) %dopar% {
tempMatrix = functionThatDoesSomething() #calling a function
#do other things if you want
tempMatrix #Equivalent to finalMatrix = cbind(finalMatrix, tempMatrix)
}
#stop cluster
stopCluster(cl)
Remarque - je dois ajouter une note que si l'utilisateur affecte trop de processus, alors l'utilisateur peut obtenir cette erreur: Error in serialize(data, node$con) : error writing to connection
Remarque - Si .combine
dans la foreach
déclaration est - rbind
, puis la finale de l'objet retourné aurait été créé en ajoutant de sortie de chaque boucle de la ligne sage.
Espérons que cela est utile pour les gens à essayer le traitement parallèle dans R pour la première fois comme moi.
Références:
http://www.r-bloggers.com/parallel-r-loops-for-windows-and-linux/
https://beckmw.wordpress.com/2014/01/21/a-brief-foray-into-parallel-processing-with-r/