Mēs izveidojam lietojumprogrammu izvietošanas sistēmu, izmantojot Docker. Paralēlā skaitļošana uz raspberry pi Klasteru un klasteru skaitļošanas jēdziens

Raspberry Pi 3 var saukt par patiesi universālu datoru. Bitcoin, protams, uz tā nevar iegūt, un nebūs iespējams spēlēt spēles ar jaunāko paaudžu konsoļu grafiku, taču tas lieliski tiks galā ar daudzām citām lietām. Tālāk, savukārt, tiks aplūkotas galvenās un populārākās Raspberry Pi 3 aplikācijas.

Raspberry Pi 3 multivides funkcijas

Raspberry Pi 3 multivides iespējas ir ļoti augstas. Jo īpaši, pamatojoties uz "Raspberry", jūs varat izveidot multivides centru, spēļu konsoli vai pat visu uzreiz. Rezultātā ar šo vienoto plati savā televizorā ar HDMI portu varat piekļūt šādām izklaides kategorijām:

  • augstas izšķirtspējas video pakalpojumā YouTube vai citās mitināšanas vietnēs;
  • mūzika straumēšanas pakalpojumos;
  • spēļu straumes, piemēram, Twitch;
  • spēles izstrādātas vecām konsolēm: NES, SNES, SEGA utt.

Lai skatītu un klausītos multivides saturu, varat izmantot pārlūkprogrammu vai, vēl ērtāk, instalēt īpašu multivides atskaņotāju. Funkcionālākais un ērtākais no tiem ir Kodi.

Lai Raspberry pārvērstu par spēļu konsoli, tajā jāievieto interesējošo platformu emulatori un jāpasūta spēle Roms. Tas tiek darīts pāris desmitu minūšu laikā. Un vēl vienkāršāk un ērtāk ir uzstādīt īpašu izplatīšanas komplektu, piemēram, Retro Pie vai kādu citu.

Dokumentu izstrāde un darbs ar RPi

Protams, Raspberry nav jaudīgākais dators, kas nozīmē, ka tas nav labākais risinājums darbam. Bet, ja vēlaties, varat vairāk vai mazāk ērti apskatīt / rediģēt dokumentu vai pat uzrakstīt uz tā skriptu. Protams, tas nedarbosies ar smagiem IDE, taču neviens to neprasa no RPi.

Tāpat ar RPi3 palīdzību var “sērfot” internetā vai tērzēt tūlītējos kurjeros vai sociālajos tīklos.

Serveris visām vajadzībām no Raspberry Pi 3

Vēl viena Raspberry Pi 3 izmantošanas iespēja ir izveidot no tā serveri. Tātad, pietiek ar to instalēt LAMP vai vienkārši Apache un Myphpadmin, pēc tam diezgan ierobežotu resursu apstākļos būs iespējams izstrādāt un pārbaudīt tīmekļa projektus.

Otrā iespēja ir lejupielādēt un izplatīt no Raspberry Pi 3 torrenta. Lai to izdarītu, protams, būs nepieciešams ārējais cietais disks, jo atmiņas kartes un zibatmiņas diski šiem nolūkiem nav īpaši piemēroti gan ātruma ierobežojumu un maza apjoma, gan strauja nodiluma dēļ lielas slodzes dēļ.

Raspberry pielietojums robotikā un IoT

IoT un robotikā RPi izmantošana ir gandrīz neierobežota. No šīs ierīces var izgatavot, piemēram, novērošanas kameru, nelielu meteoroloģisko staciju, tālvadības automašīnu un daudz ko citu. Tātad Raspberry Pi 3 atrod pielietojumu automašīnā DVR formātā. Ja vēlaties, no šī viena maksātāja var izgatavot pat mobilo tālruni vai viedtālruni. Bet to ir vērts darīt vai nu eksperimentēšanas nolūkos, vai arī, lai parādītos draugiem/kopienai. Fakts ir tāds, ka atbilstošā ierīce izrādīsies vismaz diezgan apgrūtinoša.

Protams, šiem nolūkiem būs nepieciešami moduļi. Bet ar to iegādi problēmām nevajadzētu rasties. Tīmeklī ir daudz veikalu, kas pārdod Raspberry papildu komponentus par pieņemamām cenām.

Vairāku RPi 3 grupēšana

Vēl viens veids, kā izmantot Raspberry Pi 3, ir apvienot vairākas no šīm ierīcēm. Tas ir diezgan specifisks tā izmantošanas veids, kas nav piemērots visiem.

Vispirms ir jāsniedz īss un saprotams skaidrojums par to, kas ir klasteris. Kopumā šis termins attiecas uz viendabīgu iekārtu kompleksu (šajā gadījumā RPi komplektu), kurā paralēli tiek veikts kāds uzdevums.

Nav praktiskas jēgas veidot klasteri no Raspberry, lai kaut ko īstenotu, jo ir lētāki un ērtāki risinājumi. Mācībām vislabāk ir Raspberry Pi 3 grupēšana. Ja jums ir vairāki vienkopēji, jūs varat saprast paralēlās skaitļošanas funkcijas vai parādīt bērnam, kā tās darbojas (patiesībā RPi tika izveidots bērnu mācīšanai).

Kā redzat, ar RPi 3 var paveikt daudz interesantu lietu. Tas galvenokārt ir noderīgs datoru apguvei. Bet tas arī ļauj īstenot ļoti lielu skaitu projektu, ko var izmantot darbam vai atpūtai.

Viens populārs Raspberry Pi datoru lietojums ir kopu veidošana. Aveņu pīrāgi ir mazi un lēti, tāpēc tos ir vieglāk izmantot, lai izveidotu kopu, nekā tas būtu ar personālajiem datoriem. Aveņu pīrāgu kopai vajadzētu būt diezgan lielai, lai konkurētu ar vienu datoru; jums, iespējams, ir nepieciešami aptuveni 20 Pīrāgi, lai izveidotu kopu ar tikpat lielu skaitļošanas jaudu kā personālajam datoram. Lai gan Pi klasteris var nebūt tik spēcīgs, tā ir lieliska iespēja uzzināt par izkliedēto skaitļošanu.

Ir vairāki dažādi izplatīto datoru veidi, kurus var izmantot dažādiem mērķiem. Ir superdatori, kurus izmanto matemātisko problēmu risināšanai, piemēram, laika apstākļu modelēšanai vai ķīmisko reakciju simulēšanai. Šīs sistēmas bieži izmanto ziņojumu pārraides saskarni (MPI). Sauthemptonas universitātes komanda izveidoja 64 mezglu MPI balstītu superdatoru. Šo sistēmu izmanto, lai mācītu studentus par superskaitļošanu.

Vēl viena tehnoloģija, ko bieži izmanto izkliedētajā skaitļošanā, ir Hadoop, kas izplata datus daudzos mezglos. Hadoop bieži izmanto lielu datu kopu apstrādei un datu ieguvei. Nvidia inženieris izveidoja nelielu Hadoop kopu, izmantojot Raspberry Pies. Viņš izmanto savu kopu, lai eksperimentējiet un pārbaudiet idejas, pirms tās izvietojat jaudīgākās sistēmās.

Raspberry Pi klastera izmantošana kā tīmekļa serveri

Klasterus var izmantot kā tīmekļa serverus. Daudzas tīmekļa vietnes saņem pārāk daudz trafika, lai tās darbotos vienā serverī, tāpēc ir jāizmanto vairāki serveri. Pieprasījumus no tīmekļa pārlūkprogrammām saņem mezgls, ko sauc par slodzes balansētāju, kas pārsūta pieprasījumus uz darbinieku serveriem. Pēc tam slodzes līdzsvarotājs pārsūta atbildes no serveriem atpakaļ klientiem.

Šī vietne tagad ir mitināta Raspberry Pi klasterī. Darbinieku mezgli ir standarta tīmekļa serveri, kas satur identisku saturu. Es tikko tajos instalēju Apache un kopēju savu vietni katrā mezglā.

Es izmantoju papildu Raspberry Pi, lai mitinātu šīs vietnes izstrādes kopiju un kontrolētu kopu. Šis Pi ir savienots ar manu vietējo tīklu, izmantojot wifi, tāpēc es varu piekļūt savas vietnes izstrādes kopijai no sava klēpjdatora.

Papildu Pi ir arī Ethernet savienojums ar Pi kopu. Kad vēlos atjaunināt savu vietni, varu pārsūtīt izmaiņas no izstrādes vietnes uz klastera tiešo vietni. Vietnes atjauninājumi tiek ievietoti .tar.gz failos, kurus darbinieka mezgli automātiski lejupielādē no izstrādes vietnes. Pēc lejupielādes atjauninājumi tiek izsaiņoti vietējā failu sistēmā.

Raspberry Pi serveru konfigurēšana

Visi šīs sistēmas pīrāgi ir bez galvas. Es varu pieteikties Pi, izmantojot izstrādes vietni, izmantojot attālās darbvirsmas protokolu, un no šī Pi varu pieteikties darbinieka Pies, izmantojot SSH.

Visi klastera pīrāgi izmanto statisku IP adresi. Lielākā klasterī, iespējams, labāk būtu iestatīt DHCP serveri slodzes balansētājā. Klasterī izmantotās IP adreses atrodas apakštīklā 192.168.1.xxx.

Katram Pi darbiniekam es iestatīju 4 GB SD karti, izmantojot jaunāko Raspbian versiju. Raspi-config es iestatīju šādas opcijas:

  • paplašināt fs
  • iestatiet saimniekdatora nosaukumu
  • iestatīt paroli
  • iestatiet GPU atmiņas sadalījumu uz 16 MB
  • pārspīlēt centrālo procesoru līdz 800 MHz
  • iespējot ssh

Katrā kartē es instalēju Apache un dažas bibliotēkas, kas nepieciešamas manai CMS, libxml2 un python-libxml2. Es izmantoju šo komandu, lai iespējotu mod pārrakstīšanu, kas nepieciešama arī manai CMS:

$ sudo a2enmod pārrakstīt

