ÎncepețiÎncepe gratuit

Trecerea la parApply

Pentru a rula cod în paralel folosind pachetul parallel, fluxul de lucru de bază are trei pași.

  1. Creează un cluster cu makeCluster().
  2. Efectuează calculele dorite.
  3. Oprește clusterul cu stopCluster().

Cel mai simplu mod de a crea un cluster este să transmiți un număr către makeCluster(). Aceasta creează un cluster de tip implicit, care rulează codul pe atâtea nuclee câte ai specificat.

Obiectul dd este un data frame cu 10 coloane și 100 de rânduri. Codul de mai jos folosește apply() pentru a calcula medianele coloanelor:

apply(dd, 2, median)

Pentru a rula acest cod în paralel, înlocuiești apply() cu parApply(). Argumentele funcției sunt aceleași, cu excepția faptului că aceasta primește un argument de tip cluster înaintea argumentelor obișnuite ale apply().

Acest exercițiu face parte din cursul

Scrierea codului R eficient

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește funcția detectCores() pentru a afișa în consolă numărul de nuclee disponibile.
  • Creează un cluster cu makeCluster() și setează numărul de nuclee utilizate la 2. Salvează rezultatul în variabila cl.
  • Rescrie funcția apply() de mai sus folosind parApply(). Reține că primul argument trebuie să fie acum obiectul cluster, cl.
  • Oprește clusterul folosind stopCluster().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul