Cluster din raspberry pi 3. Crearea unui sistem de implementare a aplicațiilor folosind Docker

În postarea invitaților de astăzi, Bruce Tulloch, CEO și Managing Director al BitScope Designs, discută despre utilizările cluster-computing cu Raspberry Pi și recentul pilot al clusterului Los Alamos National Laboratory 3000-Pi construit cu BitScope Blade.

Calculul de înaltă performanță și Raspberry Pi nu sunt în mod normal rostite în aceeași suflare, dar Laboratorul Național Los Alamos construiește un cluster Raspberry Pi cu 3000 de nuclee ca pilot înainte de a scala până la 40.000 de nuclee sau mai mult anul viitor.

Este uimitor, dar de ce?

Clustere tradiționale Raspberry Pi

Ca majoritatea oamenilor, ne place un grup bun! Oamenii le construiesc cu Raspberry Pi încă de la început, pentru că este ieftin, educațional și distractiv. Au fost construite cu Pi, Pi 2, Pi 3 și chiar Pi Zero originale, dar niciunul dintre aceste clustere nu s-a dovedit a fi deosebit de practic.

Totuși, asta nu le-a împiedicat să fie utile! Am văzut destul de multe clustere Raspberry Pi la conferința de săptămâna trecută.

Unul mic care mi-a atras atenția a fost de la cei de la openio.io , care au folosit un mic cluster Raspberry Pi Zero W pentru a demonstra platforma lor scalabilă de stocare a obiectelor definite de software , care pe mașinile mari este folosită pentru a gestiona petabyți de date, dar care este atât de ușor încât funcționează bine pe asta:

A existat un alt exemplu atrăgător la standul ARM, unde platforma de containere singulare a Berkeley Labs a fost demonstrată rulând foarte eficient pe un cluster mic construit cu Raspberry Pi 3s.

Emisiunea mea preferată a fost de la Edinburgh Parallel Computing Center (EPCC): Nick Brown a folosit un grup de Pi 3-uri pentru a explica supercalculatoarele copiilor cu o aplicație interactivă captivantă. Ideea a fost ca vizitatorii standului să proiecteze o aripă de avion, să o simuleze peste cluster și să stabilească dacă o aeronavă care folosește noua aripă ar putea zbura de la Edinburgh la New York cu un rezervor plin de combustibil. Al meu a reusit, din fericire!

Clustere Raspberry Pi de generație următoare

Am construit clustere Raspberry Pi industriale la scară mică de ceva vreme cu BitScope Blade.

Când Laboratorul Național Los Alamos ne-a abordat prin intermediul furnizorului HPC SICORP cu o solicitare de a construi un cluster care să cuprindă multe mii de noduri, am luat în considerare toate opțiunile cu mare atenție. Trebuia să fie dens, fiabil, cu putere redusă și ușor de configurat și de construit. Nu trebuia „să facă știință”, dar trebuia să funcționeze în aproape orice alt mod, așa cum ar face un cluster HPC la scară largă.

Voi citi și voi răspunde gândurilor voastre și în comentariile de sub această postare.

Nota editorului:

Iată o fotografie cu Bruce purtând un jetpack. Cool, nu?!


16 comentarii

    Băieți, trebuie să începeți să faceți un „set de montaj” pentru computer. În copilărie, am primit un set de erector când aveam 7-8 ani de Crăciun. Am făcut tot ce se putea gândi. Am devenit ulterior inginer mecanic. Am proiectat piese pentru turbinele cu gaz GE și, atunci când aprindeți luminile, am o conexiune directă pentru alimentarea RP-urilor din întreaga lume.

    Aveți majoritatea părților fundamentale chiar acum. Ai nevoie de un autobuz, ceva de genul CM DDR3. Dacă RPi 3B sau ori de câte ori iese RPi 4, ar avea un adaptor sau pinouts care se conectează la acea magistrală, Clustering-ul ar fi ușor. Mi-aș putea imagina patru CM-uri cu patru procesoare, un procesor grafic/miner Bitcoin pe un CM, un CM cu SSD etc. Un set de ridicare a calculatorului...

    • Ce este în neregulă cu utilizarea comutatorului și a fabricii Ethernet ca „autobuz” pe hardware-ul existent?

    Există o scurtă prezentare video disponibilă care discută despre clusterul Los Alamos Pi, cum a fost construit, pentru ce va fi folosit și de ce a fost aleasă această soluție în detrimentul altora?

    De asemenea, având în vedere interesul față de OctoPi și alte clustere Pi, ar putea exista o secțiune dedicată procesării paralele în Forumul Raspberry Pi?

    • E o idee bună. Cred că este momentul potrivit.

    Este disponibilă demo-ul airwing gratuit?

    • Clusterul EPCC Raspberry Pi se numește Wee Archie () și (ca și cel din Los Alamos pe care l-am construit) este un „model”, deși cu un scop oarecum diferit. În cazul lor, este reprezentantul Archer (http://www.archer.ac.uk/), un supercomputer de clasă mondială situat și rulat în Marea Britanie, Serviciul Național de Supercomputing. Nick Brown (https://www.epcc.ed.ac.uk/about/staff/dr-nick-brown) este tipul din spatele demo-ului pe care l-am văzut la SC17. Aruncă-i un rând!

    Mă bucur că am părăsit departamentul lor de calcul de înaltă performanță acum. Aceasta este o nebunie. Codul Fortran prost atât de răspândit în laboratoare nu va rula la fel pe arhitectura ARM atunci când super computerele pe care urmează să ruleze codul vor fi folosite pe mașinile cu arhitectură Intel. Acest proiect le va oferi stagiarilor un teren de joc pentru a învăța ceea ce ar fi trebuit să învețe la facultate.

    • Una dintre problemele în așteptare cu calculul exascale este că este ineficient să se verifice un calcul care rulează pe atât de multe nuclee în atâtea casete. În același timp, probabilitatea ca toate nodurile să funcționeze impecabil pe durata calculului scade exponențial pe măsură ce se adaugă mai multe noduri.

      Sistemele paralele cu memorie distribuită eficient eficiente au fost comparate cu păstorirea puilor. Când vă gândiți la turme atât de mari încât este nevoie de megawați pentru a le hrăni, poate fi mai bine să exersați prin păstorirea gândacilor. Nu este vorba despre reglarea performanței codurilor Fortran, ci despre cum să gestionați defecțiunile hardware într-un calcul paralel distribuit masiv. După cum sa menționat în comunicatul de presă, nici măcar nu știm cum să pornim o mașină exascale: până la pornirea ultimului nod, mai multe alte noduri s-au prăbușit deja. În opinia mea, modelarea acestor dificultăți exascale cu un grup masiv de computere Raspberry Pi este fezabilă. De exemplu, descărcarea a 1 GB de RAM peste rețeaua de 100 Mbit a lui Pi este un raport de date cu lățimea de bandă similară cu descărcarea a 1 TB de RAM pe o interconexiune de 100 Gbit.

      • Vedeți pe Eric. Problema este una de scară, pornire, rularea mașinilor, introducerea și scoaterea datelor și verificarea pentru a evita pierderea unor cantități masive de muncă de calcul.

        Câteva lucruri interesante pe care le-am învățat din acest proiect...

        În mod normal, se consideră că ratele de eroare de ordinul 10^-18 sunt destul de bune, dar la această scară se poate întâlni în timpul unei singure lovituri pe o mașină mare. La exascală acest lucru va fi mai rău. Cuvântul pe care comunitatea HPC îl folosește pentru aceasta este „reziliență”; mașinile trebuie să fie capabile să facă știința într-un mod fiabil și verificabil, în ciuda acestor probleme din „lumea reală” care intervin în funcționarea clusterului subiacent.

        Ei fac multă „știință sincronă” la scară masivă, astfel încât nevoia de puncte de control este inevitabilă, iar Los Alamos este situat la o altitudine destul de mare (aproximativ 7.300 de picioare), astfel încât mașinile sunt supuse unor niveluri mai ridicate de radiație cosmică. Aceasta înseamnă că se confruntă cu rate mai mari de „erori analogice” care pot cauza erori de calcul și blocări aleatorii ale nodurilor.

        Toate aceste tipuri de probleme pot fi modelate, testate și înțelese folosind Raspberry Pi Cluster la un cost mult mai mic și o putere mai mică decât la mașinile mari. A avea acces root la un cluster de 40.000 de nuclee pentru perioade lungi de timp este ca un vis devenit realitate pentru băieții care au rolul de a rezolva aceste probleme.

    Fac 120 de clustere Raspberry Pi pentru scanare 3D. Utilizați multicasting UDP pur pentru a le controla pe toate folosind o singură transmisie de pachete de rețea. Functioneaza foarte bine :-)

    Este foarte asemănător cu ceea ce ne dorim cu un nou proiect de bază. Dar în loc de un cluster fizic aproape situat, ne gândim la un „colectiv” (un fel de Borg, dar apoi drăguț...), pentru a face randarea 3D GPU Three.js. Am un prototip care rulează pe Dacă sunteți Bing sau Google pe sustasphere, veți găsi GitHub-ul corespunzător (nu este totuși complet actualizat). Prototipul actual se redă (evident) în browserul dvs. Cu colectivul, apelurile dvs. prin browser vor fi direcționate către (sperăm) mii de Raspberry; fiecare scriind în timp real o parte din randarea 3D. În „capul meu”, mă gândesc la Open Suze stivuit cu Express.js.

    Pentru alimentarea cu energie a fiecărui nod, mulțumim vântului și unui șurub arhemedian, cu cap hidraulic, cu un simplu dinam de bicicletă...

    Frumos, dar de ce? Am dori să onorăm un ecou din trecut (Declarația Port Huron); introduceți o sferă virtuală a demnității. Oferirea oamenilor oportunitatea de a-și exprima emoțiile; definind din nou sensul demnitatii. Imaginați-vă pe Mozart interpretând Nozze di Figaro (pentru mine un exemplu perfect de a aduce arta oamenilor și de a împărtăși gânduri despre moralitate); și să fii capabil să fii acolo, să te miști, să „numărăm nările” și poate chiar să „devii fizic”.

    Da, veți avea nevoie de niște GPU-colectiv pentru asta.

    Pe baza experienței tale, ne poți sfătui pe drumul pe care îl avem? Ajută folosirea să ia decizii corecte?

    > pilot recent al clusterului Los Alamos National Laboratory 3000-Pi

    Ar trebui să citească cluster 750-Pi, 5 lame de 150 Pi fiecare, cu 3000 de nuclee în total (4 nuclee fiecare per CPU)

    Ok, sunt un nebun la Raspberry Pi 3. Dar mă întrebam dacă au folosit LFS cu clusterul de lame bitscope? … și dacă da, cum a funcționat?

    • Nu LFS, dar nici Raspbian (cu excepția testării inițiale). În cele din urmă, vor publica mai multe pentru a explica ceea ce fac, dar este suficient să spunem că este o stivă de software foarte slabă, care are scopul de a le face mai ușor să simuleze funcționarea clusterelor mari pe acest „mic”.

    De ce este „important să evitați utilizarea cardurilor Micro SD”?

    Am în minte o aplicație pentru un cluster pi, pentru care voi avea nevoie de stocare locală. Dacă nu pot folosi cardul MicroSD, atunci ce?

    • Când rulați un cluster de 750 de noduri (cum face Los Alamos), gestionarea și actualizarea imaginilor pe toate cardurile SD 750 este, ei bine, un coșmar.

      Dacă clusterul dvs. este mai mic, s-ar putea să nu fie o problemă (într-adevăr, facem adesea acest lucru pentru Rack-uri Blade mici de 20 sau 40 de noduri).

      Cu toate acestea, cealaltă problemă este robustețea.

      Cardurile SD tind să se uzeze (de cât de repede depinde cum faci folosiți-le). Nodurile de boot PXE (net) nu se uzează. De asemenea, stocarea locală poate să nu fie necesară (dacă utilizați un sistem de fișiere servit NFS sau NBD prin LAN), dar lățimea de bandă de accesare a stocării (la distanță) poate fi o problemă (dacă toate nodurile sar pe LAN simultan, în funcție de structura de rețea și/sau lățimea de bandă a serverului NFS/NBD).

      Cealaltă opțiune sunt stick-urile USB (conectate la porturile USB ale Raspberry Pi). Sunt (de obicei) mai rapide și (pot fi) mai fiabile decât cardurile SD și puteți porni și de pe ele!

      Toate acestea fiind spuse, nu există nicio problemă cu cardurile SD utilizate în limitele lor în clusterele Raspberry Pi.

