Kom igångKom igång gratis

Från apply till parApply

För att köra kod parallellt med paketet parallel följer du ett grundläggande arbetsflöde i tre steg.

  1. Skapa ett kluster med makeCluster().
  2. Utför beräkningarna.
  3. Stoppa klustret med stopCluster().

Det enklaste sättet att skapa ett kluster är att skicka ett tal till makeCluster(). Det skapar ett kluster av standardtyp som kör koden på det angivna antalet kärnor.

Objektet dd är en dataram med 10 kolumner och 100 rader. Följande kod använder apply() för att beräkna medianvärdet för varje kolumn:

apply(dd, 2, median)

För att köra detta parallellt byter du ut apply() mot parApply(). Argumenten är desamma, förutom att funktionen tar ett klusterargument före de vanliga apply()-argumenten.

Den här övningen är en del av kursen

Effektiv R-kod

Visa kurs

Övningsinstruktioner

  • Använd funktionen detectCores() för att skriva ut antalet tillgängliga kärnor i konsolen.
  • Skapa ett kluster med makeCluster() och sätt antalet kärnor till 2. Spara resultatet som cl.
  • Skriv om apply()-funktionen ovan till parApply(). Kom ihåg att det första argumentet nu ska vara klusterobjektet cl.
  • Stoppa klustret med stopCluster().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod