2013-07-09 9 views
7

Mam serwer Windows HPC działający z niektórymi węzłami w zapleczu. Chciałbym uruchomić Parallel R przy użyciu wielu węzłów z zaplecza. Myślę, że Parallel R może używać SNOW na Windowsie, ale nie jest tego zbyt pewny. Moje pytanie brzmi, czy muszę zainstalować R również na węzłach backend? że chcę korzystać z dwóch węzłów, 32 rdzeni na węźle:Równoległa R w klastrze systemu Windows

cl <- makeCluster(c(rep("COMP01",32),rep("COMP02",32)),type="SOCK") 

Teraz to po prostu wisi.

Co jeszcze muszę zrobić? Czy węzły zaplecza potrzebują jakiegoś sshd, aby móc się komunikować?

+1

Tak, musisz zainstalować R na każdym węźle. –

+1

@HongOoi i czy muszę podać lokalizację R lub po prostu domyślną? – Manolete

Odpowiedz

7

Konfigurowanie snow w klastrze systemu Windows jest dość trudne. Każda z maszyn musi mieć zainstalowane R i snow, ale to łatwa część. Aby uruchomić klaster SOCK, potrzebowałbyś demona sshd działającego na każdym komputerze pracującym, ale nadal możesz napotkać problemy, więc nie polecałbym go, chyba że jesteś dobry w debugowaniu i administrowaniu systemem Windows.

Myślę, że najlepszą opcją w klastrze Windows jest użycie MPI. Nie mam żadnego doświadczenia z MPI na Windowsie, ale słyszałem o ludziach, którzy osiągnęli sukces dzięki dystrybucjom MPICH i DeinoMPI MPI dla Windows. Po zainstalowaniu MPI w klastrze, należy również zainstalować pakiet Rmpi ze źródła na każdym komputerze roboczym. Następnie należy utworzyć obiekt klastra za pomocą funkcji makeMPIcluster. To dużo pracy, ale wydaje mi się, że jest bardziej prawdopodobne, że w końcu zadziała niż próba użycia klastra SOCK ze względu na problemy z ssh/sshd w systemie Windows.

Jeśli rozpaczliwie chcesz uruchomić pracę równoległą raz lub dwa razy w klastrze systemu Windows, możesz spróbować użyć trybu ręcznego. To pozwala na tworzenie klastra SOCK bez ssh:

workers <- c(rep("COMP01",32), rep("COMP02",32)) 
cl <- makeSOCKluster(workers, manual=TRUE) 

Funkcja makeSOCKcluster poprosi, aby rozpocząć każdy z pracowników, wyświetlając polecenia użyć dla każdego. Musisz ręcznie otworzyć okno poleceń na określonym komputerze i wykonać określone polecenie. Może to być bardzo uciążliwe, szczególnie w przypadku wielu pracowników, ale przynajmniej nie jest skomplikowane ani trudne. Może być również bardzo przydatny do debugowania w połączeniu z opcją outfile=''.

+0

@_Steve Weston: Dzięki za pomoc Steve. Kiedy mówisz "tryb ręczny", aby uruchomić pracę równoległą, co masz na myśli? – Manolete

+0

@Manolete Dodałem więcej informacji o trybie ręcznym, aby odpowiedzieć na twoje pytanie. –

+0

+1 pierwsze dwa akapity są niezwykle przydatne. Dlaczego nie ma przewodnika/dokumentów, które by to tłumaczyły? – TMS

Powiązane problemy