Folosit de entuziaști într-o varietate de scopuri. De exemplu, entuziastul David Guill a decis să-l folosească pentru a construi un cluster - un grup de computere conectate între ele și reprezentând, din punctul de vedere al utilizatorului, o singură resursă hardware. S-a decis denumirea proiectului 40-Node Raspi Cluster. Este de remarcat faptul că David avea nevoie de cluster pentru a dobândi experiență în programarea pe sisteme distribuite, așa că clusterul Raspberry Pi va înlocui un adevărat super-computer în timpul pregătirii sale.

Pur și simplu, ar fi posibil să asamblați un cluster dintr-un Raspberry Pi, folosind o unitate de rafturi sau un dulap ieftin în loc de o carcasă (ca în cazul lui ), dar din moment ce David este interesat de modding, a decis să facă un cluster elegant. , cât mai aproape ca aspect și comoditate de soluțiile în serie. Și, trebuie să spun, David a reușit, pentru că proiectul lui este mult mai gândit decât multe cazuri în serie. Apropo, corpul proiectului Raspi Cluster cu 40 de noduri este realizat din panouri acrilice, tăiate la dimensiune cu ajutorul unui laser și lipite manual.

Principal caracteristici distinctive Oțel proiect Raspi Cluster cu 40 de noduri: aspect rece, dimensiuni destul de compacte (ca un turn mare), acces ușor la toate componentele și posibilitatea de a le înlocui fără a fi nevoie să dezasamblați carcasa, fixare fără șuruburi a pieselor de bază și a multor componente, precum și ca ordine în fire (și sunt destul de multe în acest proiect). Acest proiect include 40 de computere compacte Raspberry Pi (40 de nuclee Broadcom BCM2835 cu o frecvență de 700 MHz, 20 GB de RAM distribuită), două switch-uri cu 24 de porturi, o sursă de alimentare ATX, cinci hard disk-uri de 1 TB (cu extensibile până la 12 bucăți). ), 440 GB memorie flash, precum și un router cu conectivitate wireless.


Calculatoarele Raspberry Pi din acest proiect sunt grupate în grupuri de patru pe suporturi acrilice personalizate, dintre care sunt zece în acest proiect. Datorită acestui montaj (ca și în serverele blade), este asigurat accesul convenabil și înlocuirea ușoară a computerelor compacte. Fiecare blade Raspberry Pi are propriul convertor compact DC-DC, alimentat de o sursă de alimentare comună ATX. Răcirea clusterului este implementată folosind patru ventilatoare de 140 mm, în spatele cărora sunt instalate filtre.

Abundența de LED-uri adaugă „modificare” suplimentară proiectului Raspi Cluster cu 40 de noduri - există mai mult de trei sute de leduri în proiect (pe mini-calculatoare, comutatoare, routere și ventilatoare), iar în timpul funcționării vor clipi în conformitate cu sarcina. Dimensiunile acestui proiect sunt de 25 x 39 x 55 cm, iar costul aproximativ al construcției este de 3.000 USD.

Cu extern și vedere interioara, precum și caracteristicile proiectului Raspi Cluster cu 40 de noduri, puteți vedea în fotografiile și videoclipurile atașate. Dacă acest proiect vă interesează, atunci vă puteți familiariza cu el mai detaliat, iar David a descris în detaliu construcția acestui monstru, puteți vizita nota corespunzătoare pe site-ul său personal.

O utilizare populară a computerelor Raspberry Pi este construirea de clustere. Raspberry Pies sunt mici și ieftine, așa că este mai ușor să le folosiți pentru a construi un cluster decât ar fi cu computerele. Un grup de Raspberry Pies ar trebui să fie destul de mare pentru a concura cu un singur computer; probabil că veți avea nevoie de aproximativ 20 Plăcinte pentru a produce un cluster cu la fel de multă putere de calcul ca un PC. Deși un cluster Pi poate să nu fie atât de puternic, este o oportunitate excelentă de a afla despre calculul distribuit.

Există mai multe tipuri diferite de computere distribuite care pot fi utilizate în scopuri diferite. Există super computere care sunt folosite pentru rezolvarea problemelor matematice, cum ar fi modelarea condițiilor meteorologice sau simularea reacțiilor chimice. Aceste sisteme folosesc adesea Interfața de transmitere a mesajelor (MPI). O echipă de la Universitatea din Southampton a construit un super computer bazat pe 64 de noduri MPI. Acest sistem este folosit pentru a preda elevilor despre supercalculatură.

O altă tehnologie care este adesea folosită în calculul distribuit este Hadoop, care distribuie date pe mai multe noduri. Hadoop este adesea folosit pentru procesarea seturilor mari de date și extragerea datelor. Un inginer de la Nvidia a construit un mic cluster Hadoop folosind Raspberry Pies. El își folosește clusterul pentru experimentați și testați idei înainte de a le implementa pe sisteme mai puternice.

Utilizarea unui cluster Raspberry Pi ca server web

Clusterele pot fi folosite ca servere web. Multe site-uri web primesc prea mult trafic pentru a rula pe un singur server, așa că trebuie utilizate mai multe servere. Solicitările de la browserele web sunt primite de un nod numit load balancer, care trimite cererile către serverele de lucru. Echilibratorul de încărcare transmite apoi răspunsurile de la servere înapoi către clienți.

Acest site este acum găzduit pe un cluster Raspberry Pi. Nodurile de lucru sunt servere web standard care conțin conținut identic. Tocmai am instalat Apache pe ele și mi-am copiat site-ul pe fiecare nod.

Folosesc un Raspberry Pi suplimentar pentru a găzdui o copie de dezvoltare a acestui site și pentru a controla clusterul. Acest Pi este conectat la rețeaua mea locală prin wifi, așa că pot accesa copia de dezvoltare a site-ului meu de pe laptop.

Pi extra are, de asemenea, o conexiune ethernet la clusterul Pi. Când vreau să-mi actualizez site-ul, pot transfera modificări de pe site-ul de dezvoltare pe site-ul live din cluster. Actualizările site-ului sunt plasate în fișiere .tar.gz pe care nodurile lucrătoare le descarcă automat de pe site-ul de dezvoltare. Odată descărcate, actualizările sunt apoi despachetate în sistemul de fișiere local.

Configurarea serverelor Raspberry Pi

Toate plăcintele din acest sistem sunt fără cap. Mă pot conecta la Pi cu site-ul de dezvoltare folosind protocolul Remote Desktop și din acel Pi mă pot conecta la Worker Pies folosind SSH.

Toate plăcintele din cluster folosesc o adresă IP statică. Într-un cluster mai mare, probabil că ar fi mai bine să configurați un server DHCP pe echilibrantul de încărcare. Adresele IP utilizate în cluster sunt în subrețeaua 192.168.1.xxx.

Pentru fiecare lucrător Pi, am configurat un card SD de 4 GB folosind cea mai recentă versiune de Raspbian. În raspi-config am setat următoarele opțiuni:

  • extinde fs
  • setați numele de gazdă
  • setați parola
  • setați divizarea memoriei la 16 MB pentru GPU
  • overclock CPU la 800MHz
  • activați ssh

Pe fiecare card am instalat Apache și câteva biblioteci cerute de CMS-ul meu, libxml2 și python-libxml2. Am folosit această comandă pentru a activa rescrierea modului, care este cerută și de CMS-ul meu:

$ sudo a2enmod rescrie

În cele din urmă, am copiat câteva scripturi pe fiecare card SD care permit fiecărui Pi să-și sincronizeze conținutul cu Pi de dezvoltare. Într-un cluster mai mare, ar merita să creați o imagine de card SD cu toate aceste modificări făcute în avans.

Construirea unui echilibrator de sarcină

Echilibratorul de încărcare trebuie să aibă două interfețe de rețea, una pentru a primi cereri de la un router și o altă interfață de rețea pentru a redirecționa cererile către clusterul de servere. Nodurile din cluster se află pe o subrețea diferită de restul rețelei, astfel încât adresa IP a celei de-a doua interfețe a echilibratorului de încărcare trebuie să fie pe aceeași subrețea ca și restul clusterului. Prima interfață a echilibratorului de încărcare are adresa IP 192.168.0.3, în timp ce adresa IP a celei de-a doua interfețe este 192.168.1.1. Toate Piele din cluster au adrese IP pe subrețeaua 192.168.1.xxx.

