Mikrobenchmark przychodów
Pracujesz jako analityk danych w sklepie internetowym. Pobrałeś dane sprzedażowe różnych produktów sprzedanych w ciągu miesiąca. Są one dostępne w twoim środowisku jako lista ls_sales. Każdy element tej listy to wektor przychodów dla danego produktu.
Chcesz zobaczyć, jak przychody rosły z dnia na dzień – oznacza to obliczenie sumy skumulowanej. Bazowy R udostępnia do tego funkcję cumsum(). Chcesz jednak sprawdzić, czy zrównoleglenie może tu pomóc. Zamierzasz zastosować cumsum() do każdego elementu ls_sales sekwencyjnie i równolegle, a następnie porównać wyniki. Pakiety parallel i microbenchmark są już wczytane.
To ćwiczenie jest częścią kursu
Programowanie równoległe w R
Instrukcje do ćwiczenia
- Przekaż sekwencyjną i równoległą wersję jako argumenty do wywołania
microbenchmark(). - Utwórz klaster wykorzystujący wszystkie dostępne rdzenie minus dwa.
- Użyj klastra, aby zastosować
cumsum()dols_salesrównolegle za pomocąparLapply(). - Zatrzymaj klaster po zakończeniu obliczeń.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Pass the code to microbenchmark
___
"lapply" = lapply(ls_sales, cumsum),
"parLapply" = {
# Make a cluster of all cores minus two
cluster <- ___
# Use cluster to apply in parallel
parLapply(cluster, ___, ___)
# Stop cluster
___
},
times = 3
___