W ciągu ostatnich kilku lat pojawiło się w Internecie kilka artykułów na temat budowy klastra komputerów w domu - tutaj na przykład.
Pi wydaje mi się dobrą platformą do budowania / testowania tego rodzaju rzeczy ze względu na ich niski koszt; czy „ogólne” przewodniki, takie jak ten, powinny dość łatwo przenieść się na Pi, czy też jest coś, o czym powinienem wiedzieć, podejmując próbę takiego projektu?
Odpowiedzi:
Sugeruję, aby spojrzeć na Dispy - moduł Pythona do rozproszonych obliczeń.
Aby uruchomić program na wielu Raspberry Pi (węzłach) z komputera (serwer - załóż, że IP
192.168.0.100
):Zainstaluj system operacyjny na każdym RasPi
Podłącz każdy RasPi do swojej sieci. Znajdź adres IP (jeśli jest dynamiczny) lub skonfiguruj statyczne adresy IP.
(Załóżmy, że masz trzy węzły, a ich adresy IP to
192.168.0.50-52
)Skonfiguruj Python (jeśli jeszcze nie), zainstaluj
dispy
, a następnie uruchomdispynode.py -i 192.168.0.100
na każdym RasPi. Dzięki temu dispynode będzie otrzymywać informacje o zadaniach z serwera.Na komputerze (serwerze) zainstaluj
dispy
, a następnie uruchom następujący kod python:Możesz również zastąpić
/some/program
funkcją python - npcompute
.Możesz także dodać zależności, takie jak obiekty Pythona, moduły i pliki (które
dispy
będą przesyłane do każdego węzła) poprzez dodaniedepends=[ClassA, moduleB, 'file1']
źródło
Powinieneś zdawać sobie sprawę z pracy, która już została wykonana - istnieje nawet nazwa klastra RasPi boxen. Embedded Linux Wiki mówi Bramble jest definiowany jako „ klaster Beowulf urządzeń Raspberry Pi”. Raspberry Pi Homebrew posiada szereg stanowisk o Brambles i zobaczyć również Foundation własne forum „s.
źródło
Niektórzy faceci z Southampton Uni stworzyli klaster i napisali szczegółowy przegląd swojej pracy na stronie http://www.southampton.ac.uk/~sjc/raspberrypi/ .
źródło
Jest to całkowicie możliwe, ale największym problemem jest osiągalność. Jest to pomysł, który moim zdaniem byłby nie tylko wykonalny, ale przydatny, ponieważ można by go zastosować w koncepcji przenośnego przetwarzania równoległego. Jeśli chodzi o specyfikę, najlepiej sprawdzą się języki kodowania, takie jak FORTRAN i C ++.
Zajrzyj na beowulf.org, aby uzyskać więcej informacji o przetwarzaniu klastrowym
źródło
To jest odpowiedź na powyższy post Guido Garcii dotyczący „dysputy” - nie mogę wymyślić, jak odpowiedzieć na jego post.
Gdy program („/ bin / ls”) jest dystrybuowany z funkcją „dispy” do równoległego wykonywania, wówczas ten program na komputerze klienckim jest przesyłany do każdego z węzłów (do „/ tmp”). Dzieje się tak, aby program opracowany przez użytkownika na komputerze klienckim był przesyłany bez posiadania NFS lub wspólnego katalogu. Działa to z programami binarnymi tylko wtedy, gdy węzły i architektury klienta są kompatybilne. W twoim przypadku zgaduję, że architektura klienta różni się od architektury zdalnych węzłów i węzeł nie może wykonać binarnego pliku „/ bin / ls” przesłanego z klienta. Jeśli chcesz uruchomić / bin / ls na każdym węźle, łatwiej jest napisać funkcję lub program w języku Python, aby wydrukować katalog (np. Używając os.listdir) i rozpowszechnić go zamiast binarnego pliku wykonywalnego.
źródło
Istnieje również http://pi.interworx.com, jeśli chcesz mieć w pełni wyposażony panel sterowania. Na tej stronie znajdują się instrukcje dotyczące replikacji, ale musisz uzbroić się w cierpliwość, ponieważ ta subdomena działa z klastra Rasberry Pi. Oto zdjęcie na wypadek, gdyby się zepsuło:
http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1
źródło