internetul Windows. Android

Sisteme de cluster în calcule științifice. Sisteme de cluster

Tehnologiile de cluster au fost mult timp disponibile organizațiilor obișnuite. Acest lucru a devenit posibil datorită utilizării serverelor Intel ieftine, instrumentelor standard pentru comunicații și OS răspândit în clusterele de nivel inițial. Soluțiile de cluster pe platformele Microsoft sunt orientate în primul rând pe lupta împotriva erorilor operatorului, a eșecurilor echipamentului. Cluster Solutions - un mijloc eficient de rezolvare a acestor probleme.

După cum se dezvoltă tehnologia informației, gradul de integrare a acesteia în procesele de afaceri ale întreprinderilor și activitățile organizațiilor au crescut dramatic. A existat o problemă de creștere accentuată în timp în care sunt disponibile resurse de calcul și devine din ce în ce mai relevant. Fiabilitatea serverelor devine unul dintre factorii cheie ai activității de succes a companiilor cu dezvoltate infrastructura reteleiAcest lucru este deosebit de important pentru întreprinderile mari în care sistemele speciale sprijină procesele de producție în timp real, pentru băncile cu o rețea extinsă de sucursale sau centre de servicii de telefonie telefonică care utilizează un sistem de susținere a deciziilor. Toate aceste întreprinderi necesită servere care funcționează continuu și oferă informații zilnice 24 de ore fără întreruperi.

Costul echipamentului inactiv pentru întreprindere este în continuă creștere, deoarece constă în valoarea informațiilor pierdute, profiturile pierdute, costul suportului și restaurării tehnice, nemulțumirea clientului etc. Cum se creează un sistem fiabil și cât de mult costuri de rezolvare această problemă? Există o serie de tehnici care vă permit să calculați costul unui minut de nefuncționare pentru această întreprindere și apoi pe baza acestui calcul puteți alege cea mai acceptabilă soluție cu cel mai bun raport preț și funcționalitate.

Există multe opțiuni și mijloace pentru a construi un sistem fiabil al sistemului de calcul. Rețeaua de discuri RAID, surse de alimentare de rezervă, de exemplu, o parte a echipamentului de sistem în cazul eșecului altor componente similare ale sistemului și vă permite să nu întrerupeți prelucrarea cererilor la informații atunci când refuzul. Sursele de alimentare neîntreruptibile vor sprijini performanța sistemului în caz de defecțiuni din rețeaua de alimentare cu energie electrică. Panourile de sistem multiprocesor vor asigura funcționarea serverului în cazul unei defecțiuni a unui procesor. Cu toate acestea, niciuna dintre aceste opțiuni nu economisește dacă întregul sistem de calcul va ieși din întregul sistem de calcul. Clusterizarea vine la salvare.

Din punct de vedere istoric, primul pas spre crearea de clustere este considerat larg răspândit în timpul rezervei "fierbinte". Una sau două astfel de sisteme incluse în rețea de la mai multe servere nu efectuează nici o lucrare utilă, dar sunt gata să înceapă funcționarea, de îndată ce oricare dintre sistemele principale nu reușește. Astfel, serverele se duplică reciproc în cazul eșecului sau ruperii unuia dintre ele. Dar aș dori să combinăm mai multe computere, nu au duplicat doar unii pe alții, ci și-au efectuat o altă lucrare utilă, distribuind sarcina între ei. Pentru astfel de sisteme, în multe cazuri, clusterele sunt potrivite mai bine.

Inițial, clusterele au fost utilizate numai pentru baze de date distribuite și suport puternice, în special în cazul în care este necesară o fiabilitate crescută. În viitor, au început să se aplice pentru serviciul Web. Cu toate acestea, scăderea prețurilor pentru clustere a condus la faptul că astfel de soluții sunt utilizate din ce în ce mai mult pentru alte nevoi. Tehnologiile de cluster au devenit în cele din urmă disponibile pentru organizațiile obișnuite - în special datorită utilizării serverelor Intel Low cost, instrumentelor standard pentru comunicații și sisteme comune de operare (OS) în clusterele de nivel inițial.

Soluțiile de cluster pe platformele Microsoft sunt orientate în primul rând în principal pentru a combate echipamentele și eșecurile software (software). Statisticile Bounce Astfel de sisteme sunt bine cunoscute: doar 22% dintre acestea sunt cauzate direct de eșecurile echipamentului, OS, sursa de alimentare etc. Pentru a exclude aceste factori, se aplică diverse tehnologii pentru sporirea failovelor de servere (discuri redundante și înlocuibile, sursa de alimentare, plăci din conectorii PCI etc.). Cu toate acestea, 78% din incidentele rămase sunt de obicei cauzate de erorile de aplicare și de erorile operatorului. Cluster Solutions - un mijloc eficient de rezolvare a acestei probleme.

Clusterele vă permit să construiți o arhitectură unică care are o performanță suficientă, rezistență la eșecurile și software-ul echipamentului. Un astfel de sistem este ușor de scalat și modernizat prin mijloace universale, pe baza componentelor standard și pentru un preț rezonabil, ceea ce este semnificativ mai mic decât prețul unui computer unic de toleranță la defecțiuni sau un sistem cu paralelismul de masă).

Termenul "cluster" înseamnă atât toleranța la defecțiuni, cât și scalabilitatea și manipularea. Puteți da o definiție clasică a clusterului: "Clusterul este un sistem paralel sau distribuit constând din mai multe computere legate între ele și, în același timp, utilizate ca o resursă unificată, unificată a computerului." Clusterul este o combinație de mai multe computere, care la un anumit nivel de abstractizare sunt controlate și utilizate ca un singur întreg. Pe fiecare nod al clusterului (nodul este, de obicei, un computer inclus în cluster) este o copie proprie a sistemului de operare. Amintiți-vă că având sistemele cu arhitectură SMP și NUTA o copie comunănu pot fi considerate clustere. Nodul de cluster poate fi atât calculator cu un singur procesor, cât și computerul multiprocesor, iar într-un cluster, computerele pot avea o configurație diferită (un număr diferit de procesoare, diferite volume de memorie RAM și discuri). Nodurile de cluster sunt conectate între ele sau utilizând conexiuni de rețea convenționale (Ethernet, FDDI, fibre de fibre) sau prin tehnologii speciale non-standard. Astfel de conexiuni intraclasice sau interstatale permit nodurilor să interacționeze reciproc independent de mediul de rețea extern. Pe nodurile canalelor intra-cluster nu numai că comunică cu informații, dar, de asemenea, să-și controleze eficiența celuilalt.

Există o definiție mai largă a unui cluster: "Clusterul este un sistem care acționează ca un individ care garantează o fiabilitate ridicată care are o gestionare centralizată a tuturor resurselor și a unui sistem de fișiere partajate și, în plus, oferind flexibilitate de configurare și facilități în acumularea de resurse".

După cum sa menționat deja, scopul principal al clusterului este de a asigura ridicat în comparație cu setul fragmentat de computere sau servere - nivelul de pregătire (denumit altfel nivelul de disponibilitate - disponibilitate ridicată, ha), precum și un grad înalt de scalabilitate și ușurință de administrare. Îmbunătățirea disponibilității sistemului asigură activitatea aplicațiilor critice pentru utilizator în timpul celei mai lungi perioade de timp. Este posibil să se includă toate aplicațiile care depind direct de capacitatea companiei de a obține un profit, de a oferi un serviciu sau de a oferi alte funcții vitale. De regulă, utilizarea clusterului vă permite să vă asigurați că dacă serverul sau orice aplicație nu mai funcționează în mod normal, un alt server din cluster, continuând să vă îndepliniți sarcinile va prelua rolul unui server defect (sau va executa o copie a unei aplicații defecte) Pentru a minimiza timpul de nefuncționare a utilizatorului datorită unei defecțiuni în sistem.

Pregătirea este de obicei măsurată Ca procent din timpul petrecut de sistem într-o stare de lucru, din timpul total al muncii. Diferitele aplicații necesită disponibilitatea diferită din sistemul de calcul. Pregătirea sistemului poate fi mărită prin diferite metode. Alegerea metodei se efectuează în funcție de costul sistemului și de costul pentru întreprinderea de timp inactiv. Există soluții destul de ieftine care, de regulă, se concentrează în principal la o scădere a timpului de inactivitate după o funcționare defectuoasă. Mai scumpe furnizează funcționarea normală a sistemului și oferă servicii utilizatorilor chiar dacă una sau mai multe dintre componentele sale au eșuat. După cum se aude sistemul, prețul său crește neliniar. În mod similar, costul suportului său este neliniar. Sistemele cu costuri relativ scăzute au un nivel ridicat de toleranță la nivel înalt de toleranță la defecțiune - nu mai mult de 99% (aceasta înseamnă că aproximativ patru zile pe an structura de informare a întreprinderii va fi inoperabilă). Acest lucru nu este atât de mult dacă aici include atât timpul de nefuncțional planificat legat de munca preventivă, cât și de reconfigurare.

Disponibilitate ridicată (pregătire) implică o astfel de soluție care poate continua să funcționeze sau să restaureze funcționarea după apariția majorității erorilor nici o intervenție operatorului. Cele mai avansate (și în mod natural scumpe) soluții de fabrică sunt capabile să furnizeze 99,999% din fiabilitatea sistemului, (adică nu mai mult de 5 minute Downtime pe an).

Între sistemele unice de servere cu subsisteme de disc cu oglindă (sau matrice de discuri RAID) și sisteme de toleranță la defecțiuni, "Gold Middle" oferă soluții de cluster. În ceea ce privește disponibilitatea, acestea abordează sistemele de toleranță la defecțiuni cu costuri mai puțin incomensurabile. Astfel de soluții sunt ideale pentru cazurile în care pot fi permise doar o perioadă de întrerupere foarte minoră neplanificată.

În cazul eșecului sistemului de cluster recuperarea gestionează software-ul special și hardware. Software-ul de cluster vă permite să definiți automat un singur hardware sau o defecțiune software, izolați-o și restaurați sistemul. Subrutine special concepute pot alege cel mai mult drumul rapid Recuperarea și în momentul minim pentru a asigura performanța serviciilor. Cu ajutorul unui instrument de instrument încorporat pentru dezvoltarea și programarea interfeței, puteți crea programe speciale care detectează, izolarea și eliminarea eșecurilor care apar în aplicațiile dezvoltate de utilizator.

Un avantaj important al grupului este de a asigura scalabilitatea. Clusterul vă permite să măriți flexibil puterea de calcul al sistemului, adăugând noduri noi la acesta și fără întreruperea utilizatorilor. Soluțiile moderne de cluster oferă distribuția automată a sarcinii între nodurile de cluster, ca urmare a căreia o aplicație poate funcționa pe mai multe servere și să utilizeze resursele lor de calcul. Aplicațiile tipice operate pe clustere, este:

  • bază de date;
  • sisteme de management al resurselor Enterprise (ERP);
  • procesarea mesajelor și sistemele poștale;
  • instrumente de procesare a tranzacțiilor prin servere web și web;
  • sisteme de interacțiune client (CRM);
  • sisteme de separare a fișierelor și imprimării.

Deci, clusterul combină mai multe servere interconectate canal special de comunicare, Numiți frecvent rețea de sistem. Nodurile de cluster controlează reciproc performanța și schimbul de informații specifice, cum ar fi configurația clusterului și, de asemenea, transmite date între unități comune și să-și coordoneze utilizarea.

Controlul prelucrării Exercitat cu ajutorul special semne de inima. ("puls"). Aceste noduri de cluster de semnal transmit reciproc pentru a confirma funcționarea lor normală. În clustere mici, aceleași canale sunt transmise în aceleași canale ca și datele, liniile speciale sunt evidențiate în sisteme de cluster mare. Software-ul de cluster ar trebui să primească un semnal "Pulse" al fiecărui server la un anumit interval de timp - în cazul netratării sale, serverul este considerat a fi nefuncțional, iar clusterul este reconfigurat automat. Conflictele dintre servere sunt permise automat atunci când apare problema selectării unui server "master" sau a unui grup de servere atunci când clusterul este pornit, a cărui sarcină este de a forma un nou cluster.

Pentru organizarea canalului de comunicare a clusterului, tehnologiile obișnuite de rețea (Ethernet, Inel Inel, FDDI, ATM), autobuzul comun I / O (SCSI sau PCI), interfața cu fibră de mare viteză sau tehnologiile CI specializate (calculator interconectat), DSSSI (Interconectarea sistemului de stocare digitală) sau canalul de memorie.

Interfața DSSSI este proiectată să acceseze unitățile și să interacționeze sistemele între ele. Este similar cu protocolul multi-end SCSI-2, dar are mai multă performanță și posibilitatea organizării interacțiunii computerizate. DSSI Clustere Suport Instrumente de fiabilitate, separarea resurselor, sistemul de fișiere distribuite și transparența. Din punctul de vedere al controlului și securității, grupul DSSSI este reprezentat de un singur domeniu.

Interfața CI - anvelopă dublă secvențială cu un curs de schimb de până la 70 Mbps. Este conectat la sistemul de calculator I / O prin intermediul unui controler inteligent capabil să mențină atât dublu cât și cu un singur autobuz, în funcție de cerințele pentru accesul la un anumit computer. Toate liniile de comunicație ale interfeței CI sunt conectate cu un integrator CI - o conexiune specială de urmărire a dispozitivului cu noduri și configurații de cluster.

Tehnologia canalelor de memorie vă permite să creați un mediu de comunicare extrem de eficient, care să ofere mesaje de mare viteză (până la 100 MB / s) între servere într-un cluster.

Cerințele pentru viteza canalului de comunicare depind de gradul de integrare a nodurilor de cluster și de natura aplicării aplicațiilor. Dacă, de exemplu, aplicațiile din nodurile diferite nu interacționează între ele și nu efectuează acces simultan la unitățile de disc, nodurile schimbate numai cu mesaje de control care confirmă performanța acestora, precum și informații despre schimbarea configurației clusterului, adică adăugarea de noi Noduri, redistribuirea volumelor de disc etc. Acest tip de schimb nu va necesita resurse semnificative interspair și poate fi satisfăcut cu un simplu canal Ethernet de 10 megobit.

Configurații reale de cluster există o cantitate imensă. Există soluții care sunt o combinație de mai multe clustere și chiar cu dispozitive suplimentare. Fiecare opțiune îndeplinește cerințele relevante diferite aplicații Și, în mod natural, diferă atât în \u200b\u200bceea ce privește costul și complexitatea implementării. O astfel de topologie a clusterelor ca o stea, inel, n-N și altele sunt utilizate pe scară largă. Dar, indiferent cât de complexă și exotică poate fi calificată în două criterii:

Organizarea de noduri RAM de cluster,

Gradul de disponibilitate a dispozitivelor I / O, în primul rând discuri.

În ceea ce privește RAM, există două opțiuni: fie toate nodurile de cluster au un independent berbecSau au o memorie comună comună. Gradul de disponibilitate a dispozitivelor I / O Cluster este determinat în principal de posibilitatea utilizării memoriei externe cu discuri partajate și aceasta implică faptul că orice nod are acces transparent la sistemul de spațiu pe disc partajat. În plus față de subsistemul Disk Shared, discurile locale pot avea discuri locale pe nodurile de cluster, dar în acest caz sunt utilizate în principal pentru a încărca sistemul de operare pe nod. Un astfel de cluster trebuie să aibă un subsistem special numit un manager de blocare distribuit, DLM, pentru a elimina conflictele în timp ce scrie în fișiere din noduri de cluster diferite. În sistemele în care nu există DLM, aplicațiile nu pot funcționa în paralel cu aceleași date, iar memoria redusă a discului, dacă este cazul, este atribuită unui nod la un moment dat.

În clustere care nu acceptă accesul simultan la memoria externă, toate nodurile sunt servere complet autonome.În cazul a două noduri, accesul la memoria partajată pe discuri se efectuează utilizând magistrala I / O separată (figura 1). Pentru fiecare nod, o astfel de anvelopă se termină într-o matrice de disc. În orice moment, un singur nod deține un sistem de fișiere partajate. Dacă unul dintre servere eșuează, controlul asupra autobuzului și a discurilor separate se desfășoară într-un alt nod.

Smochin. 1. Construirea unui grup de două noduri.

Pentru companiile cu un sistem informatic integrat, unde se implică o singură parte a resurselor pentru a efectua o fiabilitate critică a aplicațiilor, se poate aplica o schemă de construire a unui cluster activi - Backup (fig.2). Într-un astfel de sistem, cel mai simplu caz include un server activ care efectuează cele mai importante aplicații și o mașină de rezervă care rezolvă sarcini mai puțin responsabile. Dacă serverul activ eșuează, toate aplicațiile sale sunt transferate automat în copia de rezervă, unde aplicațiile cu prioritate mai mici sunt opriți. Această configurație vă permite să excludeți încetinirea activității aplicațiilor critice - utilizatorii pur și simplu nu vor observa niciun fel de modificări (un caz special al acestei scheme - configurația "pasivă - Backup", în care serverul de rezervă nu conține nici o sarcină și este în modul de așteptare).

Smochin. 2. Construirea unui grup de tip "Rezervă activă".

Există, de asemenea, o configurație "activă activă", ceea ce implică execuția de către toate serverele de cluster selectate de aplicații aceeași prioritate înaltă, resursele computaționale ale serverului de rezervă sunt utilizate în munca de zi cu zi. Avantajul acestei abordări este că utilizatorul are la dispoziție un sistem foarte accesibil (serverul este duplicat) și, în același timp, poate utiliza toate resursele de calcul al clusterului. Acest lucru reduce costul total al sistemului, se referea la o singură unitate de alimentare cu un singur computing. Aplicațiile în caz de eșec sunt transferate de la mașina nelucrătoare la restul, care, desigur, afectează performanța generală. Clusterele "active - active" pot exista numai ca sisteme dedicate pe care nu pot fi lansate sarcini cu prioritate scăzută de tip de suport de lucru de birou. În plus, atunci când construiți clustere cu un server de rezervă activ, puteți avea servere complet duplicate cu propriile discuri individuale. În același timp, este necesar să copiați în mod constant datele de pe serverul principal la backup - acest lucru asigură că, în cazul unei defecțiuni, serverul de backup va avea datele corecte. Deoarece datele sunt complet duplicate, clientul poate avea acces la orice server, care vă permite să discutați despre echilibrarea încărcării într-un cluster similar. În plus, nodurile unui astfel de cluster pot fi separate prin din punct de vedere geografic, ceea ce face ca configurația rezistenței la dezastru. Această abordare oferă un nivel foarte ridicat de disponibilitate, dar are un număr din următoarele dezavantaje:

Necesitatea de a copia în mod constant date (aceasta înseamnă că o parte a computerelor și a resurselor de rețea va cheltui în mod continuu pe sincronizare);

Chiar și cea mai rapidă interfață de rețea dintre serverele din interiorul clusterului nu exclude întârzierile în transmiterea informațiilor, care, în cele din urmă, pot duce la desincronizare dacă un server a eșuat și nu toate tranzacțiile efectuate cu discul său reflectat pe cel de-al doilea disc server.

Într-un cluster fără separarea resurselor (Fig.3) Serverele sunt conectate la o matrice de disc, dar fiecare dintre ele comentează cu setul de discuri. În cazul unei defecțiuni pe unul dintre noduri, serverul rămas ia controlul asupra discurilor sale. Această metodă elimină necesitatea sincronizării constantă a datelor între servere și, prin urmare, eliberează resurse suplimentare de calcul și de rețea. Dar, în această configurație, discurile devin un singur punct de eșec, prin urmare, în acest caz, unitățile sunt utilizate utilizând tehnologia RAID.

Smochin. 3. Construirea unui cluster fără resurse partajate.

În sisteme cu separarea completă a resurselor (Fig.4) Toate serverele din cluster au acces simultan la același disc. Această abordare implică prezența unui software dezvoltat cu atenție care oferă acces multiplu la un mediu. Ca și în cazul precedent, discurile de aici pot fi un singur punct de eșec, deci este de dorit să se utilizeze matricele RAID. În acest exemplu de realizare, dispare nevoia de sincronizare constantă a datelor între servere. Astfel, sunt eliberate resurse suplimentare de calcul și de rețea.

Smochin. 4. Construirea unui cluster cu resurse partajate.

Toate programele executate de un cluster poate fi împărțită condiționat în mai multe categorii. Pe orice nod de cluster, puteți rula aproape orice program convențional. Mai mult, unul și același program pot fi rulați pe noduri de cluster diferite. Cu toate acestea, fiecare copie a programului ar trebui să utilizeze propria resursă (sistemul de fișiere), deoarece sistemul de fișiere este securizat de un anumit nod. În plus față de software-ul obișnuit pentru clustere, există așa-numitele aplicații cu adevărat cluster. Astfel de programe vor fi distribuite prin nodurile clusterului și între părțile programului care operează pe noduri diferite, se organizează interacțiunea. Adevărata programe de cluster vă permit să paralenați sarcina pe cluster. O poziție intermediară ocupă aplicații concepute pentru a lucra într-un cluster. Spre deosebire de programele de cluster adevărat, nu este utilizat în ele cu paralelism explicit; De fapt, programul este obișnuit, dar poate utiliza unele posibilități ale clusterului, asociate în principal cu migrarea resurselor.

Toate soluțiile de cluster pe platformele Microsoft sunt orientate în principal pentru a combate echipamentele și eșecurile software. Software-ul special este ceva care combină serverele din clustere. Multe aplicații corporative moderne și sistemul de operare au un suport încorporat, dar funcționarea neîntreruptă și transparența clusterului pot garanta doar nivelul special al nivelului intermediar. Este responsabil:

Pentru munca coordonată a tuturor serverelor;

Pentru permisiunea care apare în sistemul de conflict,

Asigură formarea și reconfigurarea clusterului după eșecuri;

Oferă distribuția încărcăturii prin noduri de cluster;

Recunoaște refacerea funcționării serverelor eșuate pe nodurile disponibile (procedura de migrare);

Monitorizează starea mediilor hardware și software;

Vă permite să rulați orice aplicație pe cluster fără adaptare preliminară la noua arhitectură hardware.

Software-ul de cluster are de obicei mai multe scripturi de recuperare a sistemului predeterminat și poate, de asemenea, să ofere administratorului capacitatea de a configura astfel de scenarii. Recuperarea după eșecuri poate fi susținută atât pentru nod cât și pentru componente individuale - aplicații, volume de disc etc. Această funcție este inițiată automat în cazul unei defecțiuni a sistemului și poate fi, de asemenea, condusă de administrator dacă este, pentru că, pentru aceasta Exemplu, trebuie dezactivat unul dintre nodurile pentru reconfigurare.

Soluțiile de cluster în sistemele moderne de calcul, pe lângă fiabilitatea și viteza crescută, sunt prezentate mai multe cerințe suplimentare:

Acestea trebuie să furnizeze o singură reprezentare externă a sistemului,

Backup de mare viteză și recuperare de date,

Accesul paralel la baza de date,

Au posibilitățile de a transfera sarcina de la nodurile de urgență la funcționale,

Aveți un nivel ridicat de configurare a instrumentelor de configurare, garantarea recuperării după un accident.

Desigur, utilizarea mai multor noduri de cluster, care se referă simultan la aceleași date, mărește complexitatea backup-ului și recuperarea ulterioară a informațiilor. Transferul de încărcare de la nodul de urgență la serviciul este principalul mecanism de asigurare a aplicării continue a aplicațiilor, sub rezerva utilizării optime a resurselor de cluster. Pentru eficace colaborare Sistemele de cluster și sistemul DBMS ar trebui să aibă manager de blocare distribuit, oferind o modificare consecventă în baza de date atunci când a solicitat secvența de la diferite noduri de cluster. Configurarea configurației clusterului cu furnizarea simultană de disponibilitate ridicată a aplicațiilor este un proces destul de complicat (acest lucru se datorează complexității stabilirii regulilor pentru care acestea sau alte aplicații sunt transferate de la nodurile de urgență ale clusterului). Sistemul de cluster este obligat să vă permită să transferați cu ușurință aplicații de la un nod de cluster la altul, precum și să restabiliți o aplicație de urgență pe un alt nod. Sistemul sistemului nu este obligat să știe că funcționează cu un sistem de cluster, astfel încât clusterul ar trebui să arate ca un singur computer. Acesta trebuie să aibă un singur sistem de fișiere pentru toate nodurile, o singură adresă IP și un singur kernel de sistem.

Cele mai fiabile sunt clustere distribuite. Chiar și cele mai fiabile sisteme pot eșua dacă există un incendiu, cutremur, inundații sau atacul teroriștilor. Cu o scară globală a afacerilor moderne, aceste evenimente nu ar trebui să le facă rău, astfel încât clusterul poate fi distribuit (sau ar trebui).

Toți prezentatorii companii Computer (Compaq, Dell, Hewlett-Packard, IBM, Sun Microsystems) oferă propriile soluții de cluster. Pozițiile de lider din segmentul UNIX-Cluster ia IBM, care promovează în mod activ baza de date DB2, soarele promovează în mod activ soluția sa de cluster Sun. Unul dintre cei mai activi jucători (atât de numărul de platforme certificate pentru clustere, cât și de varietatea de soluții de cluster) recunosc Compaq Corporation, care a oferit o gamă practic de clustere pe platformele Windows pentru un departament sau o ramură la distanță, Pentru aplicațiile în infrastructura corporației și în centrele mari. Prelucrarea datelor. Soluția Cluster Server Compaq TrueCluster maximizează cerințele actuale pentru companiile la o astfel de tehnologie. Software nou permite, de exemplu, să se stabilească o bază de date pe mai multe servere asociate împreună. Nevoia unei astfel de asociații are loc, de exemplu, dacă este necesar un container mare sau trebuie să reduceți timpul inactiv în cazul unei defecțiuni pe server, care se realizează prin transferarea operațiunilor pe alt server de cluster. Acest lucru vă permite să reduceți în mod semnificativ costul platformelor hardware, făcându-l grupuri de construcție din punct de vedere economic de la serverele de arhitectură standard, chiar și pentru întreprinderile relativ mici. Compaq și Oracle cooperează în mod activ în tehnologie și afaceri, care vor crea o platformă de bază de date cluster mai scalabilă, gestionată, fiabilă și rentabilă. În plus, Oracle a început să coopereze cu Microsystems Dell și Sun, care oferă clienților sisteme preconfigurate și testate care lucrează cu Gruparea Oracle. Dell, de exemplu, furnizează software-ul de cluster pe serverele testate cu Windows și Linux.

Pe piața sistemelor corporative, clusterele joacă unul dintre rolurile cheie. În multe cazuri, soluțiile de cluster pur și simplu nu au o alternativă vrednică. Disponibilitate reală și scalabilitate largă a sistemelor informatice de cluster, le permite să rezolve cu succes sarcini din ce în ce mai complexe, iar cu nevoi crescânde, este ușor să se sporească puterea de calcul a platformei cu o întreprindere acceptabilă a costurilor.

Cluster (grup de computere)

Încărcați clusterele de distribuție

Principiul acțiunii lor se bazează pe distribuirea cererilor prin unul sau mai multe noduri de intrare care le redirecționează la procesarea în nodurile rămase, calculatoare. Scopul inițial al unui astfel de cluster este, totuși, metodele care cresc fiabilitatea sunt de asemenea utilizate în ele. Structurile similare sunt numite ferme de servere. Software-ul (software) poate fi atât comercială (OpenVMS, MOSIX, platformă LSF HPC, Cluster Solaris, Moab Cluster Suite, Maui Cluster Scheduler) și GRATUIT (OpenMOSIX, Sun Grid Motor, Server virtual Linux).

Clustere de calcul

Clusterele sunt utilizate în scopuri computaționale, în special în cercetarea științifică. Pentru clustere de calcul, indicatori semnificativi sunt performanțele ridicate ale procesorului în operații pe numerele de puncte plutitoare (flops) și latența scăzută a rețelei de combinare și mai puțin semnificativă - viteza operațiilor I / O, care este mai importantă pentru bazele de date și de baze de date Servicii. Clusterele de calcul fac posibilă reducerea timpului de calcul, comparativ cu un singur computer, ruperea sarcinii la ramurile paralele care sunt schimbate de datele de legare. Una dintre configurațiile tipice este un set de computere colectate din componentele disponibile publicului, instalate pe ele. sistem de operare Linux și rețeaua Ethernet, Myrinet, Infiniiband sau alte rețele relativ ieftine. Acest sistem este obișnuit să fie numit Cluster Beowulf. Alocați în mod special clustere de înaltă performanță (limba engleză este indicată prin abreviere HPC Cluster. - Cluster de înaltă performanță de calcul). Lista celor mai puternice computere de înaltă performanță (pot fi, de asemenea, notate de abrevierea HPC.) Puteți găsi în clasamentul lumii top500. Rusia are un rating de cei mai puternici computeri ai CSI.

Sisteme de computere distribuite (grilă)

Astfel de sisteme nu sunt considerate clustere, dar principiile lor sunt în mare măsură similare cu tehnologia clusterului. Ele sunt, de asemenea, numite sisteme de rețea. Principala diferență este disponibilitatea scăzută a fiecărui nod, adică incapacitatea de a garanta funcționarea acestuia la un moment dat (nodurile sunt conectate și deconectate în timpul operației), astfel încât sarcina trebuie împărțită într-un număr de procese independente unul de celălalt. Un astfel de sistem, spre deosebire de clustere, nu este similar cu un singur computer și servește ca mijloc simplificat de distribuire a calculelor. Instabilitatea configurației, în acest caz, este compensată de un număr mare de noduri.

Serverele de cluster organizate programatic

Sistemele de cluster ocupă un loc demni în lista celui mai rapid, câștigând în mod semnificativ supercomputere în preț. Pentru iulie 2008, locul 7 al ratingului Top500 este clusterul SGI Altix Ice 8200 (Chippewa Falls, Wisconsin, SUA).

