LoslegenKostenlos starten

Wechsel zu parApply

Um Code mit dem Paket parallel parallel auszuführen, besteht der grundlegende Ablauf aus drei Schritten.

  1. Erzeuge einen Cluster mit makeCluster().
  2. Führe die Berechnung aus.
  3. 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>
Kurs ansehen

Ü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 als cl.
  • Schreibe die oben gezeigte apply()-Funktion als parApply() um. Denk daran: Das erste Argument ist jetzt das Clusterobjekt cl.
  • 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)
Code bearbeiten und ausführen