J'ai des scripts R pour lire de grandes quantités de données csv à partir de différents fichiers, puis effectuer des tâches d'apprentissage automatique telles que svm pour la classification.
Existe-t-il des bibliothèques permettant d'utiliser plusieurs cœurs sur le serveur pour R.
ou
Quel est le moyen le plus approprié pour y parvenir?
r
parallel-computing
multicore
Mohans
la source
la source
Réponses:
Si c'est sous Linux, le plus simple est le multicœur . Au-delà de cela, je suggère de jeter un œil à MPI (en particulier avec le forfait neige ).
Plus généralement, jetez un œil à:
Enfin, je recommande d'utiliser le package foreach pour résumer le backend parallèle dans votre code. Cela le rendra plus utile à long terme.
la source
Si vous utilisez GNU / Linux, les réponses précédentes de Shane et Dirk sont excellentes.
Si vous avez besoin d'une solution pour Windows, il y en a une dans ce post:
Traitement multicœur parallèle avec R (sous Windows)
Bien que le package ne soit pas encore sur CRAN. il peut être téléchargé à partir de ce lien.
la source
Shane a raison. Le multicœur et le Rmpi sont tous deux gagnants.
La couverture du sujet est légèrement plus large dans la vue des tâches du CRAN sur le calcul haute performance . Cela renvoie également à un article d'enquête assez récent sur le calcul parallèle avec R de JSS.
Enfin, quelques exemples pratiques et conseils se trouvent dans le didacticiel d' introduction au HPC avec R que je donne de temps en temps - voir ma page de présentations pour la copie la plus récente de la semaine dernière sur useR.
la source
J'ai remarqué que les réponses précédentes manquent de considérations HPC générales.
Tout d'abord, aucun de ces packages ne vous permettra d'exécuter un SVM en parallèle. Donc, ce que vous pouvez accélérer est l'optimisation des paramètres ou la validation croisée, vous devez toujours écrire vos propres fonctions pour cela. Ou bien sûr, vous pouvez exécuter le travail pour différents jeux de données en parallèle, si c'est le cas.
Le deuxième problème est la mémoire; si vous voulez répartir le calcul sur quelques ordinateurs physiques, il n'y a pas de déjeuner gratuit et vous devez copier les données - ici, vous devez considérer s'il est logique de prédistribuer une copie des données sur les ordinateurs pour économiser la communication. D'un autre côté, si vous souhaitez utiliser plusieurs cœurs sur un ordinateur, le multicœur est particulièrement approprié car il permet à tous les processus enfants d'accéder à la mémoire du processus parent, ce qui vous permet d'économiser du temps et beaucoup d'espace mémoire.
la source
sprint
pour R avec une fonctionpsvm
, mais ils sont un peu en retard pour suivre les modifications de R 3.0 et les nouvelles directives de soumission de CRAN, donc le téléchargement actuel n'est ni disponible sur CRAN ni entièrement compatible avec R 3.0. Votre kilométrage peut varier.Les réponses de Shane et Dirk sont parfaites.
Néanmoins, vous voudrez peut-être jeter un œil à une version commerciale de R, appelée Revolution R, qui est conçue pour gérer des ensembles de données volumineux et fonctionner sur plusieurs cœurs. Ce logiciel est gratuit pour les universitaires (ce qui pourrait être votre cas, je ne sais pas)
la source