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.
- Skapa ett kluster med
makeCluster(). - Utför beräkningarna.
- 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
Ö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 somcl. - Skriv om
apply()-funktionen ovan tillparApply(). Kom ihåg att det första argumentet nu ska vara klusterobjektetcl. - 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)