Wechsel zu parApply
Um Code mit dem Paket parallel parallel auszuführen, besteht der grundlegende Ablauf aus drei Schritten.
- Erzeuge einen Cluster mit
makeCluster(). - Führe die Berechnung aus.
- Stoppe den Cluster mit
stopCluster().
Am einfachsten erstellst du einen Cluster, indem du eine Zahl an makeCluster() übergibst. Dadurch wird ein Cluster des Standardtyps erzeugt, der den Code auf entsprechend vielen Kernen ausführt.
Das Objekt dd ist ein Data Frame mit 10 Spalten und 100 Zeilen. Der folgende Code berechnet die Spaltenmediane mit apply():
apply(dd, 2, median)
Um das parallel auszuführen, ersetzt du apply() durch parApply(). Die Argumente dieser Funktion sind dieselben, mit der Ausnahme, dass ein Cluster-Argument vor die üblichen apply()-Argumente gesetzt wird.
Diese Übung ist Teil des Kurses
<Kurs>Effizient R-Code schreiben</Kurs>Übungsanweisungen
- Verwende die Funktion
detectCores(), um die Anzahl der verfügbaren Kerne in der Konsole auszugeben. - Erstelle einen Cluster mit
makeCluster(); setze die Anzahl der verwendeten Kerne auf 2. Speichere das Ergebnis alscl. - Schreibe die oben gezeigte
apply()-Funktion alsparApply()um. Denk daran: Das erste Argument ist jetzt das Clusterobjektcl. - Stoppe den Cluster mit
stopCluster().
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Determine the number of available cores
___
# Create a cluster via makeCluster
cl <- makeCluster(___)
# Parallelize this code
apply(dd, 2, median)
# Stop the cluster
stopCluster(cl)