Je cours une fonction en parallèle. Afin d'obtenir des mises à jour sur l'état d'avancement du travail, j'aimerais qu'un travailleur, mais un seul, fasse rapport périodiquement sur ses progrès. Ma pensée naturelle pour ce faire serait d'avoir la fonction que les travailleurs exécutent vérifier le nom du travailleur, et seulement donner la mise à jour de statut si le nom correspond à une valeur particulière. Mais, je ne peux pas trouver un moyen fiable de le déterminer à l'avance. Dans Julia par exemple, il existe une fonction simple myid()
qui donnera l'ID d'un travailleur (c'est-à-dire 1, 2, etc.). Je cherche quelque chose d'équivalent en R. Le meilleur que j'ai trouvé jusqu'ici est d'avoir chaque travailleur appelez Sys.getpid()
. Mais, je ne connais pas un moyen fiable d'écrire mon script pour savoir à l'avance quel serait l'un des pids assignés à un travailleur. Le script de fonctionnalités de base que je suis à la recherche d'écrire ressemble le ci-dessous, à l'exception que je suis à la recherche de l'équivalent de R à la fonction myid()
:R - Obtenir le nom du travailleur lorsqu'il est exécuté en parallèle
library(parallel)
Test_Fun = function(a){
for (idx in 1:10){
Sys.sleep(1)
if (myid() == 1){
print(idx)
}
}
}
mclapply(1:4, Test_Fun, mc.cores = 4)