Visbeidzot, es nokopēju dažus skriptus katrā SD kartē, kas ļauj katram Pi sinhronizēt tā saturu ar izstrādes Pi. Lielākā klasterī būtu vērts izveidot SD kartes attēlu ar visām šīm modifikācijām iepriekš.

Slodzes balansētāja izveide

Slodzes līdzsvarotājam ir jābūt divām tīkla saskarnēm, vienai, lai saņemtu pieprasījumus no maršrutētāja, un otrai tīkla saskarnei, lai pārsūtītu pieprasījumus uz servera kopu. Klastera mezgli atrodas citā apakštīklā nekā pārējais tīkls, tāpēc slodzes balansētāja otrā interfeisa IP adresei ir jāatrodas tajā pašā apakštīklā, kurā atrodas pārējā klastera daļa. Slodzes līdzsvarotāja pirmais interfeiss ir IP adrese 192.168.0.3, savukārt otrā interfeisa IP adrese ir 192.168.1.1. Visiem klastera Pies ir IP adreses apakštīklā 192.168.1.xxx.

Es izveidoju savu slodzes balansētāju, izmantojot vecu datoru ar 512 MB RAM un 2,7 GHz x86 centrālo procesoru. Es pievienoju otru PCI Ethernet karti un instalēju Lubuntu, vieglu Ubuntu versiju. Es gatavojos instalēt Ubuntu, bet šis dators ir diezgan vecs, tāpēc Lubuntu, iespējams, ir labāka izvēle. Es izmantoju datoru, jo nebiju pārliecināts, vai viens Pi būtu pietiekami jaudīgs, lai darbotos kā slodzes balansētājs, un Pi ir tikai viens Ethernet savienojums. Es vēlos, lai abi mana slodzes balansētāja tīkla savienojumi būtu Ethernet, lai uzlabotu veiktspēju un stabilitāte.

Ņemiet vērā, ka IP pārsūtīšana nav iespējota. Slodzes līdzsvarotājs nav maršrutētājs, tam vajadzētu pārsūtīt tikai HTTP pieprasījumus, nevis katru saņemto IP paketi.

Slodzes balansētāja programmatūras iestatīšana

Ir daudz dažādu slodzes līdzsvarošanas programmatūras ieviešanu. Es izmantoju Apache slodzes līdzsvara moduli, jo to ir viegli iestatīt. Vispirms es pārliecinājos, ka mana datora operētājsistēma ir atjaunināta:

sudo apt-get atjauninājums
sudo apt-get jauninājums

Tad es instalēju Apache:

sudo apt-get install apache2

Šiem Apache moduļiem ir jābūt iespējotiem:

sudo a2enmod starpniekserveris
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

Nākamais solis ir rediģēt /etc/apache2/sites-available/default, lai konfigurētu slodzes balansētāju. Starpniekservera modulis ir nepieciešams HTTP pārsūtīšanai, taču vislabāk ir neļaut savam serverim darboties kā starpniekserverim. Surogātpasta izplatītāji un hakeri bieži izmanto citu personu starpniekserverus, lai slēptu savu IP adresi, tāpēc ir svarīgi atspējot šo funkciju, pievienojot šo rindiņu:

Starpniekservera pieprasījumi izslēgti

Lai gan starpniekservera pieprasījumi ir atspējoti, starpniekservera modulis joprojām ir iespējots un darbojas kā apgrieztais starpniekserveris. Pēc tam definējiet klasteru un tā dalībniekus, pievienojot šo kodu:

Balansētāja pārvaldnieka saskarne

Balansēšanas modulim ir tīmekļa saskarne, kas ļauj pārraudzīt aizmugures serveru statusu un konfigurēt to iestatījumus. Varat iespējot tīmekļa saskarni, pievienojot šo kodu /etc/apache2/sites-available/default:

Ir arī nepieciešams norādīt Apache lokāli apstrādāt pieprasījumus lapai /balancer-manager, nevis pārsūtīt šos pieprasījumus uz darbinieka serveri. Visi pārējie pieprasījumi tiek pārsūtīti uz iepriekš definēto kopu.

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

Kad šīs izmaiņas ir saglabātas, Apache jārestartē ar šo komandu:

$ sudo /etc/init.d/apache2 restart

kad atveru pārlūkprogrammu un dodos uz http://192.168.0.3, es redzu savas tīmekļa vietnes sākumlapu. Ja es dodos uz http://192.168.0.3/balancer-manager, es redzu šo lapu attēlā labajā pusē.

Pēdējais solis, lai klasteru izveidotu tiešsaistē, ir portu pāradresācijas iestatījumu pielāgošana manā maršrutētājā. Man vienkārši vajadzēja iestatīt kārtulu HTTP pakešu pārsūtīšanai uz http://192.168.0.3.

Šeit ir pilns /etc/apache2/sites-available/default slodzes līdzsvarotājam:

