1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Efektivní kód v R

Connected

cvičení

Měření času parSapply()

Spouštění kostkové hry je embarrassingly parallel problém. Takovéto simulace obvykle (ale ne vždy) přináší dobré zrychlení. Stejně jako dříve můžeme použít microbenchmark() nebo system.time(). Pro jednoduchost použijeme v tomto cvičení system.time().

Pokyny

100 XP

Funkce play() je již definována ve tvém prostředí. Budeme předpokládat, že chceme odehrát sto tisíc her.

  • Nastav no_of_games na 1e5.
  • Pomocí system.time() změř dobu, po kterou se play() opakovaně volá sériově.
    • Zavolej sapply() s argumenty 1:no_of_games a obalovací funkcí play().
    • Výsledek přiřaď do proměnné serial.
    • Celé volání obal do system.time(), aby se změřil čas.
  • Vytvoř cluster objekt se 4 jádry a exportuj do něj funkci play().
  • Pomocí system.time() změř dobu, po kterou se play() opakovaně volá paralelně.
    • Uprav kód, který jsi použil/a pro vytvoření serial, tak aby běžel paralelně.