2010-04-12 14 views
5

Mam zagnieżdżoną pętlę, do której używam foreach, DoSNOW i klaster SNOW do rozwiązania. Jak mam profilować kod, aby upewnić się, że nie robię czegoś rażąco nieefektywnego?Jak profilować kod R z kodem SNOW

Czy istnieje również sposób pomiaru przepływów danych między modułem głównym a węzłami w klastrze Snow?

Dzięki,

James

Odpowiedz

2

To jest doskonałe pytanie. Z góry głowę, zacznij od porównania

  • roztwór seryjny (bez śniegu),
  • seryjny rozwiązanie ze śniegiem (aby zorientować się, narzut) i
  • rozwiązanie równoległego może kontrolowanie N, aby zobaczyć, jaki wzrost dostaniesz.

Wersja CRAN, która nigdy nie została wydana na wersję 0.3.4 z snow, ma również dodatkowe polecenia do drukowania, które są przydatne do analizy. Możesz go uzyskać od this directory at Luke Tierney's site.

Rzeczywiste profilowanie to oczywiście twardy ze względu na rozproszony charakter.

+0

Cześć, dziękuję za cynk. Próbowałem kontrolowania wzrostu dla N i otrzymałem dość liniowy wzrost (ponieważ problem, nad którym pracuję, jest w zasadzie problemem z resamplingiem, a więc dość paralelnym). Czy istnieje sposób pomiaru przepływu danych między węzłami? Mam wrażenie, że to wąskie gardło. –

+0

Nie z R, obawiam się, ale mógłbym czegoś nie zauważyć. Możesz wypróbować standardowe narzędzia sieciowe. –