Servera administrators [aizsargāts ar e-pastu] DocumentRoot /var/www Opcijas FollowSymLinks AllowOverride All Opcijas Indeksi FollowSymLinks MultiViews AllowOverride All Pasūtīt atļaut, liegt atļauju no visiem ScriptAlias/cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .py Pasūtīt atļaut, aizliegt Atļaut no visiem Starpniekservera pieprasījums izslēgts 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 Nav Pasūtiet atļauju,Set atļauju lbmethod=byrequests SetHandler balansētājs-pārvaldnieks Pasūtot atļaut, liegt atļauju no 192.168.0 ProxyPass /balancer-manager! ProxyPass / balancer://rpicluster/ ErrorLog $(APACHE_LOG_DIR)/error.log # Iespējamās vērtības ir: atkļūdošana, info, paziņojums, brīdinājums, kļūda, crit, # alert, emerg. LogLevel brīdinājums CustomLog $(APACHE_LOG_DIR)/access.log apvienots

- miniatūrs dators, nedaudz lielāks par zibatmiņas disku, ar milzīgu skaitu iespēju. Datoru var izmantot arī paredzētajam mērķim – pieslēdz peli, klaviatūru, monitoru un strādā kā ar parastu datoru. Taču Raspberry iespējas ir daudz plašākas – un šīs iespējas izmanto sīkrīku un tehnoloģiju cienītāji. Šodienas pārskatā - 5 interesantākie projekti, kuru pamatā ir Raspberry Pi.

Planšetdators

Jā, ja jums nav planšetdatora, ir pienācis laiks to izdarīt pats. Raspberry Pi un detalizēti norādījumi mums palīdzēs šajā jautājumā (lai gan angļu valodā). Šīs planšetdatora diagonāle ir 10 collas. Konfigurācija atkārto Raspberry Pi konfigurāciju.

Superdators

Pats par sevi minidators nav īpaši produktīvs. Bet, ja jūs apvienojat vairākus desmitus aveņu vienā klasterī, jūs varat iegūt ļoti jaudīgu sistēmu ar ievērojamiem skaitļošanas resursiem.

Ne tik sen no 64 Raspberry Pi tika izveidots īsts superdators. Tā kā futrāļi šādām ierīcēm netiek pārdoti, tika nolemts maciņu izgatavot pašu spēkiem, no lego klucīšiem.

Kā kaut ko tādu izdarīt pašam? Šeit ir detalizēta instrukcija no šīs izstrādes autora.

skype tālrunis

Regulāri komunicējot caur Skype, standarta saziņas metodes (mikrofons, dators) varētu apnikt, tāpat kā nākamā projekta radītājam tās bija apnikušas. Lai sarunas Skype padarītu interesantākas, izstrādātājs rotējošā telefona korpusā ievietoja pašu Raspberry, pieslēdza Tīklu un izveidoja speciālu programmatūru, kas ļauj pārtulkot telefona diska ritinājumu skaitu rakstzīmēs.

Rezultāts ir interesanta Skype stacija. Sistēma no parastā rotējošā telefona atšķiras tikai ar to, ka aizmugurē ir savienoti divi vadi, nevis viens.

Kamera

Uz "aveņu" bāzes jūs varat izgatavot jaudīgu kameru ar produktīvu pildījumu. Tajā pašā laikā ir nepieciešamas tikai gaismas diodes, nedaudz optikas un 3D printeris, lai izdrukātu ierīces korpusu. Protams, nevajadzētu aizmirst arī par pašu Raspberry minidatoru – tieši viņš nodrošina kameras darbību.

Šādu sistēmu var izgatavot arī pats, lai gan tas nav tik vienkārši izdarāms.

Brīva/aizņemta sistēma biroja tualetei

Biroja darbinieki dažkārt zaudē dārgo laiku, ejot uz tualeti un redzot, ka vieta jau ir aizņemta. Nepatīkami, plus dārgais darba laiks tiek izniekots. Lai izvairītos no šādiem gadījumiem, varat izveidot brīdinājuma sistēmu, kas pārraidīs biroja tualetes statusu (brīvs vai aizņemts) uz visu darbinieku datoriem.

Lai noteiktu, vai iekšā ir vai nav cilvēks, sistēma izmanto šādu algoritmu:

1. Attēls tiek uzņemts caur Streamer aplikāciju;
2. Tiek analizēts pikseļu spilgtums noteiktā vietā, algoritms darbojas uz PHP-GD bāzes;
3. Ja spilgtums atšķiras no atsauces, sistēma dod signālu;
4. Lietotājs saņem aizņemtas ziņas.

Ievads

Pamatizmaksas skaitļošanas jomā ir datoru jauda un to enerģijas patēriņš. Mūsdienu superdatori aizņem milzīgu vietu un patērē simtiem tūkstošu vatu.

Liela problēma šajā gadījumā ir paralēlās programmēšanas mācīšanas process un aprēķinu veikšana superdatoros, un vēl jo vairāk - šāda veida datoru pārvaldīšana, jo parasti studentiem nav tiešas piekļuves tiem.

Šajā rakstā ir piedāvāts šo problēmu atrisināt, izmantojot vienplates mikrodatorus, kas nesen parādījās datortehnikas tirgū (Paspberry Pi un analogi). Pamatojoties uz tiem, jūs varat salikt lētu skaitļošanas klasteri un iemācīt studentiem paralēlās programmēšanas pamatus. Tādējādi šī darba mērķis ir izveidot lētu izglītojošu mikrodatoru klasteru paralēlās programmēšanas algoritmu izstrādei un ieviešanai izglītības procesā. Parādīts paralēlās skaitļošanas piemērs izstrādātajā apmācību klasterī.

Raspberry Pi ir mikrodators, ko izstrādājis Raspberry Pi fonds. Mazs, bankas kartes izmērā, tas ir pilnvērtīgs vienas borta dators (Sistēma- ieslēgts- a- mikroshēma). Procesors (PI 3 modelī): 4 kodoli ARM Cortex-A53x64. Noklusējuma operētājsistēma ir Raspberian (pamatojoties uz Linux kodolu). Par cenu tikai 35 USD, tāfelei ir visas nepieciešamās saskarnes ( Wi- fi, Bluetooth, USB, Ethernet), kā arī liels gatavu programmu komplekts jebkura veida aktivitātēm. Tāpēc šie mikrodatori tika izvēlēti nelielam izglītības skaitļošanas klasterim.

Klastera jēdziens un klasteru skaitļošana

Ir labi zināms, ka klasteris ir datoru grupa, kas savienota ar ātrdarbīgiem sakaru kanāliem, kas no lietotāja viedokļa pārstāv vienu aparatūras resursu. No otras puses, klasteris ir brīvi savienota vairāku skaitļošanas sistēmu kolekcija, kas darbojas kopā, lai izpildītu kopīgas programmatūras lietojumprogrammas. Lai vairākus aveņu PI savienotu klasterī, tika samontēta tipiska klasteru skaitļošanas sistēma (maršrutētājs, Ethernet kabeļi, USB utt.), pamatojoties uz PI 3 procesoru (1. att.).

1. attēls. Uz procesoru balstīta klasteru skaitļošanas sistēma no diviem PI 3

Paralēlās skaitļošanas demonstrēšana

Divu PI 3 klastera iespēju vizuālai demonstrēšanai tika izvēlēta Python 2 programmēšanas vide un masīvu šķirošanas algoritma realizācija ar sapludināšanas metodi. Datori bija savienoti ar lokālo tīklu. Lai vienkāršotu vairāku R PI klasterizāciju, ir daudz gatavu programmu, no kurām viena tiek saukta par “mpi4py”.

Sapludināšanas kārtošanas masīva kods Python izskatās šādi:

def sapludināšana (pa kreisi, pa labi): #sapludina kopā 2 sakārtotus sarakstus

#Iziet cauri abiem sarakstiem

kamēr es< len(left)and j < len(right):

#Galīgajam sarakstam pievieno mazāku sarakstu elementu

ja atstātu [i]<= right[j]:

result.append(left[i])

result.append(labais[j])

rezultāts += palicis

rezultāts += pareizi

mergesort(lst):

#ja ir tikai 1 elements, nav jākārto

if len(lst)< 2:

#sadala sarakstu 2 daļās

vidus = len(lst)/ 2

#rekursīvi sadala un šķiro katru pusi

pa kreisi = mergesort(lst[:middle])

pa labi = mergesort(lst)

#apvieno abus sakārtotos sarakstus

atgriezt sapludināšanu (pa kreisi, pa labi)

Programmas algoritms sastāv no šādas darbību secības:

1. PI 3 (serverī) tiek ģenerēts nejaušs skaitļu masīvs.

2. Šis masīvs ir sadalīts n daļās, atbilstoši procesoru skaitam lokālajā tīklā.

3. Izmantojot ligzdas moduli un lokālo tīklu, Pi3 (serveris) pārraida daļu no Pi3 masīva (klienta).

4. Pi3 (serveris) sakārto savu masīva daļu un gaida, kamēr Pi3 (klients) atbildēs.

5. Pi3 (klients) sakārto savu masīva daļu un nosūta uz Pi3 (serveri).

6. Pi3 (serveris) saņem sakārtoto masīva daļu un veic galīgo kārtošanu.

Aprēķini parādīja, ka vienam Pi3 vajadzēja apmēram 23 sekundes, lai sakārtotu 500 tūkstošu elementu masīvu. Pēc otrā Pi3 pievienošanas šis laiks tika samazināts līdz 16 sekundēm. Ātruma pieaugums ir nelineārs, taču, jo vairāk datoru ir klasterī, jo mazāk laika tiks pavadīts.

Secinājums

Viena borta datori tikai nesen ir izgājuši ārpus rūpnīcu automatizācijas segmenta un sākuši iekarot masu tirgu. To mazais izmērs, mazais enerģijas patēriņš un pietiekami augstās skaitļošanas iespējas var padarīt tās par pamatu dažādu projektu īstenošanai, piemēram, paralēlās programmēšanas mācīšanai. Piedāvātās klasteru skaitļošanas sistēmas iezīme, kuras pamatā ir Raspberry PI 3, ir laba mērogojamība, ko nosaka komutācijas aprīkojuma iespējas, zemas izmaksas, iespēja izmantot bezmaksas programmatūru, kas ir svarīga, ieviešot to izglītības procesā. Veiktais demonstrācijas darbs parāda, ka pat divu PI 3 klasteris spēj paātrināt vienkārša, bet tajā pašā laikā apjomīga uzdevuma, piemēram, liela datu masīva sakārtošanu, aprēķinu.

