Kom igångKom igång gratis

Microbenchmark av intäkter

Du arbetar som dataanalytiker hos en näthandlare. Du har hämtat försäljningsdata för olika produkter som sålts under en månad. Datan finns tillgänglig i din arbetsmiljö som en lista, ls_sales. Varje element i listan är en vektor med intäkter för en given produkt.

Du vill se hur intäkterna växte dag för dag, vilket innebär att du behöver beräkna en kumulativ summa. I bas-R finns funktionen cumsum() för detta ändamål. Nu vill du undersöka om parallellisering kan hjälpa. Du ska tillämpa cumsum() på varje element i ls_sales sekventiellt och parallellt och jämföra resultaten. Paketen parallel och microbenchmark har redan laddats in åt dig.

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

Parallell programmering i R

Visa kurs

Övningsinstruktioner

  • Skicka den sekventiella och den parallella versionen som argument till ett anrop till microbenchmark().
  • Skapa ett kluster med alla tillgängliga kärnor minus två.
  • Använd klustret för att tillämpa cumsum()ls_sales parallellt med hjälp av parLapply().
  • Stoppa klustret när beräkningen är klar.

Interaktiv övning med praktiskt arbete

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

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