Przejście na parApply
Aby uruchamiać kod równolegle za pomocą pakietu parallel, podstawowy przepływ pracy składa się z trzech kroków.
- Utwórz klaster przy użyciu
makeCluster(). - Wykonaj obliczenia.
- Zatrzymaj klaster przy użyciu
stopCluster().
Najprostszy sposób na utworzenie klastra to przekazanie liczby do makeCluster(). Tworzy to klaster domyślnego typu, uruchamiający kod na tylu rdzeniach, ile podasz.
Obiekt dd to ramka danych z 10 kolumnami i 100 wierszami. Poniższy kod używa apply() do obliczenia median kolumn:
apply(dd, 2, median)
Aby uruchomić to równolegle, zamień apply() na parApply(). Argumenty tej funkcji są takie same, z tą różnicą, że jako pierwszy przyjmuje ona argument klastra – przed standardowymi argumentami apply().
To ćwiczenie jest częścią kursu
Wydajny kod w R
Instrukcje do ćwiczenia
- Użyj funkcji
detectCores(), aby wyświetlić w konsoli liczbę dostępnych rdzeni. - Utwórz klaster przy użyciu
makeCluster(); ustaw liczbę rdzeni na 2. Zapisz wynik jakocl. - Przepisz powyższą funkcję
apply()jakoparApply(). Pamiętaj, że pierwszym argumentem powinien być teraz obiekt klastra,cl. - Zatrzymaj klaster przy użyciu
stopCluster().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)