Mi-am construit echilibrul de încărcare folosind un computer vechi cu 512 MB de RAM și un procesor x86 de 2,7 GHz. Am adăugat o a doua placă ethernet PCI și am instalat Lubuntu, o versiune ușoară a Ubuntu. Aveam de gând să instalez Ubuntu, dar acest computer este destul de vechi, așa că Lubuntu este probabil o alegere mai bună. Am folosit un PC pentru că nu eram sigur dacă un singur Pi ar fi suficient de puternic pentru a acționa ca echilibrator de încărcare, iar un Pi are o singură conexiune Ethernet. Vreau ca ambele conexiuni de rețea ale echilibrului meu de încărcare să fie ethernet pentru îmbunătățire performanta si stabilitate.

Rețineți că redirecționarea IP nu este activată. Echilibratorul de încărcare nu este un router, ar trebui să redirecționeze numai cereri HTTP și nu fiecare pachet IP pe care îl primește.

Configurarea software-ului de echilibrare a încărcăturii

Există multe implementări software diferite de echilibrare a încărcăturii. Am folosit modulul de echilibrare a încărcării Apache pentru că este ușor de configurat. Mai întâi m-am asigurat că sistemul de operare al computerului meu este actualizat:

sudo apt-get update
sudo apt-get upgrade

Apoi am instalat Apache:

sudo apt-get install apache2

Aceste module Apache trebuie să fie activate:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

Următorul pas este să editați /etc/apache2/sites-available/default pentru a configura echilibrul de încărcare. Modulul proxy este necesar pentru redirecționarea HTTP, dar cel mai bine este să nu permiteți serverului dvs. să se comporte ca un proxy. Spammerii și hackerii folosesc adesea serverele proxy ale altor persoane pentru a-și ascunde adresa IP, așa că este important să dezactivați acest lucru. caracteristică prin adăugarea acestei linii:

ProxyRequests dezactivat

Deși cererile proxy sunt dezactivate, modulul proxy este încă activat și acționează ca un proxy invers. Apoi, definiți clusterul și membrii săi adăugând acest cod:

Interfață manager Balancer

Modulul de echilibrare are o interfață web care face posibilă monitorizarea stării serverelor back-end și configurarea setărilor acestora. Puteți activa interfața web adăugând acest cod în /etc/apache2/sites-available/default:

De asemenea, este necesar să instruiți Apache să gestioneze cererile către pagina /balancer-manager la nivel local, în loc să redirecționeze aceste solicitări către un server de lucru. Toate celelalte solicitări sunt redirecționate către cluster-ul definit mai sus.

ProxyPass /balancer-manager !

ProxyPass/balancer://rpicluster/

Odată ce aceste modificări au fost salvate, Apache ar trebui să fie repornit cu această comandă:

$ sudo /etc/init.d/apache2 restart

când deschid un browser și merg la http://192.168.0.3, văd prima pagină a site-ului meu web. Dacă merg la http://192.168.0.3/balancer-manager, văd această pagină în imaginea din dreapta.

Ultimul pas în conectarea clusterului este ajustarea setărilor de redirecționare a porturilor din routerul meu. Trebuia doar să configurez o regulă pentru redirecționarea pachetelor HTTP către http://192.168.0.3.

Iată /etc/apache2/sites-available/default complet pentru echilibrul de încărcare: ServerAdmin webmaster@localhost DocumentRoot /var/www Opțiuni FollowSymLinks AllowOverride All Opțiuni Indexuri FollowSymLinks MultiViews AllowOverride All Comanda permite, interzice permite din toate ScriptAlias ​​​​/cgi-bin/ /usr/lib/cgi-bin/ AllowOverride Nici unul Opțiuni +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .py Comanda permite, refuză Permite din toate ProxyRequests dezactivat 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 Niciunul Permite de la toate Comanda permite, DenySet lbmethod=byrequests ProxyPass /balancer-manager !

ProxyPass / balancer://rpicluster/ ErrorLog $(APACHE_LOG_DIR)/error.log # Valorile posibile includ: debug, info, notice, warn, error, crit, # alert, emerg.

LogLevel avertizează CustomLog $(APACHE_LOG_DIR)/access.log combinat Modulul BitScope Cluster conține 150 de minicalculatoare Raspberry Pi cu comutatoare de rețea integrate. Foto: BitScope Programatorii și oamenii de știință nu au întotdeauna acces ușor la un supercomputer real, de înaltă performanță, pentru a-și testa programele. Mai mult decât atât, supercalculatoarele sunt de obicei deja ocupate 24 de ore pe zi cu alte software-uri. E greu să găsești fereastra. Trebuie să scrieți o cerere în avans și să intrați la coadă. Cum

program nou

va funcționa într-un mediu real multiprocesor, cât de bine este paralelizată sarcina?



Pentru a ajuta dezvoltatorii, comandat de Divizia de calcul de înaltă performanță a Laboratorului Național Los Alamos, compania australiană BitScope a dezvoltat module de calcul „test” BitScope Cluster de 150 de minicalculatoare Raspberry Pi care pot fi combinate într-un cluster și și-au testat programele pe ei.

Laboratorul Național Los Alamos operează unul dintre cele mai puternice zece supercomputere din lume - Trinity.

Supercomputerul Trinity la Laboratorul Național Los Alamos

Conducerea laboratorului și-a propus să găsească o modalitate de a oferi dezvoltatorilor acces la calcule paralele de înaltă performanță, fără a avea de fapt acces la supercomputerul în sine, astfel încât să-și poată testa programele.



„Modulele Raspberry Pi le permit dezvoltatorilor să-și dea seama cum să scrie un astfel de software și să-l facă să funcționeze în mod fiabil, fără a fi nevoie să aibă un banc de testare de aceeași dimensiune care costă un sfert de miliard de dolari și consumă 25 de megawați de energie electrică”, spune Gary Glider de la Laboratorul Național Alamosa.

Fiecare modul are 144 de noduri active, șase noduri de rezervă și un nod de control. Modulul are un format 6U atunci când este instalat într-un rack de server de centru de date. După cum se raportează pe site-ul oficial, un cluster de 1000 de noduri ocupă un rack 42U va costa aproximativ 120-150 USD per nod. Acesta este un markup destul de mare în comparație cu prețul standard al Raspberry Pi, despre care se știe că este de 35 USD.

Fiecare modul BitScope Cluster constă din blocuri de construcție numite „Pachete de cluster”. Instalarea unei unități în rafturi are loc tocmai sub forma acestor „pachete”.



Pachet cluster

Un nod (minicomputer Raspberry Pi 3) conține un procesor ARMv8 quad-core pe 64 de biți la 1,2 MHz. Astfel, dacă ne imaginăm un cluster, de exemplu, de cinci module, atunci vor fi 720 de noduri active, adică 2880 de nuclee de procesor active. Este suficient să testați cât de bine este paralelizat programul.



Așa arată de aproape un rând de mini-computere din Cluster Pack.

Desi o astfel de solutie este intr-adevar mult mai ieftina decat un supercalculator, tot nu poate fi numita buget. Doar o mare organizație de cercetare își poate permite un mini-cluster pentru 100 de mii de dolari sau 150 de mii de dolari doar pentru programe de testare. De fapt, astfel de module sunt probabil concepute pentru aceste organizații de cercetare bogate - proprietari de supercalculatoare. Cu toate acestea, creatorii mini-supercomputerului spun că este „cea mai rentabilă și scalabilă soluție din lume: ieftină de construit, operat și susținut”.

Modulele BitScope Cluster oferă, de asemenea, economii semnificative în consumul de energie. Puteți calcula singur consumul de energie al fiecăruia dintre ele, numărând 5 W pe nod. Dacă presupunem că nodurile de rezervă au un consum minim de energie, atunci modulele rămân cu 144 de noduri active și un nod de control. Total 145×5=725 W.

BitScope intenționează să lanseze aceste module spre vânzare gratuită cândva la începutul lui 2018.

Potrivit companiei, pe lângă dezvoltarea de software, astfel de clustere pot fi utile ca simulatoare de rețele de senzori, în cercetarea rețelelor de înaltă performanță și a Internetului obiectelor.

Articole înrudite

2024 liveps.ru. Teme și probleme gata făcute în chimie și biologie.