O alternativă relativ ieftină la supercomputere sunt grupuri bazate pe conceptele Beowulf, care sunt construite din computere necostisitoare obișnuite pe baza software-ului liber. Unul dintre exemplele practice ale unui astfel de sistem este SusperComputer de piatră (UAC Ridge, Tennessee, SUA,).

Cel mai mare cluster aparținând persoanei private (din 1000 de procesoare) a fost construit de John Koza (John Koza).

Istorie

Istoria creației de cluster este legată inextricabil de evoluțiile timpurii în domeniul rețelelor de calculatoare. Unul dintre motivele apariției comunicării de mare viteză între computere a devenit speranțe pentru combinarea resurselor de calcul. La începutul anilor 1970 Echipa de dezvoltare a protocolului TCP / IP și laboratorul PARC Xerox sunt atribuite standarde de interacțiune în rețea. Sistemul de operare Hydra ("Hydra") a apărut pentru calculatoarele PDP-11 realizate de Dec, create pe această bază, clusterul a fost numit C.MPP (Pittsburgh, PC-uri. Pennsylvania, SUA,). Cu toate acestea, numai în apropierea orașului, au fost create mecanisme, permițând utilizarea distribuției sarcinilor și a fișierelor prin rețea, în cea mai mare parte a dezvoltat în Sunos (sistemul de operare bazat pe BSD de la Sun Microsystems).

Primul proiect de cluster comercial a fost ArcNet, creat de Datapoint în profit, el nu a făcut-o, și, prin urmare, construcția de clustere nu sa dezvoltat în fața orașului, când Dec a construit VaxCluster pe baza sistemului de operare VAX / VMS. ArcNet și VaxCluster au fost proiectate nu numai pentru calcule comune, ci și de partajarea sistemului de fișiere și periferie, ținând seama de conservarea integrității și unicității datelor. Vaxcluster (numit acum VMSCluster) - este o componentă integrală a sistemului de operare OpenVMS utilizând procesoare alfa și itaniu.

Alte două produse cluster timpurie care au primit recunoaștere includ Tandem Hymalaya (, Clasa HA și IBM S / 390 paralel sysplex (1994).

Istoria clusterelor din computerele personale obișnuite este în mare măsură necesară pentru a proiecta mașina virtuală paralelă. În acest software, pentru a combina computerele într-un supercomputer virtual, a fost deschisă posibilitatea de a crea clustere instantanee. Ca rezultat, performanța totală a tuturor clustere ieftine a creat apoi a depășit suma capacităților sistemelor comerciale "grave".

Crearea de clustere bazate pe calculatoare personale ieftine United printr-o rețea de date a continuat în orașul Agenției Americane Aerospațiale (NASA), apoi dezvoltarea clusterelor Beowulf dezvoltate în mod specific pe baza acestui principiu. Succesele unor astfel de sisteme au împins dezvoltarea rețelelor de grilă, care au existat de la crearea Unix.

Software.

Un instrument larg comun pentru organizarea unei interacțiuni excesive este limbile de susținere a bibliotecii MPI și Fortran. Este folosit, de exemplu, în programul MM5 Modeling Metemic.

Sistemul de operare Solaris oferă software-ul de cluster Solaris, care este utilizat pentru a asigura disponibilitatea ridicată și ruperea serverelor care rulează Solaris. Pentru OpenSolaris există o realizare cu sursa deschisa intitulat OpenSolaris HA cluster..

Mai multe programe sunt populare în rândul utilizatorilor GNU / Linux:

  • discuția, Mpich, etc. - Mijloace specializate pentru paralelizarea programelor. DistCCC permite compilarea paralelă în colecția de compilatoare GNU.
  • Linux Virtual Server, software-ul Linux-Ha - NODE pentru distribuirea interogărilor între serverele de calcul.
  • MOOSIX, OpenMOSIX, Krigat, OpenSsi - Companii de cluster complete, construite în kernel distribuind automat sarcini între nodurile omogene. OpenSsi, OpenMOSIX și crearea de kririg între noduri.

Mecanismele de cluster sunt planificate să fie încorporate în kernelul BSD Dragonfly, ramificat în 2003 de la FreeBSD 4.8. În planurile îndepărtate, de asemenea, transformându-l miercuri a unui singur sistem de operare.

Microsoft este fabricat de un cluster HA pentru sistemul de operare Windows. Se crede că se bazează pe tehnologia Digital Equipment Corporation, suportă până la 16 (din 2010) noduri într-un cluster, precum și lucrul la rețeaua SAN (rețeaua de depozitare). Setul API este utilizat pentru a sprijini aplicațiile distribuite, există spații libere pentru a lucra cu programe care nu prevede lucrarea în cluster.

Windows Compute Cluster Server 2003 (CCS) lansat în iunie 2006 este proiectat pentru aplicații de înaltă tehnologie care necesită computere de cluster. Publicația este concepută pentru desfășurarea pe o varietate de computere care sunt colectate într-un cluster pentru a obține o capacitate de supercomputer. Fiecare cluster pe serverul de cluster Windows Compute este alcătuit dintr-una sau mai multe mașini de control care distribuie sarcini și mai multe mașini subordonate care efectuează operația principală. În noiembrie 2008, Windows HPC Server 2008 este conceput pentru a înlocui Windows Compute Cluster Server 2003.


Departamentul 29 "Gestionarea Sisteme inteligente"

Rezumat pe subiect:

Sisteme de cluster

Efectuat:

grupul de studenți K9-292.

Popov i.a.

Moscova 2001.

1. Introducere

2. Clase de bază ale computerelor paralele moderne

3. Arhitectura cluster de computere paralele

4. Obiectivele creării sistemelor de cluster

5. Clusterele de fabrică

6. Clustere de înaltă performanță

7. Proiectul Beowulf.

8. Concluzie

9. Literatură

Introducere

Dezvoltarea sistemelor de calcul multiprocesor

Dezvoltarea arhitecturilor tradiționale pentru construcția sistemelor de calcul, cum ar fi SMP, MPP, sistemele paralele vectoriale, merge destul de rapid. Creșterea productivității, fiabilitatea și toleranța la defecțiuni crește. Cu toate acestea, aceste arhitecturi au un dezavantaj - costul creat al sistemelor, uneori inaccesibil pentru mulți utilizatori ai unor astfel de sisteme - organizații educaționale și de cercetare. Are o foarte mare datorită complicațiilor componentelor hardware și software ale sistemului, care sunt necesare pentru a furniza astfel de rate de creștere a productivității. Cu toate acestea, nevoia de resurse computaționale este în prezent foarte ridicată în multe domenii de activități științifice și practice și nu are resursele sistemelor de supercomputere tradiționale.

Sistemele de cluster au apărut ca o soluție mai ieftină la problema lipsei de resurse de calcul și se bazează pe utilizarea tehnologiilor răspândite și relativ ieftine în arhitectura, hardware și software., cum ar fi PC-ul, Ethernet, Linux etc. Utilizarea tehnologiei de masă în sistemele de cluster a devenit posibilă din cauza progreselor semnificative în dezvoltarea componentelor sistemelor convenționale de calcul, cum ar fi procesoarele centrale, sistemele de operare, mass-media de comunicare.

Deoarece sistemele de cluster sunt arhitecturale, dezvoltarea sistemelor cu paralelism MPP, rolul principal în dezvoltarea lor este progresul în domeniul tehnologiilor de rețea. Până în prezent, au apărut soluții de comunicare ieftine, dar eficiente. Acest lucru a predeterminat apariția rapidă și dezvoltarea sistemelor de calcul al clusterului. Alți factori au contribuit, de asemenea, la progresul dezvoltării sistemelor de cluster.

Performanța computerelor personale bazate pe procesoarele Intel a crescut, de asemenea, semnificativ în ultimii ani. Astfel de computere au început să creeze o concurență serioasă pentru stațiile de lucru bazate pe procesoare mai scumpe și mai puternice de risc. În același timp, a început să dobândească popularitate crescândă a sistemului de operare Linux - gratuit, distribuită versiunea Unix. În același timp, în organizațiile științifice și universități, unde sunt dezvoltate cele mai multe sisteme de cluster, de regulă, există specialiști în sistemul de operare Linux.

Gradul ridicat de dezvoltare a sistemelor de cluster la data înregistrează faptul că în lista celor mai puternice supercomputere ale instalațiilor de cluster Mondiale Top500 - 11 sunt enumerate.


Clasele de bază ale computerelor paralele moderne

Sistemele de cluster sunt dezvoltarea sistemelor paralele. Pentru a face locul sistemelor de cluster, printre alte tipuri de arhitecturi paralele ale sistemelor de calcul, trebuie să oferiți clasificarea lor. Sistemele paralele pot fi clasificate prin diferite criterii.

Din punct de vedere hardware, parametrul principal pentru clasificarea computerelor paralele este disponibilitatea memoriei generale (SMP) sau a memoriei distribuite (MPP). Ceva ce media dintre SMP și MPP este numea arhitectură, unde memoria este distribuită fizic, dar este accesibile logic.

Sisteme multiprocesoare simetrice

SMP Sistemul constă din mai multe procesoare omogene și o matrice generală de memorie. Unul dintre abordările SMP utilizate frecvent la formarea unui sistem de memorie publică scalabilă, constă într-o organizație uniformă de acces la memorie prin organizarea unui canal de procesor de memorie scalabil:

Fiecare operație de acces la memorie este interpretată ca o tranzacție asupra magistralei de memorie a procesorului. Coerența cache-ului este menținută de hardware.

În SMP, fiecare procesor are cel puțin o memorie de cache proprie (și poate mai multe).

Se poate spune că sistemul SMP este un computer cu mai multe procesoare egale. Orice altceva este într-o singură instanță: o memorie, un subsistem I / O, un sistem de operare. Cuvântul "egal" înseamnă că fiecare procesor poate face tot ceea ce altul. Fiecare procesor are acces la toată memoria, poate efectua orice operație de intrare / ieșire, întrerup alte procesoare etc.

Dezavantajul acestei arhitecturi este nevoia de a organiza procesoarele procesorului canalului cu o lățime de bandă foarte mare.

Sisteme masive-paralele

Sistemul MPP masiv-paralel constă în noduri omogene de calcul, inclusiv:

  • una sau mai multe procesoarele centrale (de obicei RISC)
  • memoria locală (acces direct la memoria altor noduri este imposibil)
  • procesor de comunicare sau adaptor de rețea
  • hard disk-uri și / sau alte dispozitive în / în

Componentele speciale I / O și nodurile de control pot fi adăugate la sistem. Nodurile sunt asociate prin intermediul unui mediu de comunicare (rețea de mare viteză, comutator etc.)

Sisteme cu acces neuniform la memoria NATA

NUMA (accesul memoriei neuniforme) Spre deosebire de faptul că SMP-ul obișnuit al arhitecturii de memorie partajată este mai multe procesoare separate, fiecare dintre ele, în plus față de cache-ul proprii, are, de asemenea, memorie locală:

Într-o astfel de arhitectură, procesorul și modulele de memorie sunt strâns integrate, prin urmare, viteza de acces la memoria locală este mult mai mare decât în \u200b\u200bmemoria procesorului "adiacent". Subsistemele I / O pot face parte din fiecare nod sau consolidat pe nodurile I / O selectate. Dacă coerența cache-ului este menținută în întregul sistem, atunci o astfel de arhitectură se numește CC-NUMA.

Cea mai ușoară modalitate de a descrie sistemul NumA, prezentând un sistem SMP mare, împărțit în mai multe părți, aceste părți sunt asociate cu autostrada de comunicație conectată la anvelopele de sistem, iar fiecare parte include propria memorie de bază și un subsistem de intrare / ieșire. Acesta este Numa: SMP mare, rupt într-un set de SMP-uri mai mici și simple. Principala problemă Numa este de a asigura coerența cache-ului. Echipamentul vă permite să lucrați cu toate dispozitivele separate ale memoriei principale ale componentelor sistemului (numite de obicei noduri) ca și cu o singură memorie gigantică.

Cluster Arhitectură

Luați în considerare localizarea arhitecturii de cluster a sistemelor de calcul în această clasificare.

Clusterul este un set legat de computere cu drepturi depline utilizate ca o singură resursă. Sub conceptul unui "computer cu drepturi depline" este un sistem informatic complet cu tot ceea ce este necesar pentru funcționarea sa, inclusiv procesoarele, memoria, subsistemul I / O, precum și sistemul de operare, subsistemele, aplicațiile etc. De obicei, computerele personale sau sistemele paralele care pot avea arhitecturi SMP și chiar Numa sunt potrivite pentru acest lucru. Clusterele sunt sisteme slab pierdute, legăturile nodului sunt utilizate de una dintre tehnologiile de rețea standard (Fast / Gigabit Ethernet, Myrinet) pe baza arhitecturii de autobuz sau a comutatorului. Prin urmare, ele sunt mai ieftine în construirea modificării arhitecturii MPP.

Arhitectura clusterată a computerelor paralele

Principii generale

După cum sa menționat deja, clusterul de calcul este un set de computere combinate într-o anumită rețea pentru a rezolva o sarcină (figura 3), care este trimisă pentru utilizator ca o singură resursă. Un astfel de concept de cluster a fost sugerat și implementat la începutul anilor 80 de echipamente digitale, care până în prezent dezvoltă această tehnologie

Conceptul de "resursă unificată" înseamnă disponibilitatea software-ului care vă oferă posibilitatea utilizatorilor, administratorilor și programelor de aplicații pentru a presupune că există o singură entitate cu care lucrează este un cluster. De exemplu, sistemul de procesare a pachetelor de cluster vă permite să trimiteți o sarcină pentru procesarea clusterului și nu un computer separat. Un exemplu mai complex sunt sistemele de baze de date. Aproape toți producătorii de sisteme de baze de date au versiuni care operează în modul paralel pe mai multe mașini de cluster. Ca urmare a aplicației utilizând baza de date, nu aveți grijă de locul în care se efectuează munca lor. DBMS-ul este responsabil pentru sincronizarea acțiunii paralele și menținerea integrității bazei de date.

Calculatoarele care formează clusterul sunt așa-numitele noduri de cluster - sunt întotdeauna relativ independente, ceea ce permite oprirea sau oprirea oricăreia dintre ele să efectueze o muncă preventivă sau să instaleze echipamente suplimentare fără a întrerupe performanța întregului cluster.

Ca noduri de calcul în cluster, computerele personale cu un singur procesor sunt de obicei utilizate, două sau patru procesoare SMP SF. Fiecare nod rulează copia sistemului de operare, care este cea mai des folosită de sistemele de operare standard: Linux, NT, Solaris etc. Compoziția și puterea nodurilor pot varia chiar și în același cluster, permițând capacitatea de a crea sisteme neomogene. Alegerea unui anumit mediu de comunicare este determinată de mulți factori: caracteristicile clasei de sarcini rezolvate, necesitatea expansiunii ulterioare a clusterului etc. Este posibil să se permită computere specializate în configurație, cum ar fi un server de fișiere și, de regulă, este prevăzută posibilitatea accesului la distanță la cluster prin Internet.

Din definiția arhitecturii sistemelor de cluster rezultă că include o gamă largă de sisteme. Având în vedere punctele extreme, clusterul poate fi considerat o pereche de PC conectat de rețeaua locală de rețea de 10 megobit și sistemul de calcul creat ca parte a proiectului de cplant în Laboratorul Național Sandia: 1400 de stații de lucru bazate pe procesoare alfa asociate cu a Rețea Myrinet de mare viteză.

Astfel, se poate observa că există o mulțime de opțiuni de construcție a clusterului diferite. În același timp, tehnologiile și standardele de comunicații utilizate au o importanță deosebită în arhitectura clusterului. Ele determină în mare măsură gama de sarcini, pentru care pot fi utilizate clustere construite pe baza acestor tehnologii.

Tehnologii de comunicare pentru construirea clusterelor

Clusterele pot sta atât pe baza anvelopelor specializate de transmisie a datelor de mare viteză, cât și pe tehnologii de rețea de masă. Printre standardele de comunicare în masă sunt acum cele mai des utilizate de rețeaua Ethernet sau mai mult din opțiunea sa productivă - Fast Ethernet, de regulă, pe baza comutatoarelor. Cu toate acestea, rapoartele mari generale pentru trimiterea de mesaje în cadrul Fast Ethernet conduc la restricții grave asupra gamei de sarcini care pot fi rezolvate în mod eficient pe un astfel de cluster. Dacă un cluster necesită o performanță excelentă și o versatilitate, este necesar să se utilizeze mai multă viteză și tehnologii specializate. Acestea includ SCI, Myrinet, Clan, ServerNet etc. Caracteristicile comparative ale acestor tehnologii sunt prezentate în
Tabelul 1.

ServerNet.

Fast Ethernet

Leadnce (MPI)

Lățime de bandă (MPI)

180 MB / C

Lățime de bandă (hardware)

400 MB / C

160 mb / c

150 MB / C

12,5 MB / C

Implementarea MPI

Hpvm, Mpich-GM etc.

Tabelul 1.

Performanța rețelelor de comunicații în sistemele de cluster este determinată de mai multe caracteristici numerice. Principalele caracteristici sunt două: latență - timpul de întârziere inițial în momentul trimiterii mesajelor și lățimii de bandă de rețea, care determină viteza transferului de informații prin canale de comunicare. În același timp, nu există atât de multe caracteristici de vârf indicate în standard ca fiind reale, realizate la nivelul aplicațiilor utilizator, de exemplu, la nivelul aplicației MPI. În special, după provocarea de către utilizatorul trimiterea unui mesaj trimite (), mesajul va trece în mod constant printr-un întreg set de straturi determinate de caracteristicile organizației și echipamentelor software, înainte de a părăsi procesorul - prin urmare, există o planificare semnificativă standardele valorilor de latență. Prezența latenței duce la faptul că rata maximă de transfer în rețea nu poate fi realizată pe mesaje cu o lungime mică.

Viteza transmiterii datelor pe rețea în tehnologia Fast Ethernet și Scalable Coerenta (SCI) depinde de lungimea mesajului. Pentru Ethernet rapid, o mare varietate de latență este caracterizată - 160-180 μs, în timp ce latența pentru SCI este o valoare de aproximativ 5,6 μs. Rata maximă de transfer pentru aceleași tehnologii 10 MB / C și, respectiv, 80 MB / s.

Obiective de creare a sistemelor de cluster

Dezvoltatorii arhitecturilor sistemului de cluster au verificat diverse scopuri atunci când le creează. Primul a fost echipamentul digital cu clustere VAX / VMS. Scopul creării acestei mașini a fost îmbunătățirea fiabilității sistemului, asigurând disponibilitatea ridicată și toleranța la defecțiuni a sistemului. În prezent, există multe arhitecturi similare ale sistemului de la alți producători.

Un alt scop de a crea sisteme de cluster este de a crea sisteme de calcul paralel de înaltă performanță ieftine. Unul dintre primele proiecte care au dat un nume unei întregi clase de sisteme paralele - Cluster Beowulf - a provenit din centrul Centrului de Flight NASA Goddard Space pentru a sprijini resursele de calcul necesare ale proiectului de științe Pământ și Space. Proiectul Beowulf a început în vara anului 1994, iar în curând un cluster de prelucrare a fost asamblat pe procesoare Intel 486dx4 / 100 MHz. Fiecare nod a fost instalat 16 MB de adaptoare Ethernet RAM și 3 de rețea. Acest sistem a fost foarte reușit în legătură cu prețul / performanța, astfel încât o astfel de arhitectură a început să se dezvolte și să utilizeze pe scară largă în alte organizații și institute științifice.

Pentru fiecare clasă de clustere, arhitecturile și hardware-ul utilizat sunt caracteristice. Luați în considerare în detaliu.

Clustere de eșec

Principiile construcției

Pentru a asigura fiabilitatea și toleranța la defecțiuni a sistemelor de calcul, se aplică multe soluții hardware și software diferite. De exemplu, în sistem, toate subiectele care fac obiectul eșecurilor - surse de alimentare, procesoarele, memoria operațională și externă pot fi duplicate. Astfel de sisteme de toleranță la defecțiuni cu rezervare a componentelor sunt utilizate pentru a rezolva problemele în care nu există suficientă fiabilitate a sistemelor convenționale de calcul, așa cum este evaluat în în prezent Probabilitatea de funcționare fără probleme este de 99%. Aceste sarcini necesită o probabilitate de 99,999% și mai mare. O astfel de fiabilitate poate fi realizată prin utilizarea diferitelor metode de creștere a toleranței la defecțiuni. În funcție de nivelul de pregătire a sistemului de calcul, sunt alocate patru tipuri de fiabilitate:

Nivel de pregătire,%

Max. Timpul de nefuncționare

Tip de sistem

3,5 zile pe an

Convenţional)

8,5 ore pe an

Precizie ridicată (disponibilitate ridicată)

1 oră pe an

Defecțiune rezilientă)

5 minute pe an

Tolerant tolerant)

Masa 2.

Spre deosebire de sistemele de toleranță la defecțiuni cu componente excesive, precum și diverse variante de multiprocesare, grupurile combină mașini relativ independente, fiecare dintre acestea poate fi oprită pentru prevenirea sau reconfigurarea, fără a sparge capacitatea de lucru a clusterului în ansamblu. Performanța ridicată a clusterului și minimizarea perioadei de nefuncționare a aplicației se realizează datorită faptului că:

  • În cazul unei întreruperi de putere pe unul dintre noduri, aplicația continuă să funcționeze sau să repornească automat pe alte noduri de cluster;
  • eșecul unuia dintre noduri (sau mai multe) nu va duce la prăbușirea întregului sistem de cluster;
  • preventiv I. lucrări de reparații, Reconfigurarea sau schimbarea versiunilor software, de regulă, pot fi efectuate în nodurile de cluster alternativ, fără a întrerupe operațiile altor noduri.

O parte integrantă a clusterului este un software special care, de fapt, și rezolvă problema recuperării nodului în caz de eșec și, de asemenea, rezolvă alte sarcini. Software-ul de cluster are de obicei mai multe scripturi de recuperare a sistemului predeterminat și poate, de asemenea, să ofere administratorului capacitatea de a configura astfel de scenarii. Recuperarea după eșecuri poate fi acceptată atât pentru nod ca întreg cât și pentru componente individuale - aplicații, volume disc etc. Această caracteristică este inițiată automat în cazul unei defecțiuni a sistemului și poate fi, de asemenea, condusă de administrator, dacă, de exemplu, este necesar să opriți unul dintre noduri pentru reconfigurare.

Clusterele pot avea o memorie partajată discuri externeDe obicei, pe matricea discului RAID. Arrayul de disc RAID este subsistemul Server I / O pentru stocarea de date mare. ÎN raid Arrays. Un număr semnificativ de discuri relativ la capacitate redusă sunt utilizate pentru a stoca cantități mari de date, precum și pentru a oferi o fiabilitate și redundanță mai mare. O matrice similară este percepută de un computer ca un singur dispozitiv logic.

Recuperarea după eșecuri poate fi acceptată atât pentru nod ca întreg cât și pentru componente individuale - aplicații, volume disc etc. Această caracteristică este inițiată automat în cazul unei defecțiuni a sistemului și poate fi, de asemenea, condusă de administrator, dacă, de exemplu, este necesar să opriți unul dintre noduri pentru reconfigurare.

Nodurile de cluster controlează reciproc performanța și schimbările specifice "cluster", de exemplu, o configurație a clusterului, precum și transmiterea datelor între unitățile partajate și coordonarea utilizării acestora. Controlul ajutorului se efectuează utilizând un semnal special pe care nodurile de cluster le transmit reciproc pentru a confirma funcționarea normală. Terminarea semnalelor de la un cluster de semnale noduri software. Despre accident și necesitatea de a redistribui sarcina pe nodurile rămase. De exemplu, luați în considerare un cluster tolerant la defecțiuni VAX / VMS.

VAX / VMS Cluster

Dec a anunțat pentru prima dată conceptul de sistem de cluster în 1983, determinându-l ca un grup de mașini de calcul combinate, care sunt o unitate unică de procesare a informațiilor. În esență, grupul VAX este un sistem multifaceric slab cuplat, cu o memorie externă comună care oferă un mecanism unic de management și administrare.

Clusterul Vax are următoarele proprietăți:

Separarea resurselor. Calculatoarele VAX dintr-un cluster pot partaja accesul la banda partajată și unități de disc. Toate computerele VAX din cluster pot accesa fișiere de date separate ca fiind locale.

Ușor de pregătire. Dacă unul dintre computerele VAX nu reușește, sarcinile utilizatorilor săi pot fi transferați automat pe un alt computer cluster. Dacă există mai mulți controlori HSC în sistem și una dintre ele refuză, alți controlori HSC își ridică automat funcționarea.

Capacitate mare . O serie de sisteme de aplicații pot utiliza posibilitatea executării paralele a sarcinilor pe mai multe computere cluster.

Comoditate de întreținere a sistemului . Bazele de date partajate pot fi servite dintr-un singur loc. Programele de aplicație pot fi instalate o singură dată pe discuri de cluster comune și împărțite între toate computerele clusterului.

Extensibilitate . O creștere a puterii de computere a clusterului este realizată prin conectarea computerelor suplimentare de VAX la aceasta. Unități suplimentare pe discuri magnetice și benzi magnetice Deveniți disponibili pentru toate computerele incluse în cluster.

Funcționarea clusterului VAX este determinată de două componente principale. Prima componentă este un mecanism de comunicare de mare viteză, iar al doilea este un software de sistem care oferă clienților acces transparent la serviciul de sistem. Conectat fizic în interiorul clusterului este implementat utilizând trei tehnologii de anvelope diferite cu diverse caracteristici Performanţă.

Metodele de comunicare de bază în clusterul VAX sunt prezentate în fig. patru.

Smochin. 4 cluster VAX / VMS

Autobuzul CI Computer (Interconnect Computer) rulează cu o viteză de 70 Mbps și este utilizat pentru a conecta computerele VAX și a controlerelor HSC utilizând comutatorul de cuplu de stele. Fiecare conexiune CI are linii duble redundante, două pentru transmisie și două pentru a primi, utilizând tehnologia de bază CSMA, care utilizează o întârziere specifică pentru acest nod pentru a elimina coliziunile. Lungime maxima Comunicarea CI este de 45 de metri. Comutatorul în formă de stea al cuplajului Star poate accepta conectarea la 32 de anvelope CI, fiecare dintre acestea fiind proiectat pentru a conecta computerul VAX sau a controlerului HSC. Controlerul HSC este un dispozitiv inteligent care controlează funcționarea discurilor de disc și a benzii.

Calculatoarele VAX pot fi combinate într-un cluster, de asemenea printr-o rețea locală.

Ethernet utilizând interconectarea NI - rețea (așa-numitele clustere Vax locale), dar performanța unor astfel de sisteme este relativ scăzută datorită necesității de a împărtăși lățimea de bandă a rețelei Ethernet între computerele cluster și alți clienți de rețea.

De asemenea, clusterele pot costa anvelopele DSSI (interconectarea sistemului de stocare digitală). Pe autobuzul DSSSI pot fi combinate la patru computere Vax Clasa inferioară și mijlocie. Fiecare computer poate suporta mai multe adaptoare DSSSI. Un autobuz separat DSSSI funcționează cu o viteză de 4 MB / s (32 Mbps) și vă permite să conectați până la 8 dispozitive. Următoarele tipuri de dispozitive sunt acceptate: adaptorul de sistem DSSSI, controlerul discului de serie RF și controlerul de panglică din seria TF. DSSI limitează distanța dintre nodurile din cluster de 25 de metri.

Software Software Vax Clustere

Pentru a garanta interacțiunea corectă a procesatorilor unul cu celălalt la accesarea resurselor comune, cum ar fi discurile, Dec utilizează un manager de blocare DLM distribuit (manager de blocare distribuit). Foarte o funcție importantă DLM este de a oferi o stare coerentă de cache de disc pentru operațiile I / O ale sistemului de operare și al programelor de aplicație. De exemplu, aplicațiile relaționale DLM sunt responsabile pentru menținerea stării convenite între tampoanele de bază de date pe diferite computere cluster.

Sarcina de a menține coerența memoriei cache-ului I / O între procesoare din cluster este similară cu problema menținerii coerenței cache-ului într-un sistem multiprocesor puternic conectat, construit pe baza unei anumite anvelope. Blocurile de date pot apărea simultan în mai multe cache-uri și dacă un procesor modifică una dintre aceste exemplare, alte copii existente nu reflectă starea actuală a blocului de date. Conceptul de capturare a unui bloc (proprietatea blocului) este una dintre modalitățile de gestionare a acestor situații. Înainte ca unitatea să poată fi modificată de proprietatea blocului.

Lucrul cu DLM este asociat cu costuri semnificative generale. Overheads în mediul VAX / VMS poate fi mare necesitând transmisia până la șase mesaje asupra autobuzului CI pentru o operație I / O. Costurile generale pot atinge valorile de 20% pentru fiecare procesor din cluster.

Clustere de înaltă performanță

Principiile construcției

Arhitectura clusterelor de înaltă performanță a apărut ca elaborarea principiilor construirii sistemelor MPP pe componentele mai puțin productive și de masă, controlate de utilizarea generală a scopului general. Clusterele, precum și sistemele MPP constau în noduri slab cuplate, care pot fi atât omogene, cât și, spre deosebire de MPP, diverse sau eterogene. O atenție deosebită în proiectarea unei arhitecturi de înaltă performanță este plătită pentru asigurarea eficienței ridicate a anvelopei de comunicare care leagă nodurile clusterului. Deoarece există adesea anvelope masive relativ scăzute în clustere, este necesar să se ia o serie de măsuri pentru a exclude lățimea de bandă scăzută asupra performanței clusterului și organizarea de paralelizări eficiente în cluster. De exemplu, lățimea de bandă a uneia dintre cele mai mari tehnologii Ethernet Fast Ethernet la comenzi este mai mică decât cea a interconexiunilor din supercomputerele moderne ale arhitecturii MRR.

Pentru a rezolva problemele scăzute de performanță ale produselor, se utilizează mai multe metode:

Clusterul este împărțit în mai multe segmente, în cadrul căruia nodurile sunt conectate printr-o pneu de înaltă performanță a tipului de miret, iar legătura dintre nodurile de segmente diferite este efectuată de rețele de scădere de tip Ethernet / Fast Ethernet. Acest lucru vă permite să reduceți costul clusterelor pentru a crește semnificativ performanța unor astfel de clustere, rezolvând sarcini cu schimb de date intensive între procese.

Utilizarea așa-numitului "trunking", adică Combinând mai multe canale Ethernet rapid la un canal comun de mare viteză care leagă mai multe comutatoare. Dezavantajul evident al acestei abordări este "pierderea" porții de porturi implicate în interconectarea comutatoarelor.

Pentru a îmbunătăți performanțele, sunt create protocoale speciale de schimb de informații pe astfel de rețele care vă permit să utilizați mai eficient lățime de bandă de canale și să eliminați unele restricții suprapuse cu protocoale standard (TCP / IP, IPX). Această metodă este adesea utilizată în sistemele clasei Beowulf.

Calitatea principală care ar trebui să aibă un cluster de înaltă performanță va fi scalabilitate orizontală, deoarece unul dintre principalele avantaje pe care arhitectura clusterului le oferă capacitatea de a crește puterea sistemul existent Prin simpla adăugare a nodurilor noi în sistem. În plus, creșterea puterii are loc aproape proporțional cu puterea resurselor adăugate și poate fi efectuată fără a opri sistemul în timpul funcționării sale. În sistemele cu o altă arhitectură (în special, MPP), numai scalabilitatea verticală este posibilă: adăugarea memoriei, creșterea numărului de procesoare în sistemele multiprocesoare sau adăugați noi adaptoare sau discuri. Vă permite să îmbunătățiți temporar performanța sistemului. Cu toate acestea, sistemul va fi setat la numărul maxim acceptat de memorie, procesoare sau discuri, resursele de sistem vor fi epuizate și pentru a crește productivitatea, va trebui să creați un nou sistem sau să procesați semnificativ vechiul. Sistemul de cluster admite, de asemenea, scalabilitate verticală. Astfel, prin scalare verticală și orizontală, modelul clusterului oferă o mai mare flexibilitate și o simplitate a creșterii performanței sistemului.

Proiectul Beowulf.

Beowulf este un epic scandinav care spune despre evenimentele din VII - prima treime a secolului al VI-lea, al cărui participant este eroul de același nume, care sa proslăvit în bătăliile.

Un exemplu de implementare a sistemului de cluster a unei astfel de structuri este clusterele Beowulf. Proiectul Beowulf a unit despre o jumătate de duzină de organizații (în principal universități) în Statele Unite. Dezvoltatorii de proiecte principali sunt specialiști ai agenției NASA. În această formă de clustere, puteți aloca următoarele caracteristici principale:

Clusterul Beowulf constă din mai multe noduri separate Unite rețeaua generală, nodurile de cluster totale nu sunt utilizate;

OPTIMAL este considerat a construi clustere bazate pe sisteme SMP cu două procesoare;

Pentru a reduce deasupra capului de interacțiune între noduri, se utilizează un Ethernet complet de 100 MB Fast Ethernet (SCI este mai puțin frecvent), creați mai multe segmente de rețea sau conectați nodurile de cluster prin comutator;

Ca software, Linux este utilizat și bibliotecile de comunicații distribuite în mod liber (PVM și MPI);

Istoria proiectului Beowulf.

Proiectul a început în vara anului 1994 la Centrul Space NASA - Centrul de Flight Goddard Space (GSFC), mai exact în CESDIS creat pe baza ei (centrul de excelență în datele spațiale și științele informației).

Primul cluster Beowulf a fost creat pe baza calculatoarele Intel. Arhitectura sub Linux OS. A fost un sistem constând din 16 noduri (pe procesoarele 486DX4 / 100MHz, memorie de 16 MB și 3 adaptor de retea Pe fiecare nod, 3 "paralel" cabluri Ethernet de 10Mbit). A fost creată ca o resursă de calcul a proiectului "Proiectul de Științe Pământ și Space" (ESS).

În continuare în GSFC și alte diviziuni NASA, au fost colectate alte clustere mai puternice. De exemplu, mediul virtual extrem de paralel integrat) conține 64 de noduri de 2 procesoare de memorie Pentium Pro / 200MHz și 4 GB în fiecare, 5 comutatoare Ethernet rapid. Costul total al acestui cluster este de aproximativ 210 mii dolari. Proiectul Beowulf a dezvoltat o serie de înaltă performanță și specializată drivere de rețea (În special, șoferul pentru utilizarea simultană a mai multor canale Ethernet).

Arhitectura Beowulf.

Noduri de cluster.

Acesta este fie un singur procesor PC, fie servere SMP cu un număr mic de procesoare (2-4, eventual până la 6). Din anumite motive, optimul este considerat a construi clustere bazate pe sisteme de două procesoare, în ciuda faptului că, în acest caz, setarea clusterului va fi oarecum mai complicată (în principal, deoarece nu este permisă plăcilor de bază relativ ieftine pentru 2 procesoare Pentium II / III ). Merită instalarea pentru fiecare nod RAM 64-128MB (pentru sistemele cu două procesoare 64-256MB).

Una dintre mașini ar trebui să fie evidențiată ca un centru (cap) în cazul în care pentru a instala o unitate hard disk suficient de mare, un procesor mai puternic și mai multă memorie este posibilă decât nodurile de odihnă (de lucru). Este logic să se asigure (protejat) conexiunea acestei mașini cu lumea exterioară.

Când componentele de lucru sunt configurate, este foarte posibil să abandonați hard disk-urile - aceste noduri vor descărca OS prin rețeaua de la mașina centrală, care, pe lângă salvarea fondurilor, vă permite să configurați sistemul de operare și tot ce aveți nevoie doar de 1 timp (pe mașina centrală). Dacă aceste noduri nu sunt folosite simultan ca locuri de muncă personalizate, nu este nevoie să instalați carduri video și monitoare pe ele. Este posibilă instalarea nodurilor în rack (raftuire), care va reduce locul ocupat de noduri, dar va costa oarecum mai scump.

Este posibilă organizarea de clustere pe baza rețelelor existente de stații de lucru, adică. Stațiile de lucru ale utilizatorilor pot fi folosite ca noduri de cluster pe timp de noapte și în weekend. Sistemele de acest tip sunt uneori numite vacă (cluster de stații de lucru).

Numărul de noduri ar trebui să fie ales pe baza resurselor de calcul necesare și accesibile. mijloace financiare. Trebuie să se înțeleagă că, cu un număr mare de noduri, va trebui, de asemenea, să stabilească echipamente de rețea mai complexe și mai scumpe.

Principalele tipuri de rețele locale implicate în proiectul Beowulf sunt Gigabit Ethernet, Fast Ethernet și 100-VG Anylan. În cel mai simplu caz, se utilizează un segment Ethernet (10Mbit / sec pe perechea răsucite). Cu toate acestea, ieftinitatea unei astfel de rețele, datorită coliziunilor, se transformă în costuri mari generale pentru schimburile interprocesoare; Și performanța bună a unui astfel de cluster ar trebui să fie așteptată numai pe sarcini cu o structură paralelă foarte simplă și cu interacțiuni foarte rare între procese (de exemplu, opțiuni de busting).

Pentru a obține o bună performanță de schimb Interprocessor, Ethernet rapid duplex este utilizat pe 100Mbit / sec. În același timp, pentru a reduce numărul de coliziuni sau pentru a seta mai multe segmente de ethernet "paralel" sau conectați nodurile de cluster prin comutator (comutator).

Mai scump, dar și o opțiune populară este utilizarea comutatoarelor de tip Myrinet (1.28gbit / sec, duplex complet).

Mai puțin populare, dar, de asemenea, utilizate în momentul construirii clusterelor cu tehnologii de rețea, tehnologiile Clan, SCI și Gigabit Ethernet.

Uneori, pentru comunicarea dintre nodurile clusterului, mai multe canale de telecomunicații sunt utilizate în paralel - așa-numita "lipire de canale" (lipire de canal), care este frecvent utilizată pentru tehnologia Fast Ethernet. În acest caz, fiecare nod este conectat la comutatorul Ethernet rapid cu mai mult de un canal. Pentru a realiza acest lucru, nodurile sunt echipate cu mai multe cartele de rețea, fie cu plăci multiport Ethernet Fast Ethernet. Utilizarea legării canalelor în nodurile care rulează Linux Software vă permite să organizați o distribuție uniformă a încărcăturii de recepție / transmisie între canalele corespunzătoare.

Sistem de sistem.

Sistem de operare. Sistemul Linux este utilizat, de obicei, în versiunile optimizate special pentru calcule paralele distribuite. Kernelul Linux 2.0 a fost rafinat. În procesul de construire a clusterelor, sa dovedit a fi drivere standard Dispozitivele de rețea din Linux sunt foarte ineficiente. Prin urmare, au fost dezvoltate noi drivere, în primul rând pentru rețelele Fast Ethernet și Gigabit Ethernet și posibilitatea unei asociații logice a mai multor conexiuni de rețea paralelă între calculatoare personale (Similar cu legarea hardware a canalelor), care permite rețelelor locale ieftine cu lățime de bandă scăzută, pentru a construi o rețea cu o lățime de bandă totală ridicată.

Ca și în orice cluster, există o copie a kernel-ului OS pe fiecare nod de cluster. Datorită finalizării, unicitatea identificatorilor proceselor în cadrul întregului cluster și nu sunt asigurate noduri individuale.

Bibliotecile de comunicare. Cea mai comună interfață de programare paralelă din modelul de transfer de mesaje este MPI. Recomandat de implementare gratuită MPI - pachet Mpich dezvoltat în Laboratorul Național de Argon. Pentru clustere bazate pe Switcherul Myrinet, a fost dezvoltat un sistem HPVM, care include, de asemenea, implementarea MPI.

Pentru o organizație eficientă a paralelismului într-un sistem SMP, sunt posibile două opțiuni:

  1. Pentru fiecare procesor din mașina SMP generează un proces de MPI separat. MPI procesează în acest sistem Mesaje de schimb prin memorie partajată (trebuie să configurați Mpich în consecință).
  2. Numai un proces MPI începe pe fiecare mașină. În interiorul fiecărui proces MPI, paralelizarea se face în modelul "memorie partajată", de exemplu, folosind directivele OpenMP.

După instalarea implementării MPI are sens să testeze performanța reală a redirecționării rețelei.

În plus față de MPI, există și alte biblioteci și sisteme de programare paralele care pot fi folosite pe clustere.

Exemplu de implementare a clusterului Beowulf - Avalon

În 1998, în Los Alamos National Laboratory Astrofysicik Michael Warren și alți oameni de știință dintr-un grup de astrofizică teoretică au construit un supercomputer Avalon, care este un Beowulf-Claster bazat pe procesoare Dec Alpha / 533MHz. Avalon a constat inițial din 68 de procesoare, apoi a fost extins la 140. În fiecare nod, 256 MB de RAM, un hard disk de la 3,2 GB, un adaptor de rețea de la Kingston (costul total al nodului este de 1700 USD). Nodurile sunt conectate utilizând comutatoarele de port 46-36 de Ethernet Fast și "în centru" comutator de 12 port Gigabit Ethernet de la 3com.

Costul total al Avalonului este de 313 mii dolari, iar performanța sa Linpack (47,7 Gflops) ia permis să ia locul 114 în ediția a 12-a a listei Top500 (lângă sistemul procesor de 152 IBM SP2). Configurația de 70 de procesatori a Avalonului pe multe teste a arătat aceeași performanță ca și costul sistemului de procesor SGI Origin2000 / 195MHz, depășește 1 milion de dolari.

În prezent, Avalon este utilizat în mod activ în calcule astrofizice, moleculare și alte calcule științifice. La conferința SC "98, creatorii lui Avalon au prezentat un raport intitulat" Avalon: Un cluster alfa / Linux realizează 10 gflops pentru 150k $ "și a meritat un premiu în ceea ce privește prețul / performanța (" Premiul Bell Bell Bell "din" 1998 ").

Concluzie

Producătorii de frunte de microprocesoare: Sun Microsystems, Dell și IBM dețin același punct de vedere la viitorul industriei supercomputerelor: înlocuirea individuală, supercomputerele independente trebuie să vină un grup de servere de înaltă performanță combinate într-un cluster. Deja astăzi, sistemele de cluster distribuite sunt înainte de supercomputerele clasice moderne din punct de vedere al performanței: Cel mai puternic computer din lume - IBM ASCI White - are o capacitate de 12 teraflops, performanță rețelei [E-mail protejat] Se estimează la aproximativ 15 teraflops. În același timp, IBM ASCI White a fost vândut pentru 110 milioane de dolari, iar în întreaga istorie a existenței [E-mail protejat] A fost cheltuit aproximativ 500 de mii de dolari.

Literatură

2. http://www.beowulf.com.

3. http://newton.gsfc.nasa.gov/thehive/

4. Lobos, http://www.lobos.nih.gov.

5. http://parallel.ru/news/kentucky_klat2.html.

6. http://parlell.ru/news/anl_chibacitate.html.

7. http://parlell.ru/cluster/

8. http://www.ptc.spbu.ru.

MIMD Calculatoare

MIMD Computer are. N. Procesoarele efectuează independent N. Comandă fluxuri și prelucrare N. Fluxuri de date. Fiecare procesor operează sub controlul propriului său flux de comenzi, adică calculatorul MIMD poate efectua programe complet diferite în paralel.


Arhitectura MIMD este clasificată în continuare în funcție de organizația de memorie fizică, adică dacă procesorul are propria memorie locală și se referă la alte blocuri de memorie utilizând rețeaua de comutare sau rețeaua de comutare conectează toate procesoarele în memoria publică. Pe baza organizării memoriei, următoarele tipuri de arhitecturi paralele distinchează:

  • Calculatoare cu memorie distribuită (Memoria distribuită.)
    Procesorul poate accesa memoria locală, poate trimite și primi mesaje transmise peste procesoarele de conectare a rețelei. Mesajele sunt utilizate pentru a comunica între procesoare sau, echivalente cu citirea și scrierea blocurilor de memorie la distanță. Într-o rețea idealizată, costul trimiterii unui mesaj între două noduri de rețea nu depinde atât de locația ambelor noduri, cât și de traficul de rețea, dar depinde de lungimea mesajului.

  • Calculatoare cu memorie generală (partajată) (Adevărata memorie partajată.)
    Toate procesoarele sunt denumite în comun o memorie comună, de obicei printr-o anvelopă sau ierarhie. Într-un PRAM idealizat (mașină paralelă de acces aleatoriu - o mașină paralelă cu acces arbitrar), un model utilizat adesea în studiile teoretice ale algoritmilor paraleli, orice procesor poate accesa orice celulă de memorie în același timp. În practică, scalabilitatea acestei arhitecturi duce, de obicei, la o anumită formă de ierarhie de memorie. Frecvența accesului la memoria globală poate fi redusă prin salvarea copiilor datelor utilizate frecvent din memoria cache asociată fiecărui procesor. Accesul la această memorie de numerar este mult mai rapid decât accesul direct la memoria globală.

  • Calculatoare cu memorie partajată virtuală (partajată) (Memorie partajată virtuală.)
    Memoria totală lipsește. Fiecare procesor are propria memorie locală și poate accesa memoria locală a altor procesoare folosind "adresa globală". Dacă "adresa globală" indică memoria locală, atunci accesul memoriei este implementat utilizând mesajele trimise de rețeaua de comunicații.

Un exemplu de mașini cu memorie partajată poate fi:

  • Sun Microsystems (stații de lucru multiprocesor)
  • Silicon Graphics Challenge (stații de lucru multiprocesor)
  • Simetrie secvențială.
  • Convex.
  • Ray 6400.

Următoarele computere aparțin clasei de mașini cu memorie distribuită.

  • IBM-SP1 / SP2
  • Parsytec gc.
  • Cm5 (gândire mașină corporație)
  • Ray t3d.
  • Paragon (Intel Corp.)
  • nțube.
  • Meiko CS-2
  • AVX (computere paralele alex)
  • IMS B008.

Arhitectura MIMD cu memorie distribuită poate fi, de asemenea, clasificată pe lățimea de bandă a rețelei de navetă. De exemplu, în arhitectura în care perechile de la procesor și modul de memorie (elementul procesor) sunt conectate printr-o rețea cu topologii schgtka. Fiecare procesor are același număr de conexiuni de rețea, indiferent de numărul de procesoare de calculator. Lățimea totală de bandă a unei astfel de rețele crește liniar față de numărul de procesoare. Pe de altă parte, în arhitectură având o rețea cu topologii hyperkub. Numărul de conexiuni de procesor la rețea este o funcție logaritmică din numărul de procesoare, iar lățimea de bandă de rețea crește mai repede decât liniar în raport cu numărul de procesoare. În topologie clică Fiecare procesor trebuie să fie conectat la toate celelalte procesoare.


Rețea cu topologie 2D schgtka. (torp)

Rețea cu topologie 2D torp


Rețea cu topologie clică

Centrul Național pentru aplicații supercomputere (PC-ul universitar. Illinois, Urbana-Champaign)

MPI: interfața de trecere a mesajului

Numele "interfața de transmisie a mesajului", vorbește de la sine. Acesta este un mecanism bine standardizat pentru construirea de programe paralele în modelul de mesagerie. Există "legături standard" MPI în limbile C / C ++, Fortran 77/90. Există implementări gratuite și comerciale pentru aproape toate platformele supercomputerelor, precum și pentru rețelele de stații de lucru UNIX și Windows NT. În prezent, MPI este cea mai utilizată și mai dezvoltată interfață din clasa sa.

Beowulf - Clustere bazate pe sistemul de operare Linux

Mikhail Kuzminsky.

"Sisteme deschise"

Pe pragul Millenniei, avem toate șansele de a asista la monopolizarea industriei de calculatoare, care poate acoperi atât microprocesoare, cât și sistemele de operare. Desigur, vorbim despre microprocesoare de la Intel (Merced amenință la depășirea procesoarelor de arhitectură RISC) și OS de la Microsoft.

În ambele cazuri, succesul este în mare parte determinat de puterea mașinii de marketing și nu doar proprietățile "consumatorului" ale produselor produse. În opinia mea, comunitatea informatică nu a realizat încă amploarea posibilelor consecințe.

Unii experți compară potențialul monopolizare a pieței calculatorului cu dominația Monopoly IBM observată în anii '70 - atât în \u200b\u200bdomeniul principalilor, cât și în sistemele de operare. I. pentru o lungă perioadă de timp Lucrez cu această tehnică și, pe măsură ce Unix este distribuit în țara noastră, este din ce în ce mai conștient de multe avantaje ale sistemului de operare IBM MVS. Cu toate acestea, împărtășesc un punct de vedere comun că un astfel de monopol nu a contribuit la accelerarea progresului.

Universitățile occidentale, care, la un moment dat, printre primele trecute la utilizarea UNIX, încă în evoluțiile lor promițătoare se bazează pe acest sistem, iar Linux devine din ce în ce mai ales ca platformă. Acest articol este dedicat uneia dintre evoluțiile academice instructive.

Linux ca fenomen social

Nu mai suntem surprinși de faptul că Linux a arătat un fenomen remarcabil de viață pe calculator. În combinație cu cel mai bogat set de software distribuit liber GNU, acest sistem de operare a devenit extrem de popular cu utilizatorii necomerciali, așa cum avem și în străinătate. Popularitatea sa este în creștere. Versiunile Linux există nu numai pentru platforma Intel X86, ci și pentru alții arhitecturi de procesor, inclusiv Dec ALRHA, și sunt utilizate pe scară largă pentru aplicațiile Internet, precum și sarcinile naturii estimate. Pe scurt, Linux a devenit un fel de "sistem de operare al oamenilor". Aproape, totuși, spune că Linux nu are locuri slabe; Unul dintre ele este un sprijin insuficient pentru arhitecturile SMR.

Cea mai ieftină modalitate de a construi resurse de computere, inclusiv puterea de calcul, este de a construi un cluster. Supercomputerele masive-paralele cu memorie operațională distribuită fizic și logic pot fi, de asemenea, considerate clustere specifice. Cel mai viu exemplu al unei astfel de arhitecturi este faimosul computer IBM SP2.

Întreaga întrebare este că computerele (nodurile) din cluster se leagă. În supercomputerele "reale", specializate și, prin urmare, echipamente scumpe concepute pentru a oferi o lățime de bandă mare. În clustere, de regulă, se aplică standardele obișnuite de rețea - Ethernet, FDDI, ATM sau Hiri.

Tehnologiile de cluster utilizând sistemul de operare Linux au început să se dezvolte cu câțiva ani în urmă și au devenit disponibili cu mult înainte ca Wolfragk să apară pentru Windows NT. Deci, la mijlocul anilor 1990, proiectul Beowulf a provenit.

Eroul poemului epic

Beowulf este un epic scandinav care spune despre evenimentele din VII - prima treime a secolului al VII-lea, participantul cărora este eroul de același nume, care sa slăbit în bătăliile. Nu se știe dacă au fost concepuți autorii proiectului, cu care acum va lupta Beowulf (probabil cu Windows NT?), Cu toate acestea, imaginea eroică a făcut posibilă combinarea a aproximativ o jumătate de zeci de organizații din consorțiu (în principal universități) în Statele Unite. Nu se poate spune că centrele supercomputerelor domină între participanții la proiect, cu toate acestea, clusterele Loki și Megalon sunt instalate în cele mai cunoscute centre de calcul de înaltă performanță, cum ar fi Los Alamos și laboratorul SANDIA al Departamentului de Energie al SUA; Dezvoltatorii de proiecte principali sunt specialiști ai agenției NASA. În general, fără excepție, clusterele create de participanții la proiect primesc nume puternice.

În afară de Beowulf, este cunoscută o tehnologie de cluster mai strânsă - acum. În prezent, computerele personale conțin, de obicei, informații despre ele însele și sarcinile în sine, iar îndatoririle administratorului de sistem al unui astfel de cluster includ formarea acestor informații. Beowulf Clustere în această privință (adică din punctul de vedere al administratorului de sistem) este mai simplă: nodurile individuale nu știu despre configurația clusterului. Doar un nod selectat conține informații de configurare; Și numai el are o conexiune în rețea cu lumea exterioară. Toate celelalte noduri de cluster sunt combinate cu o rețea locală și numai "podul subțire" de la unitatea de comandă cu lumea exterioară este conectată.

Nodurile din tehnologia Beowulf sunt plăci de bază PC. De obicei, hard disk-urile locale sunt, de asemenea, implicate în noduri. Tipurile standard de rețele locale sunt utilizate pentru conectarea nodurilor. Vom lua în considerare această întrebare mai jos, mai întâi ne vom opri pe software.

Fundația sa din Beowulf este sistemul de operare Linux disponibil comercial disponibil, care poate fi achiziționat pe CD-ROM. La început, majoritatea participanților la proiect axat pe CD-urile publicate de Slackware și acum preferințele sunt preferate de versiunea Redhat.

În sistemul de operare obișnuit Linux, puteți instala mijloace bine cunoscute de paralelizare în modelul de mesagerie (Lam RMN 6.1, PVM 3.3.11 și altele). De asemenea, puteți utiliza standardul firelor R și mijloacele standard ale interacțiunii Interprocessor, care sunt incluse în orice sistem UNIX V. Ca parte a proiectului Beowulf, au fost efectuate evoluții suplimentare grave.

În primul rând, trebuie remarcat rafinamentul kernel-ului Linux 2.0. În procesul de construire a clusterelor, sa dovedit că driverele standard ale dispozitivului de rețea din Linux sunt foarte ineficiente. Prin urmare, au fost dezvoltate noi drivere (de către majoritatea evoluțiilor - Donald Becker), în primul rând pentru rețelele Ethernet și Gigabit Ethernet și este posibil să combine logic mai multe conexiuni de rețea paralele între computerele personale, care permite rețelelor locale ieftine cu mai mult de mai mult decât Viteza modestă., Construiți o rețea cu lățime de bandă cumulată ridicată.

Ca și în fiecare cluster, propria sa copie a kernelului OS locuiește în fiecare nod. Datorită finalizării, unicitatea identificatorilor proceselor în cadrul întregului cluster și nu sunt asigurate noduri individuale, precum și "livrarea la distanță" a semnalelor OS Linux.

În plus, este necesar să marcați descărcările în rețea (netbooting) când lucrați cu plăci de bază Intel PR 440FX, iar ele pot fi, de asemenea, utilizate pentru a lucra cu alte plăci de bază echipate cu AMI BIOS.

Caracteristicile foarte interesante oferă mecanisme de memorie virtuală de rețea sau memorie distribuită distribuită DSM (memorie partajată distribuită), permițându-vă să creați o "iluzie" specifică a memoriei globale a nodurilor.

Rețea - materie delicată

Deoarece pentru a paraleliza aplicațiile supercomputerelor în general, iar grupul de lățime de bandă mare și întârzieri scăzute în mesageria dintre noduri sunt necesare, caracteristicile rețelei devin parametri care definesc performanța clusterului. Alegerea microprocesoarelor pentru noduri este evidentă - acestea sunt procesoare de producție Intel standard; Dar cu topologia clusterului, a tipului de rețea și a circuitelor de rețea, puteți experimenta. În acest domeniu, a fost efectuată principala cercetare.

La analiza diferitelor carduri de rețea PC prezentate astăzi pe piață, a fost acordată o atenție deosebită unor astfel de caracteristici ca un suport eficient de difuzare (multicasting), sprijinind munca cu pachete mari de dimensiuni etc. Principalele tipuri de rețele locale implicate în proiectul Beowulf, - Acesta este Gigabit Ethernet, Fast Ethernet și 100-VG Anylan. (Capabilitățile tehnologiei ATM au fost, de asemenea, studiate în mod activ, dar în ceea ce este cunoscut autorul, sa făcut în afara acestui proiect.)

Cum să colectezi un supercomputer

După analizarea rezultatelor lucrărilor efectuate în proiectul Beowulf, puteți ajunge la următoarea concluzie: Soluțiile găsite vă permit să asamblați independent un cluster de înaltă performanță bazat pe componente standard pentru componentele PC-ului și utilizați software-ul obișnuit. Printre cele mai mari cazuri, este imposibil să nu marcați clusterul de 50 de noduri din Cesdis, care include 40 de noduri de prelucrare a datelor (bazate pe incendiu unic și cu două procesuri de inchiriere IRRO / 200 MHz) și 10 noduri de scalare (placă dublă a procesorului RENTIUM Р / 166 MHz). Raportul dintre performanțele costului / vârfului într-un astfel de cluster este foarte reușit. Întrebarea este cât de eficient este posibilă paralele cu aplicațiile - cu alte cuvinte, ceea ce va fi real, și nu performanța de vârf. Participanții la proiect lucrează acum la soluționarea acestei probleme.

Trebuie remarcat faptul că construcția de clustere de la PC-urile obișnuite devine destul de la modă astăzi într-un mediu științific. Unele instituții academice din țara noastră intenționează, de asemenea, să creeze clustere similare.

Când combinați computerele într-un cluster de altă putere sau arhitectură diferită, ei spun clustere eterogene (neomogene). Nodurile de cluster pot fi utilizate simultan ca stații de lucru personalizate. În cazul în care nu este necesar, nodurile pot fi facilitat semnificativ și / sau instalate în raft.

Stațiile de lucru standard de operare sunt utilizate, cel mai adesea, distribuite în mod liber - Linux / FreeBSD, împreună cu mijloace speciale de susținere a programării paralele și distribuția sarcinii. Programarea, de regulă, în cadrul modelului de transfer de mesaje (cel mai adesea - MPI). Este discutat mai detaliat în următorul paragraf.

Istoria dezvoltării arhitecturii clusterului.

Dec a anunțat pentru prima dată conceptul de sistem de cluster în 1983, determinându-l ca un grup de mașini de calcul combinate, care sunt o unitate unică de procesare a informațiilor.

Unul dintre primele proiecte care au dat un nume întregii clase de sisteme paralele - Clustere Beowulf - au originat în centrul Centrului de Zbor NASA Goddard Space pentru a sprijini resursele necesare de calcul ale proiectului de științe Pământ și Space. Proiectul Beowulf a început în vara anului 1994, iar un cluster de 16 procesare a fost colectat în curând pe procesoarele Intel 486dx4 / 100 MHz. Fiecare nod a fost instalat 16 MB de adaptoare Ethernet RAM și 3 de rețea. Pentru a lucra într-o astfel de configurație, au fost dezvoltate drivere speciale care distribuie traficul între cardurile de rețea disponibile.

Mai târziu în GSFC, un grup de mediu virtual integrat integrat extrem de paralel, structura cărora este prezentată în fig. 2. Acest cluster constă din patru subclintre E, B, G și DL, combinând 332 de procesoare și două gazde selectate. Toate nodurile acestui cluster rulează Redhat Linux.

În 1998, în Laboratorul Național Los Alamos de Astrofysicik Michael Warren și alți oameni de știință dintr-un grup de astrofizicie teoretică a construit un supercomputer Avalon, care este un cluster Linux bazat pe procesoare alfa 21164A cu o frecvență de ceas de 533 MHz. Inițial, Avalon a constat din 68 de procesoare, apoi extins la 140. În fiecare nod, a fost instalat 256 MB de memorie RAM, un hard disk pe un adaptor de rețea 3 GB și un adaptor de rețea Ethernet. Costul total al proiectului Avalon a fost de 313 mii de dolari, iar performanța prezentată pe testul Linpack - 47,7 Gflops, la lăsat să ia locul 114 în ediția a 12-a a listei Top500 de lângă sistemul procesor de 152 IBM RS / 6000 SP. În același timp 1998, la cea mai prestigioasă conferință din domeniul supercomputing-ului de înaltă performanță "98, Avalon a făcut un raport "Avalon: Un cluster alfa / Linux atinge 10 gflops pentru $ 150K", care a primit primul premiu în nominalizare "Cel mai bun preț / performanță" nominalizare.

În luna aprilie a acestui an, un grup de viteze +, constând din 64 de noduri cu două procesoare Pentium III / 733 MHz și 2 GB de memorie RAM și 2 GB de memorie RAM fiecare și cu un disc total de 27 GB au fost instalate pentru studiile biomedicale Universitatea Cornell. Nodurile funcționează sub controlul Windows. 2000 și combinate de Giganet Can.

Loturile de casete pe proiectul de raftari sunt implementate la Institutul Național de Sănătate al SUA din aprilie 1997 și este interesant de utilizarea Gigabit Ethernet ca mediu de comunicații. În primul rând, clusterul a constat din 47 de noduri cu două procesoare Pentium Pro / 200 MHz, 128 MB de RAM și un disc de 1,2 GB pe fiecare nod. În 1998 a fost implementat

următoarea etapă a proiectului este Lobos2, în timpul căreia nodurile au fost transformate în computere desktop, menținând combinația într-un cluster. Acum, Lobos2 este alcătuită din 100 de noduri de calcul care conțin două procesoare Pentium II / 450 MHz, 256 MB de memorie de disc și 9 GB de disc. În plus față de cluster, sunt conectate 4 computere de control cu \u200b\u200bo capacitate totală de raid de 1,2 tb.

Una dintre ultimele evoluții de cluster a fost supercomputerul AMD Presto III, care este un cluster Beowulf de 78 de procesoare Athlon. Computerul este instalat în Institutul Tehnologic din Tokyo. Până în prezent, AMD a construit 8 supercomputere unite în clustere utilizând metoda Beowulf care rulează Linux OS.

IBM Clustere

RS / 6000.

IBM oferă mai multe tipuri de sisteme slab legate bazate pe RS / 6000, combinate în clustere și care rulează software-ul multiprocesor / 6000 de software multifrocesor / 6000 de înaltă disponibilitate (HACMP / 6000).

Nodurile de cluster funcționează în paralel, partajând accesul la resursele logice și fizice utilizând capabilitățile Managerului de blocare incluse în HACMP / 6000.

Începând cu anunțul din 1991, produsul HACMP / 6000 a evoluat constant. Acesta include un manager de resurse paralele, un manager de blocare distribuit și un manager de volum logic paralel, iar acesta din urmă au oferit posibilitatea echilibrării încărcăturii la nivelul întregului cluster. Suma maximă Nodurile din cluster au crescut la opt. În prezent, nodurile cu procesare simetrică multiprocesare, construită utilizând comutatorul transversal de date, care oferă o creștere liniară a performanței cu o creștere a numărului de procesoare pe cluster.

Clusterele RS / 6000 sunt construite pe baza rețelelor locale Ethernet, Inel sau FDDI și pot fi configurate în diferite moduri în ceea ce privește îmbunătățirea fiabilității ridicate:

  • Rezervă caldă sau comutare ușoară în caz de eșec. În acest mod, nodul activ efectuează sarcini de aplicare, iar copia de rezervă poate efectua sarcini non-critice care pot fi oprite dacă este necesar atunci când este necesară ansamblul activ.
  • Rezervă simetrică. Similar cu rezervația fierbinte, dar rolul nodurilor principale și de rezervă nu este fixat.
  • Pickup sau mod reciproc cu distribuția încărcăturii. În acest mod, fiecare nod din cluster poate "ridica" sarcini care sunt efectuate pe orice alt nod de cluster.

IBM SP2.

IBM SP2 conduce în lista celor mai mari supercomputere de top500 în ceea ce privește numărul de instalare (instalare 141 și în total, 8275 astfel de computere funcționează cu un număr total de noduri de peste 86 mii. Baza acestor supercomputere se bazează pe arhitectură Ca o abordare a clusterului folosind un comutator central puternic. IBM folosește această abordare de mai mulți ani.

Arhitectura generală SP2.

Vederea generală a arhitecturii SP2 oferă orez. 1. Caracterul principal al arhitecturii este utilizarea comutatorului de mare viteză cu întârzieri scăzute pentru a conecta nodurile între ele. Această schemă extrem de simplă extrem de simplă, așa cum a arătat experiența, a fost extrem de flexibilă. În primul rând, nodurile SP2 erau un singur procesor, apoi au apărut noduri cu arhitectura SMP.

De fapt, toate detaliile sunt ascunse în structura nodurilor. Mai mult, nodurile sunt tipuri diferiteÎn plus, chiar și procesoarele din nodurile învecinate pot fi diferite. Oferă

flexibilitate excelentă de selecție a configurației. Numărul total de noduri din sistemul de calcul poate ajunge la 512 de noduri SP2 sunt de fapt calculatoare independenteIar direct piatra lor sunt vândute la IBM sub nume independente. Cel mai frapant exemplu este serverul SMP cu patru procesoare RS / 6000 44P-270 cu microprocesoare de Power3-II, care în sine pot fi atribuite clasei de computere ale clasei de mijloc sau chiar la mini supercomputere.

Microprocesoarele stabilite în nodurile SP2 dezvoltate în două linii arhitecturale: Power - Power2 - Power3 - Power3-II și linia PowerPC până la modelul 604e cu o frecvență de ceas de 332 MHz.

Tradiționalul pentru SP2 sunt "subțiri" (nod larg) și "nod larg" (nod larg) cu arhitectură SMP. Acestea pot fi instalate atât PowerPC 604e (de la două la patru procesoare) cât și POWER3-II (până la patru). Capacitatea bateriei nodurilor este de la 256 MB la 3 GB (când utilizați POWER3-II - până la 8 GB). Principalele diferențe dintre nodurile subțiri și largi se referă la subsistemul I / O. Nodurile largi sunt concepute pentru sarcini care necesită capabilități mai puternice I / O: sunt zece în ele sloturi PCI. (inclusiv trei 64 de biți) față de două sloturi în noduri subțiri. În consecință, numărul compartimentelor de montare a dispozitivelor de disc în nodurile largi este mai mare.

Viteza comutatorului este caracterizată prin valori reduse de întârziere: 1,2 ms (până la 2 ms cu numărul de noduri de peste 80). Acesta este un ordin de mărime mai bun decât ceea ce poate fi obținut în grupurile moderne Linux-Clusters Beowulf. Lățimea de bandă de vârf a fiecărui port: Este de 150 MB / s într-o singură direcție (adică transmisie de 300 MB / s pe duplex). Aceeași lățime de bandă posedă adaptoarele de comutare situate în nodurile SP2. IBM oferă, de asemenea, întârzieri excelente și rezultate de lățime de bandă.

Cele mai puternice noduri SP2 sunt "mari" (nod înalt). Nodul înalt este un complex constând dintr-un nod de calcul cu dispozitive de intrare / ieșire / ieșire conectate într-o cantitate de până la șase bucăți. Un astfel de nod are, de asemenea, o arhitectură SMP și conține până la 8 procesoare Power3 cu o frecvență de ceas de 222 sau 375 MHz.

În plus, nodul de acest tip conține o taxă de intrare / ieșire, care este de asemenea conectată la bord de sistem. Consiliul I / O conține două blocuri logice simetrice Saber prin care datele sunt transmise către dispozitivele externe, astfel

cum ar fi discurile și echipamentele de telecomunicații. Pe placa I / O există patru sloturi PCI pe 64 de biți și un slot cu 32 de biți (frecvență 33 MHz), precum și controlorii integrați UltraSCSI, Ethernet 10/100 Mbps, trei ori consecutiv și un port paralel.

Odată cu apariția nodurilor și a microprocesoarelor înalte ale POWER3-II / 375 MHz pe testele de la Linpack Parlell ale sistemului IBM SP2 au atins 723,4 gflops. Acest rezultat este realizat atunci când se utilizează 176 de noduri (procesor 704). Având în vedere că nodurile pot fi stabilite până la 512, acest rezultat arată că IBM SP2 elaborat în mod serios este aproape de 1 tflops.

Cluster Sun Solutions Sun Microsystems

Sun Microsystems oferă soluții de cluster bazate pe serverul de produs SPARCLAster PDB, în care serverele multiprocesor SMP SPARCSERVER 1000 și SparcCenter 2000 sunt folosite ca noduri, iar SparcServer 1000 poate intra până la opt procesoare, iar în SparcCenter 2000 până la 20 de procesoare Supersparcarc. Următoarele componente includ următoarele componente: două noduri de cluster bazate pe SPARCSERVER 1000 / 1000E sau SPARCCENTER 2000/2000E sau SPARCCENTORAGE ARRAY DISC, precum și un pachet pentru construirea unui cluster, inclusiv echipament de comunicații duplicat, managementul consolei consolei consolei consolei Consola, Software Software Software Software și pachet de servicii de cluster.

Pentru a asigura o performanță ridicată și disponibilitate a comunicărilor, clusterul suportă duplicarea completă a tuturor declanșatorilor de date. Nodurile de cluster sunt combinate cu canalele SunFastethernet cu lățime de bandă de 100 Mbps. Pentru a conecta subsistemele discului, interfața cu fibră de fibră optică cu o lățime de bandă de 25 Mbps, care admite îndepărtarea unităților și nodurilor unul de celălalt la o distanță de până la 2 km. Toate legăturile dintre noduri, noduri și subsisteme de disc sunt duplicate la nivelul hardware. Hardware, software și rețea de cluster înseamnă absența unui astfel de loc în sistem, o singură eșec sau un eșec al cărui sistem ar deriva întregul sistem.

Proiecte universitare

Dezvoltarea interesantă a Universității din Kentucky - Klat2 Cluster (Kentucky Linux Athlon Tested 2). Sistemul KLAT2 este alcătuit din 64 de noduri fără disc cu procesoare AMD Athlon / 700 MHz și 128 MB RAM pe fiecare. Software-ul, compilatoarele și bibliotecile matematice (Scalapack, Blacs și Atlas) au fost finalizate pentru a utiliza eficient tehnologia 3DNow! procesoare AMDCeea ce a făcut posibilă creșterea productivității. Interesul semnificativ este decizia de rețea utilizată, denumită "Network Verticooood Flat" (FNN). Fiecare nod are patru adaptoare de rețea Fast Ethernet de la SmartLink, iar nodurile sunt conectate utilizând nouă comutatoare de 32 de porturi. În același timp, pentru oricare două noduri există întotdeauna o conexiune directă printr-unul dintre comutatoare, dar nu este nevoie să conectați toate nodurile printr-un singur comutator. Datorită optimizării software-ului în cadrul arhitecturii AMD și topologia FNN, a fost posibilă obținerea unui raport de preț / performanță record - 650 USD pe 1 gflops.

Ideea divizării clusterului în secțiuni a primit o realizare interesantă în proiectul Chida Chida implementat în Laboratorul Național Argonne. Secțiunea principală conține 256 noduri de calcul, pe fiecare

din care există două procesoare Pentium III / 500 MHz, 512 MB de RAM și un disc local cu o capacitate de 9 GB. În plus față de partiția de calcul, secțiunea de vizualizare include (32 IBM Intellistation Calculatoare personale cu grafică MATROX Millenium G400, 512 MB de acționări RAM și 300 GB), secțiunea de stocare a datelor (8 iBM Servers NetFinity 7000 cu procesoare Xeon / 500 MHz și unități de 300 GB) și partiția de control (12 computere IBM Netfinity 500). Toate acestea sunt combinate de o rețea Myrinet care este utilizată pentru a sprijini aplicații paralele, precum și Gigabit Ethernet și Ethernet rapid pentru manageri și servicii de serviciu. Toate secțiunile sunt împărțite în computere "Orașe" (oraș). Fiecare dintre ei are "primarul", care își servește la nivel local "orașul", reducând încărcarea în rețeaua de servicii și furnizarea acces rapid la resursele locale.

Proiecte de cluster în Rusia

În Rusia, a existat întotdeauna o nevoie mare de resurse de calcul de înaltă performanță, iar costul relativ scăzut al proiectelor de cluster au servit ca un impuls serios la diseminarea pe scară largă a unor astfel de soluții în țara noastră. Unul dintre primii a apărut o "paritate" de cluster, asamblată în YVVIBD și constând din opt procesoare Pentium II asociate cu rețeaua Myrinet. În 1999, soluția de cluster bazată pe rețeaua SCI a fost testată în Noanw, care este, în esență, un pionier care utilizează tehnologia SCI pentru a construi sisteme paralele în Rusia.

Un cluster de înaltă performanță bazat pe rețeaua de comunicații SCI este instalat în Centrul de Cercetare Științific pentru Universitatea de Stat din Moscova. NIVC Cluster include 12 servere cu dublă procesor "Eximer" pe baza Intel Pentium. III / 500 MHz, un total de 24 de procesoare cu o performanță totală de vârf de 12 miliarde de operațiuni pe secundă. Costul total al sistemului este de aproximativ 40 de mii de dolari sau aproximativ 3,33 mii pe 1 gflops.

Nodurile de calcul al clusterului sunt conectate prin canale de rețea SCI unidirecționale într-un tor tridimensional 3x4 și conectați simultan la serverul central prin rețeaua auxiliară Fast Ethernet și comutatorul superstack 3Com. Rețeaua SCI este o realizare a clusterului acest sistem O instalare unică de calcul a unei clase de supercomputere orientată spre o clasă largă de sarcini. Rata maximă de schimb de date pe rețeaua SCI în aplicațiile utilizatorului este mai mare de 80 MB / s, iar timpul de latență este de aproximativ 5,6 μs. La construirea acestui cluster de calcul, a fost utilizată soluția integrată Wulfkit dezvoltată de soluțiile de interconectare delfin și a computerului Scali (Norvegia).

Principalul mijloc de programare paralelă pe cluster este MPI (interfața de trecere a mesajelor) a Scampi 1.9.1. Pe testarea Linpack, la rezolvarea unui sistem de ecuații liniare cu matrice de dimensiuni de 16000x16000, performanța reală a fost mai mare de 5,7 gflops. Pe testele pachetului NPB, performanța clusterului este comparabilă și, uneori, depășește performanța supercomputerelor familiei Cray T3e cu același număr de procesoare.

Domeniul principal de aplicare al grupului NIVZ MSU NIVC Computing este suport pentru cercetarea științifică fundamentală și procesul educațional.

Din alte proiecte interesante, trebuie remarcat decizia implementată în Universitatea Sf. Petersburg pe baza tehnologiei Fast Ethernet: Clusterele colectate pot fi utilizate și ca cursuri independente de formare independente, precum și ca o singură instalație de calcul care rezolvă un singur sarcină. În centrul științific Samara

ei au mers de-a lungul modului de a crea un cluster de calcul neomogene, care include computerele bazate pe procesoare alfa și Pentium III. La Universitatea Tehnică Sf. Petersburg, instalând pe baza procesoarelor alfa și a rețelei Myrinet fără a utiliza discuri locale pe nodurile de calcul. În Universitatea Tehnică de Aviație de Stat din UFA, un cluster este proiectat pe baza a douăsprezece posturi alfa, o rețea Fast Ethernet și OS Linux.

  • 2. Dispozitive logice aritmetice. Structura, abordarea pentru proiectare, ecuațiile principale ale Allu
  • 3. Organizarea circuitelor de transfer în cadrul secțiunii Uniunii. Extinderea schemei de transfer de biți, accelerată
  • 4. Înregistrați Allu este structura de bază a microprocesorului. Opțiuni pentru structurile de înregistrare a clădirilor. Gestionarea sarcinilor și sincronizarea
  • 7. Dispozitiv de gestionare a firmware-ului. Structura, modalitățile de a forma semnale de control, adresarea microcomandului
  • 8. Sistemul de comenzi și modalități de abordare a operanilor. Principiul transportorului de execuție a comenzilor
  • 9. Conflictele și modalitățile structurale de a le minimiza. Conflictele conform datelor, opririlor transportorului și implementării mecanismului de detașare
  • 10. Reducerea pierderilor pentru efectuarea comenzilor de tranziție și minimizarea conflictelor de gestionare
  • 11. Clasificarea sistemelor de memorie. Organizarea sistemelor de memorie în sistemele de microprocesoare
  • 12. Principiile memoriei de numerar. Modalități de afișare a datelor de la memoria RAM la memorie
  • 13. Moduri de acces la memorie directă. Structurile controlorilor PDP
  • 14. Principiile memoriei virtuale
  • 15. Structuri și principii tipice de funcționare a sistemelor de microprocesoare
  • 16. Principalele moduri de funcționare a sistemului de microprocesor. Implementarea programului principal, apelând subrutine
  • 17. Principalele moduri de funcționare a sistemului de microprocesor. Prelucrarea întreruperilor și a excepțiilor
  • 18. Sisteme cu un sondaj ciclic. Blocul de întrerupere prioritară
  • 19. Exchange informații între elementele din sistemele de microprocesoare. Autostradă arbitru
  • Partea 2
  • 20. Clasificarea arhitecturilor moderne de microprocesoare. Arhitectura cu set de comandă completă și abreviată, arhitectură supercalar
  • 21. Clasificarea arhitecturilor moderne de microprocesoare. Princeton (fundal Neymanan) și arhitectura Harvard
  • 22. Structura microcontrolerelor moderne pe 8 biți CRISC-Architecture
  • 22 (?). Structura microcontrolerelor moderne de 32 de biți CRISC-Architecture
  • 23. Procesoarele de procesare digitală: principiile organizării, structura generalizată
  • 24. Procesoare de uz general pe exemplul arhitecturiiIn
  • 25. Clasificarea arhitecturilor sistemelor de computere paralele. Sisteme cu memorie partajată partajată
  • 26. Clasificarea arhitecturilor sistemelor de computere paralele. Sisteme de memorie distribuite
  • 27. Sisteme de calcul al transportorului vectorilor. Memorie cu stratificare. Caracteristicile Structurii SistemCracy-1
  • 28. Sisteme de computere matrice. Caracteristicile sistemelor de memorie și comutatoare de construcție
  • 29. Mașini de control al datelor. Principiile de funcționare și caracteristicile construcției lor. Metoda de prezentare a programului grafic
  • 30. Sisteme cu o structură programabilă. Medii de calcul uniforme
  • 31. Sisteme de calcul systolice
  • 32. Sisteme de calcul al clusterului: definiție, clasificare, topologie
  • 32. Sisteme de calcul al clusterului: definiție, clasificare, topologie

    Sistemele de calcul al clusterului au devenit o continuare a dezvoltării ideilor stabilite în arhitectura sistemelor MPA. Dacă un modul de procesor este realizat ca un nod de calcul complet în sistemul MPA, atunci computerele seriale sunt utilizate ca noduri de calcul.

    Cluster.- Acesta este un set cuplat de computere cu drepturi depline utilizate ca o singură resursă de calcul. Ca noduri de cluster, pot fi utilizate atât aceleași (clustere omogene) cât și mașini diferite (clustere heterogene). Prin arhitectura sa, sistemul de computere cluster este slab deținut. Pentru a crea clustere, fie computere personale simple cu un singur procesor sunt utilizate, de obicei, sau servere SMP de două sau patru procesoare. Nu impune restricții asupra compoziției și arhitecturii nodurilor.

    La nivelul hardware cluster.- o combinație de sisteme independente de calcul unite de rețea.

    Clasificarea simplă a sistemelor de cluster se bazează pe metoda utilizării matricei de discuri: împreună sau separat.

    Cluster Configuration fără discuri partajate:

    Configurația clusterului cu discuri partajate:

    Sunt prezentate structurile clusterelor de două noduri, a căror coordonare este asigurată de linia de mare viteză utilizată pentru a face schimb de mesaje. Poate fi o rețea locală utilizată și și nu este inclusă în computerele cluster sau o linie dedicată. În cazul unei linii dedicate, unul sau mai multe noduri de cluster vor avea acces la o rețea locală sau globală, conectivitate între clusterul server și sistemele de clienți la distanță.

    Diferența dintre grupurile reprezentate este că, în cazul unei rețele locale, nodurile folosesc matrice locale de discuri și, în cazul unei linii de nod selectate, o gamă excesivă de hard disk independente sau așa-numitele RAID (redundanarrayofindependentDisks) este impartit. RAID constă în mai multe discuri controlate de controler, interconectate prin canale de mare viteză și percepute de sistemul extern ca întreg. În funcție de tipul de matrice utilizate, pot fi furnizate diferite grade de toleranță la defecțiune și viteză.

    Clasificarea clusterelor pentru metodele de grupare utilizate, care determină principalele caracteristici funcționale ale sistemului:

    ∙ clustering cu rezervare pasivă;

    ∙ clustering cu rezervare activă;

    ∙ servere independente;

    ∙ servere cu conectare la toate discurile;

    ∙ Servere cu discuri comune.

    Clusteringul de rezervare este metoda cea mai veche și universală. Unul dintre servere își asumă întreaga încărcătură de calcul, în timp ce cealaltă rămâne inactivă, dar gata să accepte calcule atunci când serverul principal eșuează. Serverul activ (sau primar) trimite periodic un mesaj de rezervă cu un server de backup (secundar). În absența mesajelor de tactare, care este considerată ca o eroare primară a serverului, serverul secundar preia controlul.

    Rezervarea pasivă pentru clustere este neobișnuită. Termenul "cluster" se referă la o varietate de noduri interdependente implicate activ în procesul de calcul și creând în comun iluzia unei mașini puternice de calcul. Această configurație utilizează de obicei conceptul de sistem cu un server secundar activ și există trei metode de grupare: servere independente, servere fără partajarea de discuri și servere de partajare a serverului.

    În prima metodă, fiecare nod de cluster este considerat ca un server independent, cu discuri proprii și niciunul dintre discurile din sistem nu este împărțit.

    Pentru a reduce costurile de comunicare, majoritatea clusterelor sunt în prezent constând în servere legate de discuri comune, reprezentate de obicei de matricea de disc RAID. Una dintre opțiunile pentru această abordare sugerează că schimbul de discuri nu se aplică. Discurile comune sunt împărțite în partiții, iar fiecare nod de cluster este alocat. Dacă unul dintre noduri refuză, clusterul poate fi reconfigurat în așa fel încât drepturile de acces la secțiunea sa din discul comun să fie transmise unui alt nod. Cu o versiune diferită, mai multe servere sunt separate în timp acces la discuri comune, astfel încât orice nod are acces la toate secțiunile tuturor discurilor comune. Această abordare necesită instrumente de blocare care să garanteze că numai unul dintre servere va avea acces la date în orice moment.

    Topologia perechilor de cluster:

    Topologia clusterului par utilizat în organizarea a două sau patru clustere numerice. Nodurile sunt grupate în perechi, arrays de disc sunt îmbinate cu ambele noduri care fac parte din perechi, iar fiecare nod de perechi are acces la toate matricele de disc ale acestei perechi. Unul dintre nodurile perechii este folosit ca o copie de rezervă pentru altul.

    FOUR-CHOSL Cluster Steam este o expansiune simplă a unei topologii cu două zone. Ambele perechi de cluster din punctul de vedere al administrației și a setărilor sunt tratate ca un singur întreg.

    Topologie N.+ 1:

    Topologie N. + 1 Vă permite să creați clustere de două, trei și patru noduri. Fiecare matrice de disc este conectată numai la două noduri de cluster. Rețele de disc sunt organizate conform schemei RAID1 (oglindire). Un server are o conexiune cu toate marginea discurilor și servește ca o copie de rezervă pentru toate celelalte noduri (de bază sau active). Serverul de backup poate fi utilizat pentru a asigura un grad ridicat de pregătire într-o pereche cu oricare dintre nodurile active.

    Topologie N. × N. Similar cu topologia N. + 1 vă permite să creați clustere de două, trei și patru noduri, dar spre deosebire de o mai mare flexibilitate și scalabilitate. Numai în această topologie, toate nodurile de cluster au acces la toate matricele de disc, care, la rândul lor, sunt construite în conformitate cu schema RAID1 (oglindire). Scalabilitatea topologiei se manifestă în simplitatea adăugării nodurilor suplimentare la matricele de cluster și de disc, fără a schimba conexiunile din sistem.

    Topologia vă permite să organizați un sistem de toleranță la defecțiuni în cascadă, în care prelucrarea este transferată de la un nod defect la backup și, în cazul unei defecțiuni a ansamblului de rezervă următoare etc., topologia generală are o mai bună toleranță la vată și flexibilitate comparativ cu alte topologii.

    Topologie N.× N.:

    Topologie cu acces complet separat:

    Topologie cu acces complet separat permite conectarea fiecărui matrice de disc cu un singur nod de cluster. Se recomandă numai acele aplicații pentru care arhitectura accesului complet separat este caracteristică.

    Blue Gene / L și SGI Altix Familia.

    Ca un software de bază pentru organizarea calculatorului pe sistemele de cluster, se ia în considerare Windows Compute Cluster Server (CCS) 2003. Acesta primește caracteristicile sale generale și compoziția serviciilor care operează pe nodurile clusterului.

    La intrarea în această secțiune, sunt date regulile de lucru cu CC de la început și de gestionare a tuburilor. Descrie detaliile planificatorului CCS în executarea sarcinilor pe cluster.

    1.1. Arhitectura procesoarelor de înaltă performanță și a sistemelor de cluster

    În istoria dezvoltării arhitecturii procesorului de calculator, se pot distinge două etape majore:

    • Prima etapă - o creștere a frecvenței ceasului procesoarelor (până la 2000),
    • Etapa a 2-a - apariția procesatorilor multi-core (după 2000)

    Astfel, o abordare bazată pe SMP (multiprocesare simetrică), care sa dezvoltat atunci când se construiește servere de înaltă performanță, în care mai multe procesoare împărtășesc resursele de sistem și, în primul rând, RAM (a se vedea figura 1.1), sa mutat la nivelul a procesorului nucleelor \u200b\u200bdin interiorul nucleelor.


    Smochin. 1.1.

    Pe drumul către procesoare multi-core, prima tehnologie de hiper-filetare a apărut, aplicată pentru prima dată în 2002 în procesoare Intel Pentium 4:


    Smochin. 1.2.

    În această tehnologie, două procesoare virtuale împărtășesc toate resursele unui procesor fizic, și anume cache, transportor de execuție și servomotoare individuale. În același timp, dacă un procesor virtual a luat o resursă comună, al doilea se va aștepta la eliberarea sa. Astfel, procesorul de hiper-filetare poate fi comparat cu un sistem de operare multi-tasking care asigură fiecărui proces care funcționează computerul virtual cu o gamă completă de fonduri și planificarea procedurii și a timpului acestor procese în echipamentul fizic. Numai în cazul hiper-filetare, toate acestea se întâmplă la un nivel hardware semnificativ mai mic. Cu toate acestea, două fluxuri de comenzi vă permit să încărcați mai eficient servomotoarele procesorului. Creșterea reală a performanței procesorului de utilizarea tehnologiei hiper-filetare este estimată de la 10 la 20%.

    Un procesor dual-core complet (a se vedea figura 1.3), pe sarcini individuale demonstrează creșterea performanței de la 80 la 100%.


    Smochin. 1.3

    Astfel, dual-core și, în cazul general, procesor multi-core , Poate fi considerată ca SMP într-o miniatură, care nu are nevoie să folosească plăci de bază multiprocesoare complexe și scumpe.

    În plus, fiecare kernel poate (cum ar fi, de exemplu, în procesorul Intel Pentium EXTREPY EDITION 840) suportă tehnologia hiper-filetare și, prin urmare, un astfel de procesor dual-core poate efectua simultan patru fluxuri de software.

    La începutul anului 2007, Intel a introdus procesorul de 80 de cipuri de 80 de cip, numit TERAFLOPS CERCET CHIP (http://www.intel.com/research/platform/terascale/teraflops.htm). Acest procesor poate atinge performanța de 1,01 teraflops cu o rată de ceas minimă a kernelului 3.16 GHz și tensiunea de 0,95 V. În acest caz, totalul consumul de energie Cipul este de numai 62 W.

    Conform previziunilor Intel, versiunile comerciale ale procesatorilor cu un număr mare de nuclee vor apărea în următorii 5 ani, iar până în 2010 un sfert din toate serverele furnizate vor avea TERAFOP performanţă.

    Sisteme de calcul al clusterului și arhitectura lor

    Cluster. - Acesta este un sistem local (localizat geografic într-un singur loc) constând dintr-o varietate de computere și rețea independente care le leagă. În plus, clusterul este un sistem local deoarece este gestionat într-un domeniu administrativ separat ca un singur sistem informatic.

    Noduri de calculator. Din care constă, sunt computere standard, universale (personalizate) utilizate în diverse domenii și pentru o varietate de aplicații. Nodul computațional poate conține fie un microprocesor, fie mai multe formare, în ultimul caz, configurație simetrică (SMP).

    Componenta de rețea a clusterului poate fi fie o rețea locală obișnuită, fie să fie construită pe baza tehnologiilor speciale de rețea care oferă transmisia de date super-putere între nodurile de cluster. Rețeaua de cluster este proiectată să integreze nodurile de cluster și, de obicei, separate de o rețea externă prin care utilizatorii sunt accesați la cluster.

    Software-ul de cluster este alcătuit din două componente:

    • instrumente de dezvoltare / programare și
    • instrumente de gestionare a resurselor.

    Instrumentele de dezvoltare includ compilatoarele pentru limbi, bibliotecă diverse destinație, instrumente de măsurare a productivității, precum și debughiri, care, toate împreună, vă permit să construiți aplicații paralele.

    Software-ul de gestionare a resurselor include instalații, instrumente de administrare și planificare a lucrărilor.

    Deși există o mulțime de modele de programare pentru procesarea paralelă, dar, în prezent, abordarea dominantă este un model bazat pe "Mesaj de mesaje" (interfața de trecere a mesajului). MPI este o bibliotecă de funcții cu care în programele în limbile C sau Fortran pot fi transmise mesaje între procesele paralele, precum și controlul acestor procese.

    Alternativele la această abordare sunt limbi bazate pe așa-numitul "Spațiu Global Adresă Distribuită" (GPAS - Spațiul de adrese partiționate globale), ale cărui reprezentanți tipici sunt limbile HPF (paralele unificate C).