Nākotnē plānots palielināt mikrodatoru skaitu skaitļošanas sistēmā un salīdzināt kriptogrāfijas algoritmu veiktspēju, jo īpaši tos, kurus plānots izmantot liela apjoma attēlu (foto, gaisa, kosmosa attēlu) šifrēšanai/atšifrēšanai un pārsūtīt tos internetā.

Saraksts literatūra:

  1. Roberts Mulins/ Distributed computed //Kembridžas Universitāte. – 2012. – http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/distributed-computing / .
  2. Klasteris. - Piekļuves režīms. – URL: https://ru.wikipedia.org/wiki/Cluster (skatīts 25.02.2017.).
  3. Lūkins V.V., Marčevskis I.K. Izglītojošs un eksperimentāls skaitļošanas klasteris. 1. daļa. Rīki un iespējas. - Piekļuves režīms. – URL: https://elibrary.ru/download/elibrary_17091004_33209664.pdf (aplūkots 25.02.2017.).

Šodienas viesa ziņojumā Brūss Tullohs, BitScope Designs izpilddirektors un rīkotājdirektors, apspriež klasteru skaitļošanas lietojumus ar Raspberry Pi un neseno Los Alamos Nacionālās laboratorijas 3000-Pi klastera izmēģinājuma versiju, kas veidota ar BitScope Blade.

Augstas veiktspējas skaitļošana un Raspberry Pi parasti netiek izrunātas vienā elpas vilcienā, taču Los Alamos Nacionālā laboratorija pilota kārtā būvē Raspberry Pi kopu ar 3000 kodoliem, pirms nākamgad palielinās līdz 40 000 vai vairāk kodolu.

Tas ir pārsteidzoši, bet kāpēc?

Tradicionālās Raspberry Pi kopas

Tāpat kā lielākajai daļai cilvēku, mēs mīlam labu kopu! Cilvēki tos ir veidojuši, izmantojot Raspberry Pi kopš paša sākuma, jo tas ir lēti, izglītojoši un jautri. Tie ir veidoti ar oriģinālajiem Pi, Pi 2, Pi 3 un pat Pi Zero, taču neviena no šīm kopām nav izrādījusies īpaši praktiska.

Tomēr tas netraucē viņiem būt noderīgiem! Pagājušajā nedēļā konferencē redzēju diezgan daudz Raspberry Pi kopu.

Viens sīkums, kas man pievērsa uzmanību, bija no openio.io cilvēkiem, kuri izmantoja nelielu Raspberry Pi Zero W klasteru, lai demonstrētu savu mērogojamu programmatūras definētu objektu uzglabāšanas platformu, kas lielās iekārtās tiek izmantota, lai pārvaldītu datu petabaitus, bet kas ir tik viegls, ka lieliski darbojas ar šo:

ARM stendā bija vēl viens pievilcīgs piemērs, kur tika demonstrēta Berkeley Labs singularitātes konteineru platforma, kas ļoti efektīvi darbojas nelielā klasterī, kas uzbūvēts ar Raspberry Pi 3.

Mana izrāde bija mīļākā no Edinburgas Paralēlās skaitļošanas centra (EPCC): Niks Brauns izmantoja Pi 3 kopu, lai izskaidrotu bērniem superdatorus ar saistošu interaktīvu lietojumprogrammu. Ideja bija tāda, ka stenda apmeklētāji izstrādā lidmašīnas spārnu, simulē to pāri klasterim un nosaka, vai lidmašīna, kas izmanto jauno spārnu, varētu lidot no Edinburgas uz Ņujorku ar pilnu degvielas tvertni. Manējais izdevās, par laimi!

Nākamās paaudzes Raspberry Pi kopas

Mēs jau kādu laiku esam veidojuši neliela mēroga rūpnieciski izturīgus Raspberry Pi klasterus, izmantojot BitScope Blade.

Kad Los Alamos Nacionālā laboratorija vērsās pie mums ar HPC nodrošinātāja SICORP starpniecību ar lūgumu izveidot klasteru, kas sastāvētu no daudziem tūkstošiem mezglu, mēs ļoti rūpīgi izskatījām visas iespējas. Tam bija jābūt blīvam, uzticamam, mazjaudas un viegli konfigurējamam un uzbūvējamam. Tam nebija “jāveic zinātne”, taču tai bija jādarbojas gandrīz visos citos veidos, kā to darītu pilna mēroga HPC klasteris.

Es arī izlasīšu un atbildēšu uz jūsu domām komentāros zem šī ieraksta.

Redaktora piezīme:

Šeit ir fotoattēls, kurā Brūss valkā lidmašīnas maisu. Forši, vai ne?!


16 komentāri

    Jums, puiši, jāsāk veidot datora “montāžas komplekts”. Bērnībā es Ziemassvētkos saņēmu erektora komplektu, kad man bija 7-8 gadi. Es uztaisīju visu, ko vien varēja iedomāties. Vēlāk es kļuvu par mehāniķi. Es izstrādāju daļas GE gāzes turbīnām, un, ieslēdzot apgaismojumu, man ir tiešs savienojums ar RPis barošanu visā pasaulē.

    Šobrīd jums ir lielākā daļa pamata daļu. Jums ir nepieciešams autobuss, kaut kas līdzīgs CM DDR3 kopnei. Ja RPi 3B vai ikreiz, kad iznāk RPi 4, tam būtu adapteris vai kontaktdakšas, kas savienotas ar šo kopni, klasteru veidošana būtu vienkārša. Es varētu iedomāties četrus četru procesoru CM, grafikas procesoru/Bitcoin kalnraču uz CM, CM ar SSD utt. Datora montāžas komplekts…

    • Kas ir nepareizi, izmantojot slēdzi un Ethernet audumu kā "kopni" esošajā aparatūrā?

    Vai ir pieejama īsa video prezentācija, kurā tiek apspriests Los Alamos Pi klasteris, kā tas tika uzbūvēts, kam tas tiks izmantots un kāpēc šis risinājums tika izvēlēts pār citiem?

    Turklāt, ņemot vērā interesi par OctoPi un citiem Pi klasteriem, vai Raspberry Pi forumā varētu būt sadaļa, kas veltīta paralēlai apstrādei?

    • Tā ir laba ideja. Es domāju, ka ir īstais laiks.

    Vai ir pieejama airwing demonstrācija?

    • EPCC Raspberry Pi kopu sauc Wee Archie (), un tas (tāpat kā mūsu uzbūvētais Los Alamos) ir “modelis”, lai gan tas ir paredzēts nedaudz citam mērķim. Viņu gadījumā tas pārstāv Archer (http://www.archer.ac.uk/) pasaules klases superdatoru, kas atrodas un darbojas Apvienotajā Karalistē, Nacionālais superskaitļošanas dienests. Niks Brauns (https://www.epcc.ed.ac.uk/about/staff/dr-nick-brown) ir puisis aiz demonstrācijas, ko redzēju vietnē SC17. Pasūtiet viņam rindiņu!

    Esmu priecīgs, ka tagad pametu viņu augstas veiktspējas skaitļošanas nodaļu. Tas ir neprāts. Fortran kods, kas ir tik izplatīts laboratorijās, nedarbosies tāpat kā ARM arhitektūrā, kad superdatori, kuros kods tiks darbināts, tiks izmantoti Intel arhitektūras iekārtās. Šis projekts nodrošinās praktikantiem spēles laukumu, lai uzzinātu to, kas viņiem būtu jāiemācās koledžā.

    • Viena no neizskatītajām problēmām ar eksamēroga skaitļošanu ir tāda, ka ir neefektīvi pārbaudīt aprēķinu, kas darbojas ar tik daudziem kodoliem tik daudzos lodziņos. Tajā pašā laikā iespējamība, ka visi mezgli aprēķina laikā darbosies nevainojami, samazinās eksponenciāli, pievienojot vairāk mezglu.

      Efektīva sadalītās atmiņas paralēlo sistēmu izmantošana ir salīdzināta ar cāļu ganīšanu. Ja domājat par tik lieliem ganāmpulkiem, ka to barošanai ir nepieciešami megavati, labāk ir praktizēt prusaku ganīšanu. Šeit nav runa par Fortran kodu veiktspējas regulēšanu, bet par to, kā pārvaldīt aparatūras kļūdas masveidā izplatītos paralēlos aprēķinos. Kā minēts paziņojumā presei, mēs pat nezinām, kā palaist eksamēroga mašīnu: līdz pēdējā mezgla sāknēšanas brīdim vairāki citi mezgli jau ir avarējuši. Manuprāt, ir iespējams modelēt šīs eksamēroga grūtības ar lielu Raspberry Pi datoru kopu. Piemēram, 1 GB RAM izmešana, izmantojot Pi 100 Mbit tīklu, ir līdzīga datu un joslas platuma attiecībai kā 1 TB RAM izmešana, izmantojot 100 Gbit starpsavienojumu.

      • Atklājiet Ēriku. Problēma ir saistīta ar mērogu, palaišanu, mašīnu darbināšanu, datu ievadīšanu un izņemšanu, kā arī kontrolrādīšanu, lai izvairītos no liela apjoma skaitļošanas darba zaudēšanas.

        Dažas interesantas lietas, ko es uzzināju no šī projekta…

        Parasti kļūdu biežumu 10^-18 uzskata par diezgan labu, taču šādā mērogā ar tiem var saskarties viena šāviena laikā ar lielu mašīnu. Eksāmenā tas būs sliktāk. Vārds, ko HPC kopiena izmanto šim nolūkam, ir “noturība”; iekārtām ir jāspēj veikt zinātni uzticamā un pārbaudāmā veidā, neskatoties uz šīm "reālās pasaules" problēmām, kas iejaucas pamatā esošā klastera darbībā.

        Viņi veic daudz “sinhronās zinātnes” masveida mērogā, tāpēc kontrolpunktu nepieciešamība ir neizbēgama, un Los Alamos atrodas diezgan lielā augstumā (apmēram 7300 pēdas), tāpēc mašīnas ir pakļautas augstākam kosmiskā starojuma līmenim. Tas nozīmē, ka tie saskaras ar augstāku "analogo kļūdu" līmeni, kas var izraisīt aprēķinu kļūdas un nejaušas mezglu avārijas.

        Visas šīs problēmas var modelēt, pārbaudīt un izprast, izmantojot Raspberry Pi Cluster ar daudz zemākām izmaksām un mazāku jaudu nekā lielajās mašīnās. Saknes piekļuve 40 000 kodolu klasterim ilgāku laiku ir kā sapņa piepildījums puišiem, kuru uzdevums ir atrisināt šīs problēmas.

    Es izveidoju 120 Raspberry Pi kopas 3D skenēšanai. Izmantojiet tīru UDP multiraidi, lai tos visus kontrolētu, izmantojot vienu tīkla pakešu pārraidi. Strādā tiešām labi :-)

    Tas ir ļoti līdzīgs tam, ko mēs vēlamies ar jaunu pamatprojektu. Bet tā vietā, lai fiziski tuvu atrodas klasteris, mēs domājam par “kolektīvu” (tāds kā Borgs, bet pēc tam jauki…), lai veiktu Three.js GPU 3D renderēšanu. Man ir prototips, kas darbojas vietnē If you Bing vai Google on sustasphere, jūs atradīsit atbilstošo GitHub (tomēr tas nav pilnībā atjaunināts). Pašreizējais prototips tiek renderēts (acīmredzot) jūsu pārlūkprogrammā. Izmantojot kolektīvu, jūsu pārlūkprogrammas zvani tiks novirzīti uz (cerams) tūkstošiem Raspberry's; katrs kraukšķīgs reāllaikā daļa no 3D renderēšanas. "Manā galvā" es domāju par Open Suze, kas ir stacked ar Express.js.

    Par katra mezgla energoapgādi mēs pateicamies vējam un arhemediskajai skrūvei, ar hidraulisko galvu, ar vienkāršu velosipēda dinamo…

    Jauki, bet kāpēc? Mēs vēlētos pagodināt pagātnes atbalsi (The Port Huron Statement); ieviest virtuālu cieņas sfēru. Dot cilvēkiem iespēju izteikt savas emocijas; atkal definējot cieņas nozīmi. Iedomājieties, ka Mocarts izpilda savu Nozze di Figaro (man ideāls piemērs mākslas nešanai tautā un domu apmaiņai par morāli); un iespēja būt tur, pārvietoties, "skaitīt nāsis" un varbūt pat "fiziski iegūt".

    Jā, jums būs nepieciešams kāds GPU kolektīvs.

    Pamatojoties uz savu pieredzi, vai jūs varētu mums sniegt padomu par turpmāko ceļu? Palīdzēt pieņemt saprātīgus lēmumus?

    > nesenais Losalamos Nacionālās laboratorijas 3000-Pi klastera izmēģinājums

    Tam vajadzētu nolasīt 750 Pi kopu, 5 asmeņus pa 150 pis katrā, ar 3000 kodoliem kopā (4 kodoli katrā CPU).

    Labi, es esmu nuby par raspberry pi 3. Bet man bija jautājums, vai viņi izmanto LFS ar bitskopa asmeņu kopu? …un ja jā, kā tas darbojās?

    • Ne LFS, bet arī ne Raspbian (izņemot sākotnējo testēšanu). Viņi galu galā publicēs vairāk, lai izskaidrotu, ko viņi dara, taču pietiek pateikt, ka tā ir ļoti vienkārša programmatūras kopa, kuras mērķis ir atvieglot lielu klasteru darbības simulāciju šajā “mazajā”.

    Kāpēc ir “svarīgi izvairīties no Micro SD karšu lietošanas”?

    Man ir prātā lietojumprogramma pi klasterim, kurai man būs nepieciešama vietējā krātuve. Ja es nevaru izmantot MicroSD karti, ko tad darīt?

    • Palaižot 750 mezglu kopu (kā to dara Los Alamos), attēlu pārvaldība un atjaunināšana visās 750 SD kartēs ir murgs.

      Ja jūsu kopa ir mazāka, tā var nebūt problēma (patiesi, mēs bieži vien to darām maziem 20 vai 40 mezgliem paredzētiem Blade Rack).

      Tomēr cita problēma ir izturība.

      SD kartēm ir tendence nolietoties (cik ātri tas ir atkarīgs no tā, kā tās lietojat). PXE (net) sāknēšanas mezgli nenolietojas. Vietējā krātuve var arī nebūt nepieciešama (ja izmantojat NFS vai NBD failu sistēmu, izmantojot LAN), taču joslas platums, lai piekļūtu (attālajai) krātuvei, var būt problēma (ja tie visi mezgli vienlaikus pāriet uz LAN atkarībā no jūsu tīkla struktūra un/vai NFS/NBD servera joslas platums).

      Otra iespēja ir USB atmiņas kartes (pievienotas Raspberry Pi USB portiem). Tās (parasti) ir ātrākas un (var būt) uzticamākas par SD kartēm, un jūs varat arī palaist no tām!

      Tomēr nav nekādu problēmu ar SD kartēm, kuras tiek izmantotas to ierobežojumu ietvaros Raspberry Pi klasteros.