Je suis en train de comprendre comment utiliser mon cluster universitaire. Deux versions de R sont installées. La version 2.11 du système (Debian 6.0) et la version 2.14.2 dans un emplacement non standard.
J'essaie d'utiliser MPI avec snow. Le code que j'essaie d'exécuter est le suivant
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Il fonctionne sans les problèmes sur R 2.11. (Je lance le script avec mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Maintenant, lorsque j'essaie de le faire avec R 2.14.2, j'obtiens le message suivant :
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Il semble donc que R charge la version du paquet snow compilée pour R 2.11. J'ai installé snow sous R 2.14 dans mon dossier personnel et j'ai ajouté les lignes suivantes à mon code :
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
Et la sortie avant l'erreur confirme que j'utilise bien R 2.14.2 et que mon dossier de paquets R est le premier dans le chemin de recherche. Mais je reçois toujours l'erreur.
Ma question est donc la suivante : comment puis-je déterminer quelle version du paquet est chargée dans R ? Je peux voir avec installed.packages
tous les paquets qui sont installés, alors peut-être existe-t-il une fonction qui liste des informations similaires pour les paquets chargés ?
2 votes
Avez-vous trouvé une bonne solution à ce problème ? D'après mon expérience, et comme l'indique l'aide de R, sessionInfo et packageVersion renvoient tous deux la variable la version actuelle installée à l'endroit d'où le paquet a été chargé : elle peut être erronée si un autre processus a changé de paquet pendant la session.