Joshua Kiepert, pracując kilka miesięcy nad swoją rozprawą badawczą PhD, potrzebował odpowiedniego sprzętu do obliczeń. Zajmował się opracowaniem nowatorskiego systemu udostępniania danych dla bezprzewodowych czujników sieciowych, w celu ułatwienia przetwarzania danych z czujników wewnątrz sieci. Na początku myślał o zbudowaniu konkretnego urządzenia wbudowanego, jednakże w międzyczasie rozpoczął projektowanie symulacji rozproszonej, gdzie każdy węzeł symulacji mógłby być, jak węzeł bezprzewodowego czujnika (wraz z ograniczeniami łączności), oraz współpracować z innymi węzłami w tej samej sieci.
Joshua postawił zatem na klaster typu Beowulf, który to jest superkomputerem, złożonym z wielu pomniejszych jednostek obliczeniowych, na których uruchomione są obliczenia rozproszone, a dane dzielone są pomiędzy każdy komputer. Typowym oprogramowaniem do programowania rozproszonego jest MPI (Message Passing Interface), które zawiera stros TCP/IP i kilka bibliotek, aby móc bezproblemowo rozdzielić zadanie na kilka równoległych części.
Pierwszym kandydatem okazał się klaster Onyx, zbudowany z 32 nodów, każdy mający czterordzeniowy procesor Intel Xeon E3-1225 o taktowaniu 3.1 GHz i 8 GB pamięci RAM. Szybko jednak porzucono owego kandydata z powodu możliwej awaryjności, a także generowanych kosztów rachunków za prąd, oraz kosztu pojedynczego węzła – między 1000 a 1500 dolarów.
Postanowiono, że zostanie wykorzystane Raspberry Pi Model B. Po pierwsze RPiCluster stanowi kolejną alternatywę dla dalszego rozwoju projektów, które wymagają MPI lub Java w środowisku klastrowym. Po drugie RPi zapewnia szereg unikalny niskopoziomowych interfejsów, jak: I2C, SPI, UART i GPIO, które są przydatne przy testowaniu wbudowanego sprzętu na dużą skalę. Po trzecie, mam pełną kontrolę nad sposobem dostępu do moje klastra. A na koniec, Raspberry Pi jest tanie, a dokładniej koszt Raspberry Pi Model B oraz 8 GB karty SD to zaledwie 45 dolarów.
Ale są też wady RPi: słabszy procesor, konieczność kompilacji programu MPI pod ARMv6, jeden użytkownik zalogowany w danym czasie, konieczność stworzenia systemu przydzielania zasobów, jeżeli zajdzie taka konieczność.
Gotowy system zawiera 32 węzły RPi, 48 portowy przełącznik sieciowy, system Arch Linux ARM oraz MPICH3.
Jako systemu operacyjnego użyto Arch Linux ARM ze względu na jego mały rozmiar, dużą szybkość oraz łatwość dostosowania do własnych potrzeb. Wszelkie operacje przygotowania obrazów dla poszczególnych nodów robiono na laptopie z procesorem Core i7, przy użyciu QEMU oraz poradników Raspberry Pi under QEMU, Raspberry Pi with Archlinux under QEMU.
Po przygotowaniu obrazów zrobiono szafę rackową oraz odpowiednie mocowania, na których znajdowały się płytki. Do zasilania użyto specjalnie zaprojektowanej płytki PCB, która była wpięta w porty GPIO.
Super artykuł :) to kto robi własny klaster? :D
ja
Najważniejsze, żeby wszystko było ładnie podświetlone diodami, reszta to szczegół ;)