Ich habe R-Skripte zum Lesen großer Mengen von CSV-Daten aus verschiedenen Dateien und führe dann maschinelle Lernaufgaben wie SVM zur Klassifizierung durch.
Gibt es Bibliotheken für die Verwendung mehrerer Kerne auf dem Server für R.
oder
Was ist der geeignetste Weg, um dies zu erreichen?
r
parallel-computing
multicore
Mohans
quelle
quelle
Antworten:
Unter Linux ist Multicore am einfachsten . Darüber hinaus empfehle ich einen Blick auf MPI (vor allem mit dem Schneepaket ).
Im Allgemeinen werfen Sie einen Blick auf:
Zuletzt empfehle ich die Verwendung des foreach- Pakets, um das parallele Backend in Ihrem Code zu abstrahieren. Das wird es auf lange Sicht nützlicher machen.
quelle
Wenn Sie GNU / Linux verwenden, sind die vorherigen Antworten von Shane und Dirk großartig.
Wenn Sie eine Lösung für Windows benötigen, gibt es eine in diesem Beitrag:
Parallele Multicore-Verarbeitung mit R (unter Windows)
Obwohl das Paket noch nicht auf CRAN ist. es kann von diesem Link heruntergeladen werden.
quelle
Shane ist richtig. Sowohl Multicore als auch Rmpi sind Gewinner.
Eine etwas breitere Darstellung des Themas finden Sie in der CRAN-Task-Ansicht für High-Performance-Computing . Dies ist auch ein Link zu einem relativ aktuellen Umfrageartikel zu Parallel Computing with R von JSS.
Abschließend finden Sie einige praktische Beispiele und Tipps in der Einführung zu HPC mit R, die ich gelegentlich gebe. Die neueste Ausgabe der letzten Woche bei useR finden Sie auf meiner Präsentationsseite .
quelle
Mir ist aufgefallen, dass in den vorherigen Antworten einige allgemeine HPC-Überlegungen fehlen.
Zunächst einmal können Sie mit keinem dieser Pakete eine SVM parallel ausführen . Was Sie also beschleunigen können, ist die Parameteroptimierung oder die Kreuzvalidierung. Dafür müssen Sie jedoch Ihre eigenen Funktionen schreiben. Alternativ können Sie den Job auch für verschiedene Datensätze parallel ausführen, wenn dies der Fall ist.
Das zweite Problem ist die Erinnerung; Wenn Sie die Berechnung auf mehrere physische Computer verteilen möchten, gibt es kein kostenloses Mittagessen und Sie müssen die Daten kopieren. Hier müssen Sie überlegen, ob es sinnvoll ist, eine Kopie der Daten auf mehrere Computer zu verteilen, um etwas Kommunikation zu sparen. Wenn Sie jedoch mehrere Kerne auf einem Computer verwenden möchten, ist der Multicore besonders geeignet, da alle untergeordneten Prozesse auf den Speicher des übergeordneten Prozesses zugreifen können, sodass Sie Zeit und viel Speicherplatz sparen können.
quelle
sprint
für R mit einer Funktionpsvm
, aber sie sind etwas in Verzug, wenn es darum geht, mit den R 3.0-Änderungen und den neuen CRAN-Übermittlungsrichtlinien Schritt zu halten, sodass der aktuelle Download weder auf CRAN verfügbar noch vollständig mit R 3.0 kompatibel ist. Ihr Kilometerstand kann variieren.Die Antworten von Shane und Dirk sind genau richtig.
Trotzdem sollten Sie sich eine kommerzielle Version von R ansehen, Revolution R, die für den Umgang mit großen Datenmengen und für die Ausführung auf mehreren Kernen entwickelt wurde. Diese Software ist für Akademiker kostenlos (was vielleicht Ihr Fall ist, weiß ich nicht)
quelle