logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Klaster obliczeniowy złożony z komputerów Raspberry Pi.

ghost666 28 Sie 2013 10:12 15942 8
  • Klaster obliczeniowy złożony z komputerów Raspberry Pi. Raspberry Pi to niedrogi komputer jednopłytkowy, wielkości, mniej-więcej, karty kredytowej. Komputer ten jest w stanie uruchomić na sobie Linuxa lub inny lekki system operacyjny. Procesor w który go wyposażono jest podobny do tych, które znajdują się w nowoczesnych telefonach komórkowych i smartfonach. Raspberry Pi może zostać podłączony do monitora i wyposażony w klawiaturę, co pozwala używać go do podobnych zadań jak zwykły komputer osobisty. Rozwinięty i zaprojektowany został jako tanie rozwiązanie do podstawowych czynności do których potrzebny jest komputer. Dzięki temu miał on umożliwić dostęp do komputera większej liczbie osób. Jednakże Joshua Kiepert z Uniwersytetu Boise State znalazł dla niego inne rozwiązanie w swoim projekcie, realizowanym na wydziale inżynierii komputerowej i elektrycznej.

    Kiepert rozpoczął pracę z Raspberry Pi (RPi) wiosną tego roku, jako odpowiedź na problem który napotkał podczas prac związanych z swoim doktoratem. Problem związany był z dzieleniem danych w sieci bezprzewodowych sensorów. Podczas analizy projektu i projektowania nowocześniejszego systemu współdzielenia danych Kiepert doszedł do wniosku iż najlepszym testem dla zaproponowanego systemu będzie przeprowadzenie symulacji. Do tego celu wybrał klaster typu Beowulf. Klaster Beowulf to grupa, zazwyczaj identycznych, komputerów połączonych w jedną sieć w celu współdzielenia się prostymi zadaniami obliczeniowymi, będącymi fragmentami złożonego problemu. (Nazwa Beowulf została nadana prawie 20 lat temu przez inżynierów NASA jednemu z szczególnie potężnych komputerów). Na Uniwersytecie Boise State klaster tego typu egzystuje w ramach tak zwanego "MetaGeek Lab", zwanego czasami Onyx Lab, które to prowadzone jest przez wydział Informatyki. Klaster Onyx składa się aktualnie z 32 procesorów - jednostek, każda wyposażona w procesor Intela taktowany z prędkością 3,1 GHz, wyposażony w 8 GB pamięci RAM. Takie parametry pozwalają na efektywne prowadzenie równoległych obliczeń nawet relatywnie skomplikowanych procesów.

    Jednakże Kiepert nie był w pełni usatysfakcjonowany koniecznością polegania na Onyx Lab. Dodatkowo, drugim problemem była dostępność klastra. Co jeżeli w połowie wykonywania projektu klaster zostanie, z jakichś przyczyn, odłączony? Nic w obrębie uczelni nie mogło go zastąpić, jeśli tak by się stało. Gdyby Onyx został odłączony to szanse na realizację projektu Kieperta znacznie by się zmniejszyła. Po jednym z takich wypadków, gdy klaster został tymczasowo odłączony od sieci, Kiepert doszedł do wniosku iż potrzebnym jest skonstruowanie własnego klastra, co pozwoli mu być niezależnym i zapewni możliwość prowadzenia obliczeń i dalszych badań w sposób niezależny. Co więcej posiadanie własnego klastra pozwala na instalowanie własnego oprogramowania bez problemów. Podczas korzystania z klastra Onyx gdy chciał doinstalować jakikolwiek dodatkowy program konieczna była ścisłą zgoda administratora systemu. Jakkolwiek admin ten to osoba chętnie wspierająca projekty badawcze studentów, to rozwiązanie z własnym klastrem pozwoli oszczędzić dużo czasu.

    Do pomocy w realizacji tego projektu przystąpiło jeszcze trzech kolegów Kieperta - Michael Pook, Vikram Parel i Corey Warner. W laboratorium integracji systemów Kiepert zamierzał stworzyć swój własny klaster w oparciu o komputery Raspberry Pi. Nie tylko możliwości sterowania sprzętu przez Raspberry Pi okazały się bardzo użyteczne w realizacji projektu. Już od razu widoczne było to że koszty będą znacznie niższe niż wykorzystanie jakichkolwiek innych komputerów. Pojedynczy Raspberry Pi z kartą SD o pojemności 8 GB to koszt 45 dolarów. Czyni to z RPi na prawdę konkurencyjne rozwiązanie, jeśli chodzi o stworzenie klastra wyposażonego w 32 procesory. Dla porównania w klastrze Onyx pojedynczy komputer to koszt około $1000 do $1500. Zatem cały klaster stworzony przez Kieperta kosztował mniej więcej tyle ile kosztuje pojedynczy komputer w klastrze opartym o komputery PC.

    Pomimo oczywistych zalet podejście Kieperta nie jest idealne do każdej aplikacji. Podstawową wadą klastra opartego o RPi jest wydajność. Pojedynczy komputer Raspberry Pi nie zbliża się nawet swoją wydajnością do typowego komputera osobistego. Z uwagi na swoją ograniczoną wydajność stworzony klaster ma problem z obsługą wielu równoległych użytkowników, pracujących naraz. Mimo to Kiepert uważa swój klaster za bardzo udany projekt. Tak bardzo udany że do obliczeń do swojej pracy doktorskiej używa tylko i wyłącznie jego. Jego osiągi idealnie odpowiadają potrzebom jego symulacji, a sam klaster zawsze jest wolny i pod ręką i, co bardzo istotne, można go dowolnie rekonfigurować.

    Dodatkowy, szerszy opis projektu znajduje się w pliku PDF - http://coen.boisestate.edu/ece/files/2013/05/...g.a.Raspberry.Pi-Based.Beowulf.Cluster_v2.pdf
    Źródła:
    http://coen.boisestate.edu/ece/raspberry-pi/

    Fajne? Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    https://twitter.com/Moonstreet_Labs
    ghost666 napisał 11960 postów o ocenie 10197, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2 12678783
    rarvolt
    Poziom 10  
    ODROID-U2 przy 2x wyższej cenie jest 2x mniejszy, ma 4x więcej RAM, ponad 2x szybszy procesor no i używa eMMC do przechowywania danych, które jest 2x szybsze od karty SD klasy 10

    Dla mnie wybór jest oczywisty.
  • #3 12696514
    ~ReverseEsper
    Poziom 15  
    Rarvolt : owszem parametry ODROID-U2 są bezprzecznie lepsze. ALle to chyba nie o to chodziło autorowi projektu. Na ile dobrze zrozumiałem potrzebował klastra dużej ilości maszyn, a nie dużej wydajności. Czyli liczyło się możliwie jak najtańsze rozwiązanie zakupu wielu małych jednostek do obserwowania ich interakcji.

    Wielokrotnie wspominano na forach raspi, że klastry na raspi są robione głównie do nauki bo do wydajności jest wiele dużo lepszych rozwiązań.
  • #4 12696936
    Urgon
    Poziom 38  
    AVE...

    Może na FPGA takie eksperymenty robić? Albo na STM32 czy LPC17 na przykład? Raspberry nie jest ani najtańsze, ni najłatwiej dostępne...
  • #5 12697128
    ghost666
    Tłumacz Redaktor
    W przypadku FPGA czy uC dochodzi jeszcze konieczność zaprogramownia czegoś na układzie. Wiem że można postawić Linuxa na takim mikrokontrolerze, ale wtedy to już jest konstruowanie własnego RPi.
  • #6 12697160
    Urgon
    Poziom 38  
    AVE...

    Jeśli potrzebujesz klastra obliczeniowego, to najpewniej już umiesz programować, więc napisanie specjalizowanego programu na mikrokontroler lub stworzenie projektu układu liczącego na FPGA nie powinny stanowić problemu. Zresztą bez umiejętności programistycznych nie da się takiego klastra wykorzystać do czegokolwiek, czego nie zrobi arkusz kalkulacyjny...

    Widziałem maszynkę COPACOBANA na 120 układach FPGA, która to łamie szyfr DES w średnio 9 dni, i to mimo 128-bitowego klucza. Metodą bruteforce. Ciekawe, jak wolne by to było na RPi...
  • #7 12704738
    michal.bedzin
    Poziom 15  
    Z FPGA jest głównie ten problem że do każdego problemu, trzeba napisać indywidualny core - accelerator. Ewentualnie można pomyśleć nad rozwiązaniem w FPGA poprzez stworzenie bazy bitfile'i dla FPGA stworzonych jako partial configuration i kolenie podmieniać core'y w układzie. Ciekawym pomysłem w sumie byłoby stworzenie klastra z układów Parallela. 64 rdzeniowe układy w klastrze. W sumie niezłą moc by to chyba miało, a jednak embedded
  • #8 12704745
    ghost666
    Tłumacz Redaktor
    michal.bedzin napisał:
    Z FPGA jest głównie ten problem że do każdego problemu, trzeba napisać indywidualny core - accelerator. Ewentualnie można pomyśleć nad rozwiązaniem w FPGA poprzez stworzenie bazy bitfile'i dla FPGA stworzonych jako partial configuration i kolenie podmieniać core'y w układzie. Ciekawym pomysłem w sumie byłoby stworzenie klastra z układów Parallela. 64 rdzeniowe układy w klastrze. W sumie niezłą moc by to chyba miało, a jednak embedded


    A czemu nie można zaimplementować dostępnych IP Core? Tym sposobem nawet na jednym FPGA można je zrównoleglić.
  • #9 12704816
    michal.bedzin
    Poziom 15  
    Można, tylko wtedy raczej nie można mówić o klastrze tylko implementacji wielordzeniowej SoC.
    Aktualnie robię trochę podobną sprawę na układach ZYNQ i to mogłoby być ciekawe rozwiązanie dla klastrów. Każdy układ posiada w sobie 2-rdzeniowego ARM A9 i jeszcze FPGA (działa najlepiej jako akcelerator obliczeń, ew. sterowane pod kontrolą ARMa). Każdy klaster pomimo możliwej mocy obliczeniowej z ARMów mógłby być dedykowany do konkretnych obliczeń za pomocą FPGA. Wtedy moglibyśmy otrzymać paralelizm dedykowany. :D
REKLAMA