Ich versuche parallel (mit snow::parLapply
) einige Code, der auf einem Paket (dh ein anderes Paket als snow
) abhängt. Objekte, die in der von parLapply
aufgerufenen Funktion referenziert werden, müssen explizit an den Cluster übergeben werden, indem clusterExport
verwendet wird. Gibt es eine Möglichkeit, ein ganzes Paket an den Cluster zu übergeben, anstatt jede Funktion (einschließlich der internen Funktionen eines Pakets, die von Benutzerfunktionen aufgerufen werden) explizit in clusterExport
zu benennen?Ein ganzes Paket an einen Schnee-Cluster übergeben
5
A
Antwort
6
Installieren Sie das Paket auf allen Knoten und Ihre Coderuf haben library(thePackageYouUse)
auf allen Knoten über einen der verfügbaren Befehle, Ei so etwas wie
clusterApply(cl, library(thePackageYouUse))
Ich denke, die parallel
-Paket, das mit den jüngsten R Releases kommt, hat Beispiele - siehe zum Beispiel hier von help(clusterApply)
wo das boot
Paket überall geladen wird -:
## A bootstrapping example, which can be done in many ways:
clusterEvalQ(cl, {
## set up each worker. Could also use clusterExport()
library(boot)
cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
NULL
})
Verwandte Themen
- 1. Wie ein ganzes Ansichtsmodell zurück an die Steuerung zu übergeben
- 2. Ein ganzes Modell bei der Formularübergabe übergeben
- 3. ein ganzes Bündel an SharedPreferences
- 4. Wie sende ich ein ganzes xcode-Projekt an einen Client
- 5. Wie in WPF ein ganzes Objekt an ein Benutzersteuerelement binden?
- 6. Mercurial: Empfohlene Methode, ein ganzes Repository an jemanden zu senden
- 7. Kopieren Sie ein ganzes Verzeichnis
- 8. "Atomic" update ein ganzes Array
- 9. Wie übergeben Sie ein JSON-Objekt an einen MVC-Aktionsparameter?
- 10. Können Sie einen zusätzlichen Parameter an ein Prädikat übergeben?
- 11. Python, wie übergeben Sie ein Argument an einen Funktionszeigerparameter?
- 12. Wird ein großer Strukturzeiger an einen Funktionscache übergeben?
- 13. Wie ein Attribut an einen Controller-Konverter in Silex übergeben?
- 14. Übergeben Sie einen Variablenwert von einer IBAction an ein IBOutlet
- 15. Wie man einen Wordpress-Seitentitel an ein Wufoo-Javascript übergeben
- 16. Kann ich in DUnitX ein Set an einen Testfall übergeben?
- 17. Können Sie ein ganzes Objekt an einen CommandParameter in XAML binden?
- 18. s3cmd bekomme ein ganzes Verzeichnis
- 19. Schienen: Ein Argument an ein Anliegen übergeben
- 20. Einen $ scope Wert an eine Funktion übergeben
- 21. So übergeben Sie Daten an einen UITabBarController
- 22. Übergeben Sie einen Parameter an OWIN-Host
- 23. Übergeben von Datensätzen an einen Dialog
- 24. Zwei Objekte an einen TimerCallback übergeben
- 25. Parameter an einen Laufzeit-Ereignis-Listener übergeben?
- 26. Übergeben Sie NSInteger an einen TableView-Controller
- 27. GridSearchCV: Gewichte an einen Scorer übergeben
- 28. Android: AppWidgetId an einen Dienst übergeben
- 29. Assembly - Übergeben von Parametern an einen Funktionsaufruf
- 30. Übergeben einer Liste an einen Prozess tcl
Danke Dirk. Gibt es irgendwelche Gründe, warum 'clusterExport (ls())' gefährlich wäre? Dies würde nicht helfen, Funktionen von Paketen zu übergeben, aber es würde eine Menge Kopfzerbrechen bereiten, um for-Schleifen (jemand enses, nicht meins!) Schnell zu parallelisieren, die auf einer Tonne globaler Variablen beruhen. – Michael
Es ist nur schlechtes Design, dass es eine Scattershot plus Küchenspüle Ansatz verwendet. Entwerfen Sie, was Sie in einer seriellen Lösung benötigen, und machen Sie es parallel. –
Schön genug, danke für die Hilfe. – Michael