Vytvárame systém nasadenia aplikácií pomocou Docker. Paralelné výpočty na raspberry pi Koncept klastrových a klastrových výpočtov

Raspberry Pi 3 možno nazvať skutočne univerzálnym počítačom. Bitcoin sa na ňom samozrejme ťažiť nedá a nebude možné hrať hry s grafikou najnovších generácií konzol, no s mnohými inými si dobre poradí. Nižšie budú uvedené hlavné a najobľúbenejšie aplikácie Raspberry Pi 3.

Multimediálne funkcie Raspberry Pi 3

Multimediálne možnosti Raspberry Pi 3 sú veľmi vysoké. Najmä na základe "Maliny" môžete vytvoriť multimediálne centrum, hernú konzolu alebo dokonca všetko naraz. Výsledkom je, že s touto jednou doskou máte na svojom televízore s portom HDMI prístup k nasledujúcim kategóriám zábavy:

  • video vo vysokom rozlíšení na YouTube alebo iných hostiteľských stránkach;
  • hudba v streamovacích službách;
  • hra sa streamuje napríklad na Twitchi;
  • hry vyvinuté pre staré konzoly: NES, SNES, SEGA atď.

Na prezeranie a počúvanie multimediálneho obsahu môžete použiť prehliadač alebo, čo je ešte pohodlnejšie, nainštalovať špeciálny prehrávač médií. Najfunkčnejší a najpohodlnejší z nich je Kodi.

Ak chcete zmeniť Raspberry na hernú konzolu, musíte na ňu umiestniť emulátory platforiem, ktoré vás zaujímajú, a objednať si hru Roms. Toto je hotové za pár desiatok minút. A ešte jednoduchšie a pohodlnejšie je nainštalovať špeciálnu distribučnú súpravu, napríklad Retro Pie alebo inú.

Vývoj a práca s dokumentmi na RPi

Samozrejme, Raspberry nie je najvýkonnejší počítač, čo znamená, že nie je najlepším riešením pre prácu. Ale ak chcete, môžete si viac či menej pohodlne prezerať / upravovať dokument alebo dokonca naň napísať skript. Samozrejme, že to nebude fungovať s ťažkými IDE, ale nikto to od RPi nevyžaduje.

S pomocou RPi3 môžete tiež „surfovať“ na internete alebo chatovať v instant messengeroch alebo sociálnych sieťach.

Server pre každú potrebu od Raspberry Pi 3

Ďalšou možnosťou, ako môžete použiť Raspberry Pi 3, je vytvoriť z neho server. Stačí teda nainštalovať LAMP alebo len Apache a Myphpadmin, po ktorých bude možné vyvíjať a testovať webové projekty v podmienkach pomerne obmedzených zdrojov.

Druhou možnosťou je stiahnuť a distribuovať z torrentu Raspberry Pi 3. K tomu budete samozrejme potrebovať externý pevný disk, keďže pamäťové karty a flash disky nie sú na tieto účely príliš vhodné, a to ako z dôvodu obmedzení rýchlosti a malého objemu, tak aj z dôvodu rýchleho opotrebovania pri veľkom zaťažení.

Aplikácia Maliny v robotike a IoT

V IoT a robotike je využitie RPi takmer neobmedzené. Z tohto zariadenia si môžete vyrobiť napríklad sledovaciu kameru, malú meteostanicu, auto na diaľkové ovládanie a mnoho ďalšieho. Raspberry Pi 3 teda nájde uplatnenie v aute vo forme DVR. Na želanie je možné z tohto platcu vyrobiť aj mobilný telefón alebo smartfón. Ale oplatí sa to urobiť buď kvôli experimentovaniu, alebo kvôli predvádzaniu sa priateľom / komunite. Faktom je, že zodpovedajúce zariadenie sa ukáže byť prinajmenšom dosť ťažkopádne.

Na tieto účely budú samozrejme potrebné moduly. Ale s ich nákupom by problémy nemali vzniknúť. Na webe je veľa obchodov, ktoré predávajú ďalšie komponenty pre Raspberry za prijateľné ceny.

Klastrovanie viacerých RPi 3s

Ďalším spôsobom využitia Raspberry Pi 3 je zoskupenie niekoľkých týchto zariadení. Ide o pomerne špecifický spôsob použitia, ktorý nie je vhodný pre každého.

Na začiatok treba stručne a zrozumiteľne vysvetliť, čo je klaster. Vo všeobecnosti tento pojem označuje komplex homogénnych zariadení (v tomto prípade súbor RPi), na ktorom sa paralelne vykonáva určitá úloha.

Vytváranie klastra z Raspberry na implementáciu niečoho nemá praktický zmysel, pretože existujú lacnejšie a pohodlnejšie riešenia. Zoskupenie vášho Raspberry Pi 3 je najlepšie na učenie. S niekoľkými jednoduchými počítačmi môžete pochopiť vlastnosti paralelných výpočtov alebo ukázať dieťaťu, ako fungujú (v skutočnosti bol RPi vytvorený na výučbu detí).

Ako vidíte, s RPi 3 sa dá robiť veľa zaujímavých vecí. Je to užitočné predovšetkým pre štúdium počítačov. Ale tiež umožňuje realizovať veľmi veľké množstvo projektov, ktoré sa dajú využiť na prácu alebo voľný čas.

Jedným z populárnych spôsobov použitia počítačov Raspberry Pi je vytváranie klastrov. Malinové koláče sú malé a lacné, takže je jednoduchšie ich použiť na vytvorenie klastra, ako by to bolo v prípade počítačov. Zhluk Raspberry koláčov by musel byť dosť veľký, aby mohol konkurovať jedinému počítaču; pravdepodobne by ste potrebovali asi 20 Koláče na vytvorenie klastra s takým výpočtovým výkonom ako PC. Hoci klaster Pi nemusí byť taký výkonný, je to skvelá príležitosť dozvedieť sa viac o distribuovaných výpočtoch.

Existuje niekoľko rôznych typov distribuovaných počítačov, ktoré možno použiť na rôzne účely. Existujú super počítače, ktoré sa používajú na riešenie matematických problémov, ako je modelovanie poveternostných podmienok alebo simulácia chemických reakcií. Tieto systémy často používajú Message Passing Interface (MPI). Tím z University of Southampton postavil 64-uzlový superpočítač založený na MPI. Tento systém sa používa na výučbu študentov o superpočítaní.

Ďalšou technológiou, ktorá sa často používa v distribuovaných výpočtoch, je Hadoop, ktorá distribuuje údaje medzi mnohými uzlami. Hadoop sa často používa na spracovanie veľkých súborov údajov a dolovanie údajov. Inžinier v spoločnosti Nvidia vytvoril malý klaster Hadoop pomocou Raspberry Pies. Svoj klaster používa na experimentujte a testujte nápady pred ich nasadením na výkonnejšie systémy.

Použitie klastra Raspberry Pi ako webového servera

Klastre môžu byť použité ako webové servery. Mnoho webových stránok má príliš veľkú návštevnosť na to, aby mohli bežať na jednom serveri, takže je potrebné použiť niekoľko serverov. Požiadavky z webových prehliadačov prijíma uzol nazývaný load balancer, ktorý posiela požiadavky na pracovné servery. Nástroj na vyrovnávanie zaťaženia potom odošle odpovede zo serverov späť klientom.

Táto stránka je teraz hosťovaná na klastri Raspberry Pi. Pracovné uzly sú štandardné webové servery, ktoré obsahujú rovnaký obsah. Práve som na ne nainštaloval Apache a skopíroval svoju stránku do každého uzla.

Používam extra Raspberry Pi na hosťovanie vývojovej kópie tejto stránky a na ovládanie klastra. Toto Pi je pripojené k mojej lokálnej sieti cez wifi, takže mám prístup k vývojovej kópii mojej stránky z môjho notebooku.

Extra Pi má tiež ethernetové pripojenie ku klastru Pi. Keď chcem aktualizovať svoju lokalitu, môžem preniesť zmeny z vývojovej lokality do aktívnej lokality v klastri. Aktualizácie lokality sa ukladajú do súborov .tar.gz, ktoré pracovné uzly automaticky sťahujú z lokality vývoja. Po stiahnutí sa aktualizácie rozbalia do lokálneho systému súborov.

Konfigurácia serverov Raspberry Pi

Všetky koláče v tomto systéme sú bez hlavy. Môžem sa prihlásiť do Pi s vývojovým webom pomocou protokolu Remote Desktop Protocol a z tohto Pi sa môžem prihlásiť do Worker Pies pomocou SSH.

Všetky koláče v klastri používajú statickú IP adresu. Vo väčšom klastri by bolo pravdepodobne lepšie nastaviť DHCP server na vyrovnávacom zaťažení. IP adresy používané v klastri sú v podsieti 192.168.1.xxx.

Pre každého pracovníka Pi som nastavil 4GB SD kartu pomocou najnovšej verzie Raspbianu. V raspi-config som nastavil nasledujúce možnosti:

  • expand fs
  • nastaviť názov hostiteľa
  • nastaviť heslo
  • nastaviť rozdelenie pamäte na 16 MB pre GPU
  • pretaktovanie CPU na 800 MHz
  • povoliť ssh

Na každú kartu som nainštaloval Apache a niektoré knižnice vyžadované mojím CMS, libxml2 a python-libxml2. Tento príkaz som použil na povolenie prepisu modu, ktorý vyžaduje aj môj CMS:

$ sudo a2enmod prepísať

Nakoniec som na každú SD kartu skopíroval niekoľko skriptov, ktoré umožňujú každému Pi synchronizovať svoj obsah s vývojovým Pi. Vo väčšom klastri by stálo za to vytvoriť obraz SD karty so všetkými týmito úpravami vykonanými vopred.

Budovanie vyrovnávača zaťaženia

Nástroj na vyrovnávanie zaťaženia musí mať dve sieťové rozhrania, jedno na prijímanie požiadaviek zo smerovača a druhé sieťové rozhranie na posielanie požiadaviek do klastra serverov. Uzly v klastri sú v inej podsieti ako zvyšok siete, takže IP adresa druhého rozhrania nástroja na vyrovnávanie zaťaženia musí byť v rovnakej podsieti ako zvyšok klastra. Prvé rozhranie nástroja na vyrovnávanie zaťaženia má IP adresu 192.168.0.3, zatiaľ čo IP adresa druhého rozhrania je 192.168.1.1. Všetky koláče v klastri majú IP adresy v podsieti 192.168.1.xxx.

Postavil som si load balancer pomocou starého PC s 512 MB RAM a 2,7 GHz x86 CPU. Pridal som druhú ethernetovú kartu PCI a nainštaloval som Lubuntu, odľahčenú verziu Ubuntu. Chystal som sa nainštalovať Ubuntu, ale tento počítač je dosť starý, takže Lubuntu je pravdepodobne lepšia voľba. Použil som počítač, pretože som si nebol istý, či jedno Pi bude dostatočne výkonné na to, aby fungovalo ako vyrovnávač záťaže, a Pi má iba jedno ethernetové pripojenie. Chcem, aby obe sieťové pripojenia môjho nástroja na vyvažovanie záťaže boli ethernetové pre lepší výkon a stabilitu.

Upozorňujeme, že presmerovanie IP nie je povolené. Nástroj na vyrovnávanie zaťaženia nie je smerovač, mal by preposielať iba požiadavky HTTP a nie každý paket IP, ktorý prijme.

Nastavenie softvéru na vyrovnávanie záťaže

Existuje mnoho rôznych softvérových implementácií vyvažovania záťaže. Použil som modul vyrovnávania zaťaženia Apache, pretože je ľahké ho nastaviť. Najprv som sa uistil, že operačný systém môjho počítača je aktuálny:

aktualizácia sudo apt-get
upgrade sudo apt-get

Potom som nainštaloval Apache:

sudo apt-get nainštalujte apache2

Tieto moduly Apache musia byť povolené:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

Ďalším krokom je úprava /etc/apache2/sites-available/default, aby ste mohli nakonfigurovať vyrovnávač zaťaženia. Proxy modul je potrebný na preposielanie HTTP, ale je najlepšie nepovoliť vášmu serveru, aby sa správal ako proxy. Spameri a hackeri často používajú proxy servery iných ľudí na skrytie svojej IP adresy, takže je dôležité zakázať túto funkciu pridaním tohto riadku:

ProxyRequests vypnuté

Aj keď sú požiadavky proxy zakázané, modul proxy je stále povolený a funguje ako reverzný proxy. Ďalej definujte klaster a jeho členov pridaním tohto kódu:

Rozhranie správcu vyvažovania

Balancer modul má webové rozhranie, ktoré umožňuje sledovať stav back-end serverov a konfigurovať ich nastavenia. Webové rozhranie môžete povoliť pridaním tohto kódu do /etc/apache2/sites-available/default:

Je tiež potrebné inštruovať Apache, aby spracovával požiadavky na stránku /balancer-manager lokálne namiesto preposielania týchto požiadaviek na pracovný server. Všetky ostatné požiadavky sa posielajú do klastra definovaného vyššie.

ProxyPass /balancer-manager ! ProxyPass / balancer://rpicluster/

Po uložení týchto zmien by sa mal Apache reštartovať pomocou tohto príkazu:

$ sudo /etc/init.d/apache2 reštart

keď otvorím prehliadač a prejdem na http://192.168.0.3, zobrazí sa mi titulná stránka mojej webovej stránky. Ak prejdem na http://192.168.0.3/balancer-manager, vidím túto stránku na obrázku vpravo.

Posledným krokom pri sprístupňovaní klastra online je úprava nastavení presmerovania portov v mojom smerovači. Potreboval som len nastaviť pravidlo pre preposielanie HTTP paketov na http://192.168.0.3.

Tu je kompletný súbor /etc/apache2/sites-available/default pre nástroj na vyrovnávanie zaťaženia:

ServerAdmin [e-mail chránený] DocumentRoot /var/www Možnosti FollowSymLinks AllowOverride All Možnosti Indexy FollowSymLinks MultiViews AllowOverride All Poradie povoliť, zakázať povoliť od všetkých ScriptAlias ​​​​/cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .py Order allow,deny Povoliť od všetkýchŽiadosť o proxy je vypnutá BalancerMember http://192.168.1.2:80 BalancerMember http://192.168.1.3:80 BalancerMember http://192.168.1.4:80 BalancerMember http://192.168.1.5:80 AllowOverride None Order all allow lbmethod=byrequests SetHandler balancer-manager Objednávka povoliť, zakázať povoliť od 192.168.0 ProxyPass /balancer-manager ! ProxyPass / balancer://rpicluster/ ErrorLog $(APACHE_LOG_DIR)/error.log # Možné hodnoty zahŕňajú: debug, info, notice, warning, error, crit, # alert, emerg. LogLevel varovať CustomLog $(APACHE_LOG_DIR)/access.log kombinované

- miniatúrny počítač, o niečo väčší ako flash disk, s obrovským množstvom možností. PC je možné využiť aj na určený účel – pripojiť myš, klávesnicu, monitor a pracovať ako s bežným počítačom. Možnosti Raspberry sú ale oveľa širšie – a tieto možnosti využívajú milovníci vychytávok a technológií. V dnešnej recenzii - 5 najzaujímavejších projektov založených na Raspberry Pi.

Tablet

Áno, ak nemáte tablet, je čas to urobiť sami. Pomôže nám s tým Raspberry Pi a podrobný návod (hoci v angličtine). Uhlopriečka tohto tabletu je 10 palcov. Konfigurácia opakuje konfiguráciu Raspberry Pi.

Superpočítač

Samotný minipočítač nie je príliš produktívny. Ale ak skombinujete niekoľko desiatok Raspberry do jedného klastra, môžete získať veľmi výkonný systém s významnými výpočtovými zdrojmi.

Nie je to tak dávno, čo zo 64 Raspberry Pi vznikol skutočný superpočítač. Keďže sa obaly na takéto zariadenia nepredávajú, bolo rozhodnuté vyrobiť obal svojpomocne z kociek Lego.

Ako niečo také urobiť sami? Tu je podrobný návod od autora tohto vývoja.

skype telefón

Ak pravidelne komunikujete cez Skype, štandardné spôsoby komunikácie (mikrofón, PC) by vás mohli omrzieť, rovnako ako ich omrzel tvorca ďalšieho projektu. Aby boli konverzácie na Skype zaujímavejšie, vývojár umiestnil samotnú Raspberry do puzdra rotačného telefónu, prepojil Sieť a vytvoril špeciálny softvér, ktorý umožňuje preložiť počet zvitkov disku telefónu na znaky.

Výsledkom je zaujímavá Skype stanica. Systém sa od bežného otočného telefónu líši len tým, že vzadu sú pripojené dva vodiče a nie jeden.

fotoaparát

Na základe "maliny" môžete vyrobiť výkonný fotoaparát s produktívnou náplňou. Zároveň sú potrebné len LED diódy, nejaká optika a 3D tlačiareň na tlač tela zariadenia. Samozrejme netreba zabúdať ani na samotný minipočítač Raspberry – práve on zabezpečuje chod fotoaparátu.

Takýto systém si môžete vyrobiť aj sami, aj keď to nie je také jednoduché.

Systém voľného času pre toaletu v kancelárii

Pracovníci kancelárie niekedy strácajú drahocenný čas, keď idú na toaletu a vidia, že miesto je už obsadené. Nepríjemné a navyše sa stráca drahocenný pracovný čas. Aby ste predišli takýmto prípadom, môžete vytvoriť výstražný systém, ktorý bude vysielať stav toalety v kancelárii (voľná alebo obsadená) do počítačov všetkých zamestnancov.

Na určenie, či je vo vnútri osoba alebo nie, systém používa nasledujúci algoritmus:

1. Snímka sa nasníma cez aplikáciu Streamer;
2. Analyzuje sa jas pixelov na určitom mieste, algoritmus funguje na báze PHP-GD;
3. Ak sa jas líši od referenčného, ​​systém vydá signál;
4. Používateľ dostane obsadené správy.

Úvod

Základnými nákladmi v oblasti výpočtovej techniky sú výkon počítačov a ich spotreba energie. Moderné superpočítače zaberajú obrovský priestor a spotrebujú státisíce wattov.

Veľkým problémom je v tomto prípade proces výučby paralelného programovania a vykonávania výpočtov na superpočítačoch a ešte viac - riadenie tohto typu počítačov, keďže študenti k nim spravidla nemajú priamy prístup.

V tomto článku sa navrhuje vyriešiť tento problém pomocou jednodoskových mikropočítačov, ktoré sa nedávno objavili na trhu s počítačovými zariadeniami (Paspberry Pi a analógy). Na ich základe môžete zostaviť lacný výpočtový klaster a naučiť študentov základy paralelného programovania. Účelom tejto práce je teda vytvorenie lacného vzdelávacieho klastra mikropočítačov pre vývoj a implementáciu paralelných programovacích algoritmov vo vzdelávacom procese. Je demonštrovaný príklad paralelného počítania vo vyvinutom tréningovom klastri.

Raspberry Pi je mikropočítač vyvinutý nadáciou Raspberry Pi Foundation. Malý, veľkosťou bankovej karty, je to plnohodnotný jednodoskový počítač (Systém- na- a- čip). Procesor (v modeli PI 3): 4 jadrá ARM Cortex-A53x64. Predvolený operačný systém je Raspberian (založený na jadre Linuxu). Za cenu iba 35 dolárov má doska všetky potrebné rozhrania ( Wi- fi, Bluetooth, USB, ethernet), ako aj veľký súbor hotových programov pre akýkoľvek druh činnosti. Preto boli tieto mikropočítače vybrané pre malý vzdelávací výpočtový klaster.

Koncept klastra a klastrové počítanie

Je dobre známe, že klaster je skupina počítačov prepojených vysokorýchlostnými komunikačnými kanálmi, ktoré z pohľadu používateľa predstavujú jeden hardvérový zdroj. Na druhej strane, klaster je voľne prepojená kolekcia viacerých výpočtových systémov, ktoré spolupracujú na spúšťaní bežných softvérových aplikácií. Na prepojenie niekoľkých malinových PI do klastra bol zostavený typický klastrový výpočtový systém (smerovač, ethernetové káble, USB atď.) na báze procesora PI 3 (obr. 1).

Obrázok 1. Procesorový klastrový výpočtový systém z dvoch PI 3

Ukážka paralelných výpočtov

Pre názornú demonštráciu schopností klastra dvoch PI 3 bolo zvolené programovacie prostredie Python 2 a implementácia algoritmu triedenia polí metódou merge. Počítače boli prepojené lokálnou sieťou. Na zjednodušenie zoskupovania viacerých R PI existuje veľa hotových programov, z ktorých jeden sa nazýva „mpi4py“ .

Kód zlučovacieho triediaceho poľa v Pythone vyzerá takto:

def merge(vľavo,vpravo): #zlúči 2 zoradené zoznamy dohromady

#Prechádza oboma zoznamami

kým< len(left)and j < len(right):

#Pridá menší prvok zo zoznamov do konečného zoznamu

ak zostane[i]<= right[j]:

result.append(left[i])

result.append(vpravo[j])

výsledok += vľavo

výsledok += správne

mergesort(lst):

#ak je tam len 1 prvok, nie je potrebné triediť

if len(lst)< 2:

#rozdelí zoznam na 2 polovice

stred = dĺžka(lst)/ 2

#rekurzívne rozdeľuje a triedi každú polovicu

left = mergesort(lst[:middle])

vpravo = mergesort(lst)

#zlúči oba zoradené zoznamy

vrátiť zlúčenie (vľavo, vpravo)

Algoritmus programu pozostáva z nasledujúcej postupnosti akcií:

1. Na PI 3 (server) sa vygeneruje náhodné pole čísel.

2. Toto pole je rozdelené na n častí, podľa počtu procesorov v lokálnej sieti.

3. Pomocou zásuvkového modulu a lokálnej siete vysiela Pi3 (server) časť poľa Pi3 (klient).

4. Pi3 (server) triedi svoju časť poľa a čaká, kým Pi3 (klient) zareaguje.

5. Pi3 (klient) triedi svoju časť poľa a odošle ju Pi3 (server).

6. Pi3 (server) prijme triedenú časť poľa a vykoná konečné triedenie.

Výpočty ukázali, že jednému Pi3 trvalo zoradiť pole 500 tisíc prvkov približne 23 sekúnd. Po pridaní druhého Pi3 sa tento čas skrátil na 16 sekúnd. Zvýšenie rýchlosti je nelineárne, ale čím viac počítačov je v klastri, tým menej času strávite.

Záver

Jednodoskové počítače sa len nedávno dostali mimo segment automatizácie tovární a začali dobývať masový trh. Ich malé rozmery, nízka spotreba energie a dostatočne vysoké výpočtové možnosti z nich môžu urobiť základ pre realizáciu rôznych projektov, napríklad výučby paralelného programovania. Charakteristickým rysom prezentovaného klastrového výpočtového systému založeného na raspberry PI 3 je dobrá škálovateľnosť, určená schopnosťami prepínacích zariadení, nízkymi nákladmi, schopnosťou používať bezplatný softvér, čo je dôležité pri jeho zavádzaní do vzdelávacieho procesu. Vykonané demonštračné práce ukazujú, že zhluk dokonca dvoch PI 3 je schopný urýchliť výpočet jednoduchej, no zároveň objemnej úlohy, akou je triedenie veľkého množstva údajov.

V budúcnosti sa plánuje zvýšiť počet mikropočítačov vo výpočtovom systéme a porovnať výkon kryptografických algoritmov, najmä tých, ktoré sa plánujú použiť na šifrovanie/dešifrovanie obrázkov (foto, letecké, vesmírne obrázky) veľkého objemu a preniesť ich cez internet.

Zoznam literatúre:

  1. Robert Mullins/ Distributed computed //University Cambridge. – 2012. – http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/distributed-computing / .
  2. Cluster. - Režim prístupu. – URL: https://ru.wikipedia.org/wiki/Cluster (prístup 25.02.2017).
  3. Lukin V.V., Marchevskij I.K. Vzdelávací a experimentálny výpočtový klaster. Časť 1. Nástroje a možnosti. - Režim prístupu. – URL: https://elibrary.ru/download/elibrary_17091004_33209664.pdf (prístup 25.02.2017).

V dnešnom príspevku pre hostí Bruce Tulloch, generálny riaditeľ a výkonný riaditeľ BitScope Designs, diskutuje o využití klastrových výpočtov s Raspberry Pi a nedávnom pilotnom projekte klastra Los Alamos National Laboratory 3000-Pi postavenom pomocou BitScope Blade.

Vysokovýkonná výpočtová technika a Raspberry Pi sa bežne nevyslovujú jedným dychom, ale Národné laboratórium Los Alamos buduje klaster Raspberry Pi s 3 000 jadrami ako pilot, kým sa budúci rok zvýši na 40 000 alebo viac jadier.

To je úžasné, ale prečo?

Tradičné klastre Raspberry Pi

Ako väčšina ľudí aj my milujeme dobrý klaster! Ľudia ich stavali s Raspberry Pi od začiatku, pretože je to lacné, vzdelávacie a zábavné. Boli vyrobené s pôvodnými Pi, Pi 2, Pi 3 a dokonca aj Pi Zero, ale žiadny z týchto klastrov sa neukázal ako obzvlášť praktický.

To však nebráni tomu, aby boli užitočné! Minulý týždeň som na konferencii videl niekoľko klastrov Raspberry Pi.

Jeden drobný, ktorý ma zaujal, bol od ľudí z openio.io, ktorí použili malý klaster Raspberry Pi Zero W na demonštráciu svojej škálovateľnej softvérovo definovanej platformy na ukladanie objektov, ktorá sa na veľkých počítačoch používa na správu petabajtov údajov, ale ktorá je taký ľahký, že na ňom beží dobre:

Na stánku ARM bol ďalší príťažlivý príklad, kde bola demonštrovaná kontajnerová platforma singularity Berkeley Labs, ktorá funguje veľmi efektívne na malom klastri postavenom pomocou Raspberry Pi 3.

Moja obľúbená show bola z Edinburghského paralelného výpočtového centra (EPCC): Nick Brown použil skupinu Pi 3 na vysvetlenie superpočítačov deťom pomocou pútavej interaktívnej aplikácie. Myšlienkou bolo, že návštevníci stánku navrhnú krídlo lietadla, nasimulujú ho cez klaster a zistia, či by lietadlo, ktoré používa nové krídlo, mohlo letieť z Edinburghu do New Yorku s plnou nádržou paliva. Môjmu sa to podarilo, našťastie!

Klastre novej generácie Raspberry Pi

S BitScope Blade už nejaký čas budujeme malé priemyselné klastre Raspberry Pi.

Keď nás Národné laboratórium Los Alamos oslovilo prostredníctvom poskytovateľa HPC SICORP so žiadosťou o vybudovanie klastra obsahujúceho mnoho tisíc uzlov, veľmi starostlivo sme zvážili všetky možnosti. Potreboval byť hustý, spoľahlivý, nízkoenergetický a ľahko konfigurovateľný a zostaviteľný. Nepotrebovala „robiť vedu“, ale potrebovala pracovať takmer každým iným spôsobom ako plnohodnotný HPC klaster.

Prečítam si a odpoviem na vaše myšlienky v komentároch pod týmto príspevkom.

Poznámka redakcie:

Tu je fotka Brucea v jetpacku. V pohode, však?!


16 komentárov

    Chlapci, musíte začať vyrábať počítačovú „stavebnú súpravu“. Ako dieťa som ako 7-8 ročný na Vianoce dostal erekčný set. Urobil som všetko, na čo si človek spomenie. Neskôr som sa stal strojným inžinierom. Navrhol som diely pre plynové turbíny GE a keď zapnete svetlá, mám priame spojenie s napájaním RP na celom svete.

    Väčšinu základných častí máte práve teraz. Potrebujete zbernicu, niečo ako zbernicu CM DDR3. Ak RPi 3B alebo kedykoľvek vyjde RPi 4, mal adaptér alebo piny pripojené k tejto zbernici, klastrovanie by bolo jednoduché. Vedel by som si predstaviť štyri štvorprocesorové CM, grafický procesor/bitcoin miner na CM, CM s SSD atď. Zostava počítačov…

    • Čo je zlé na použití prepínača a ethernetovej siete ako „zbernice“ na existujúcom hardvéri?

    Je k dispozícii krátka videoprezentácia, ktorá pojednáva o klastri Los Alamos Pi, o tom, ako bol skonštruovaný, na čo sa bude používať a prečo bolo toto riešenie zvolené pred ostatnými?

    Tiež vzhľadom na záujem o OctoPi a ďalšie klastre Pi, mohla by existovať sekcia venovaná paralelnému spracovaniu na fóre Raspberry Pi?

    • To je dobrý nápad. Myslím, že nastal správny čas.

    Je k dispozícii demo airwing?

    • Cluster EPCC Raspberry Pi sa nazýva Wee Archie () a (ako ten, ktorý sme postavili v Los Alamos) je „modelom“, aj keď na trochu iný účel. V ich prípade ide o zástupcu spoločnosti Archer (http://www.archer.ac.uk/), superpočítača svetovej triedy, ktorý sa nachádza a prevádzkuje vo Veľkej Británii National Supercomputing Service. Nick Brown (https://www.epcc.ed.ac.uk/about/staff/dr-nick-brown) je chlapík za demom, ktorého som videl na SC17. Dajte mu riadok!

    Som rád, že som teraz opustil ich oddelenie vysokovýkonných počítačov. To je šialenstvo. Kód Fortran, ktorý je tak rozšírený v laboratóriách, nebude fungovať rovnako na architektúre ARM, keď sa superpočítače, na ktorých má kód bežať, budú používať na počítačoch s architektúrou Intel. Tento projekt poskytne stážistom priestor na to, aby sa naučili to, čo by sa mali naučiť na vysokej škole.

    • Jedným z nevyriešených problémov s výpočtom exascale je, že je neefektívne kontrolovať výpočet bežiaci na toľkých jadrách v toľkých boxoch. Zároveň pravdepodobnosť, že všetky uzly fungujú bezchybne počas trvania výpočtu, exponenciálne klesá, keď sa pridávajú ďalšie uzly.

      Efektívne využitie distribuovaných pamäťových paralelných systémov sa porovnáva s pasením kurčiat. Keď uvažujete o kŕdľoch tak veľkých, že ich nakŕmenie potrebuje megawatty, môže byť lepšie trénovať pasením švábov. Toto nie je o ladení výkonu Fortran kódov, ale o tom, ako spravovať hardvérové ​​chyby v masívne distribuovanom paralelnom výpočte. Ako bolo spomenuté v tlačovej správe, ani nevieme, ako nabootovať počítač exascale: V čase spustenia posledného uzla už zlyhalo viacero ďalších uzlov. Podľa môjho názoru je modelovanie týchto exascale ťažkostí s masívnym zhlukom počítačov Raspberry Pi uskutočniteľné. Napríklad vypustenie 1 GB pamäte RAM cez 100 Mbitovú sieť Pi je podobný pomer údajov k šírke pásma ako vypustenie 1 TB pamäte RAM cez 100 Gbitové prepojenie.

      • Spot na Ericovi. Problémom je škálovanie, zavádzanie, spúšťanie počítačov, vkladanie a odosielanie údajov a kontrolovanie, aby ste sa vyhli strate obrovského množstva výpočtovej práce.

        Z tohto projektu som sa naučil niekoľko zaujímavých vecí...

        Bežne si človek myslí, že chybovosť rádovo 10^-18 je celkom dobrá, ale v tomto meradle sa s ňou dá stretnúť v priebehu jedného výstrelu na veľkom stroji. V exascale to bude horšie. Slovo, ktoré na to komunita HPC používa, je „odolnosť“; stroje musia byť schopné vykonávať vedu spoľahlivým a overiteľným spôsobom napriek týmto problémom „skutočného sveta“, ktoré zasahujú do prevádzky základného klastra.

        Robia veľa „synchrónnej vedy“ v masovom meradle, takže potreba kontrolných bodov je nevyhnutná a Los Alamos sa nachádza v pomerne vysokej nadmorskej výške (asi 7 300 stôp), takže stroje sú vystavené vyšším úrovniam kozmického žiarenia. To znamená, že sa stretávajú s vyššou mierou „analógových chýb“, ktoré môžu spôsobiť chyby vo výpočte a náhodné zlyhania uzlov.

        Všetky tieto druhy problémov je možné modelovať, testovať a pochopiť pomocou Raspberry Pi Cluster s oveľa nižšími nákladmi a nižším výkonom ako na veľkých strojoch. Mať root prístup k 40 000 jadrovým klastrom na dlhší čas je ako splnený sen pre ľudí, ktorých úlohou je riešiť tieto problémy.

    Vyrábam 120 klastrov Raspberry Pi na 3D skenovanie. Použite čisté UDP multicasting na ich riadenie pomocou jediného prenosu sieťových paketov. Funguje naozaj dobre :-)

    To je veľmi podobné tomu, čo chceme s novým projektom na miestnej úrovni. Ale namiesto fyzického klastra, ktorý sa nachádza blízko, uvažujeme o „kolektíve“ (druh Borgov, ale potom pekné...), na vykresľovanie 3D GPU Three.js. Mám prototyp spustený na If you Bing alebo Google na sustasphere, nájdete zodpovedajúci GitHub (nie však úplne aktuálny). Aktuálny prototyp sa vykreslí (samozrejme) vo vašom prehliadači. S kolektívom budú vaše hovory z prehliadača smerované na (dúfajme) tisíce Raspberry; každý chrumkavý v reálnom čase je súčasťou 3D vykresľovania. V ‚mojej hlave‘ premýšľam o Open Suze s Express.js.

    Za zásobovanie energiou každého uzla vďačíme vetru a archemedickej skrutke s hydraulickou hlavicou, s jednoduchým bicyklovým dynamom…

    Pekné, ale prečo? Radi by sme si uctili ozvenu z minulosti (vyhlásenie Port Huron); zaviesť virtuálnu sféru dôstojnosti. dať ľuďom príležitosť vyjadriť svoje emócie; opäť definovať význam dôstojnosti. Predstavte si, že Mozart predvádza svoju Figarovú svadbu (pre mňa dokonalý príklad toho, ako prinášať umenie ľuďom a zdieľať myšlienky o morálke); a môcť tam skutočne byť, pohybovať sa, ‚počítať nosné dierky‘ a možno aj ‚pohybovať sa‘.

    Áno, na to budete potrebovať nejaký GPU-kolektív.

    Vedeli by ste nám na základe svojich skúseností poradiť, ako ďalej? Pomôcť používaniu robiť správne rozhodnutia?

    > nedávny pilot klastra Los Alamos National Laboratory 3000-Pi

    Mal by čítať klaster 750-Pi, 5 čepelí po 150 Pis, s celkovým počtom 3000 jadier (4 jadrá každé na CPU)

    Ok, som blázon na malinové pi 3. Ale zaujímalo by ma, či použili LFS s klastrom čepelí bitscope? ...a ak áno, ako to fungovalo?

    • Nie LFS, ale ani Raspbian (okrem počiatočného testovania). Nakoniec zverejnia viac, aby vysvetlili, čo robia, ale stačí povedať, že ide o veľmi štíhly softvérový balík, ktorého cieľom je uľahčiť im simuláciu prevádzky veľkých klastrov na tomto „malom“.

    Prečo je „dôležité vyhnúť sa používaniu kariet Micro SD“?

    Mám na mysli aplikáciu pre klaster pi, na ktorý budem potrebovať lokálne úložisko. Ak nemôžem použiť kartu MicroSD, čo potom?

    • Pri prevádzke klastra 750 uzlov (ako to robí Los Alamos) je správa a aktualizácia obrázkov na všetkých 750 SD karte nočnou morou.

      Ak je váš klaster menší, nemusí to byť problém (v skutočnosti to často robíme len pre malé Blade Racky s 20 alebo 40 uzlami).

      Ďalším problémom je však robustnosť.

      SD karty majú tendenciu sa opotrebovávať (ako rýchlo závisí od toho, ako ich používate). Zavádzacie uzly PXE (net) sa neopotrebujú. Miestne úložisko tiež nemusí byť potrebné (ak používate súborový systém obsluhovaný NFS alebo NBD cez sieť LAN), ale problémom môže byť šírka pásma prístupu k (vzdialenej) úložisku (ak všetky uzly naraz preskočia na sieť LAN v závislosti od vaša sieťová štruktúra a/alebo šírka pásma servera NFS/NBD).

      Ďalšou možnosťou sú USB kľúče (zapojené do USB portov Raspberry Pi). Sú (zvyčajne) rýchlejšie a (môžu byť) spoľahlivejšie ako SD karty a môžete z nich tiež zaviesť systém!

      Všetko, čo bolo povedané, nie je problém s kartami SD používanými v rámci svojich obmedzení v Raspberry Pi Clusters.