Karpenko și
Sistem multiprocesor (MIMD-sistem).
Calculare clustere.
Așa cum am observat clusterului de calcul - un sistem MIMD (multicalculator) constând dintr-o multitudine de calculatoare individuale (noduri de cluster Compute), unite printr-un mediu comun de comunicare. Fiecare nod are propria memorie locală. În această memorie fizică comună pentru nodurile de obicei, nu există. mass-media de comunicare în mod tipic de calcul clustere permite nodurilor să comunice între ele numai prin transmiterea de mesaje. În general, un cluster de calcul ar trebui să fie văzută ca un sistem hardware și software unificat cu un sistem comun de comunicare, un singur centru de control, și planificarea capacității.
Clusterul nodurile de calcul poate funcționa sub diferite sisteme de operare. Cu toate acestea, cel mai frecvent utilizate sistemele Unix standard. Rețineți că punctul de vedere al dezvoltării aplicării programelor paralele nu au diferențe fundamentale între clustere de calcul omogene și MPP-sisteme.
clusterelor computațională sunt clasificate în primul rând de natura procesatorilor nodale (vezi. Fig. 1).
Grupurile de calcul de clasificare pe tipul de procesoare nod.
Ca de calcul nodurile de cluster, de obicei folosesc calculatoare personale, stații de lucru și SMP-server. În cazul în care nodul de cluster utilizează SMP-sistem, un astfel de grup de calcul numit SMP-cluster.
În cazul în care nodurile cluster de calculatoare sunt utilizate calculatoarele personale sau stațiile de lucru, normal este situația atunci când, în timpul soluția problemei pe un cluster pe nodurile cluster continuă să execute o secvență de utilizatori sarcini. Ca urmare, performanța relativă a clusterului nodurile modificări în mod aleatoriu și pe scară largă. Soluția ar adopta în mod automat ortografia programului de utilizator. Cu toate acestea, o soluție eficientă la această problemă pare a fi foarte problematică. Situația este agravată în cazul în care există servere de fișiere, de calcul nod de cluster între calculatoare. În același timp, în timpul soluția problemei pe un cluster pe o gamă largă poate varia în funcție de mediu de comunicare de încărcare, ceea ce face ca costurile de comunicare de sarcini imprevizibile.
Fig.1. Clasificarea nodurilor de cluster de calcul.
Clasificarea clusterului de calcul nodurile omogenitate.
Ca orice MIMD-sisteme, clustere de calcul sunt împărțite în sisteme omogene de cluster (clustere omogene de calcul) și sisteme de clustere eterogene (clustere eterogene de calcul).
De obicei, atunci când oamenii vorbesc despre clustere de calcul implica clustere de calcul omogene. Cu toate acestea, de multe ori atunci când construirea unui cluster trebuie să utilizeze procesoare care diferă nu numai în performanță, ci și în arhitectură, de procesoare nod de cluster. Prin urmare, clusterului de calcul, treptat, omogen poate deveni inegală. Această eterogenitate creează următoarele probleme. Diferența în performanța procesoarelor complică alocarea de muncă în rândul procesoarelor. Diferența de procesoare arhitectura necesită pregătirea de diferite fișiere executabile pentru diferite noduri, iar în cazul unor diferențe de reprezentare a datelor, și poate necesita conversia formatelor de la trimiterea de mesaje între noduri.
Clasificarea de calcul funcționalitate nod de cluster.
Clusterul nodurile de calcul poate fi un calculator complet care poate funcționa ca o unitate de sine stătătoare. Performanța unui astfel de grup este de obicei scăzută.
Pentru a crea blocuri de înaltă performanță sistem de calculator nod de cluster computing făcut mult mai simple decât în primul caz (nu este pe deplin funcțional). Nu este nevoie de a furniza carduri de componente de calculator grafice, monitoare, hard disk-uri și alte periferice. Echipament periferic este instalat pe un singur sau câteva calculatoare de control (HOST-calculatoare). O astfel de abordare poate reduce semnificativ costul sistemului.
În clasificarea clusterelor utilizate, precum și o serie de alte clasificări. Să luăm în considerare două dintre ele (a se vedea figura 2 ...):
- Clasificarea componentelor standard;
- Clasificarea orientării funcționale.
Fig.2. Clasificarea clustere de calcul.
clustere Clasificarea de calcul pentru componente standard.
În ceea ce privește componentele standard sunt două clase de sisteme de dispersie se pot distinge:
- cluster de calculatoare este construită în întregime din componente standard;
- atunci când construirea unui cluster folosit exclusiv componente sau nu distribuite pe scară largă.
Clustere de calcul din prima clasă au prețuri mici și întreținere ușoară. tehnologii cu dispersie larg răspândite l-au primit ca un mijloc de creare a unui sistem relativ ieftine supercomputer-clasa a componentelor de producție în masă.
grupuri de clasa a doua permit să se obțină performanță foarte mare, dar ele sunt în mod natural mai scumpe.
Clasificarea de calcul clustere în orientarea lor funcțională.
Din punct de vedere funcțional sistemele de grup pot fi împărțite în sisteme de mare dispersie (de înaltă performanță) - HP-clustere și disponibilitatea de cluster sistem de înaltă (High Availability) - HA-clustere. clusterele mari sunt utilizate în domenii care necesită o putere de calcul semnificativă. Clusterele disponibilitate ridicată sunt utilizate ori de câte ori este posibil costul de nefuncționare depășește valoarea cheltuielilor necesare pentru a construi un sistem tolerant la defecte.
clustere de înaltă performanță. Performanța clusterului de calcul, invidie, evident, performanța unităților sale. Pe de altă parte, performanța clusterului ca sistem de sjakoj cu memorie distribuită, performanța este puternic dependentă de mediul de comunicare. De obicei, construcția de clustere de calcul utilizat mediu de comunicare destul de ieftine. Astfel de mass-media oferă performanțe pentru un singur - două ordine de mărime mai mici decât performanța supercomputere mass-media de comunicare. Prin urmare, nu există o mulțime de sarcini care pot fi abordate în mod eficient la sistemele de grup mare.
Influența performanței mediului de comunicare asupra performanței generale a sistemului de cluster depinde de natura sarcinii. În cazul în care sarcina necesită o comunicare frecventă între subprobleme care sunt rezolvate la diferite noduri de calcul cluster, mediul de comunicare de viteză ar trebui să se acorde o atenție maximă. Prin urmare, partea de jos a problemei interacționează unul cu altul, mai puțină atenție poate fi acordată pentru a accelera mediul de comunicare.
O varietate de tehnologii de conectare a calculatoarelor într-un cluster. Aceste tehnici vor fi discutate în capitolul următor.
Locație HP-clustere între sisteme moderne de înaltă performanță, ilustrează exemplul următor: primele 500 de calculatoare de înaltă performanță din lume «Top500» calcul grupuri de noduri ieftine ocupă aproximativ jumătate din listă.
În România cel mai mare client HP clusters - industria de petrol și gaze, în clustere MDM sunt tot mai folosite pentru procesarea datelor seismice tridimensionale obținute în timpul explorării.
Disponibilitate ridicată clustere. Printre varietatea de tipuri de sisteme moderne de calcul HA HA clusters asigura un nivel ridicat de toleranță la erori la cel mai mic cost.
În general vorbind, pentru a se asigura că sistemul de calcul are o disponibilitate ridicată, este necesar ca componentele sale sunt sistemul cel mai de încredere pentru a fi tolerant la erori, precum și pentru a fi în măsură să înlocuire „la cald“ a componentelor (inepuizabile). Datorită clustering în cazul defectării unuia dintre sistemele de calculatoare, sarcinile pot fi în mod automat (sistem de operare) este redistribuit între celelalte (care pot fi reparate) de calcul nodurile clusterului. Astfel, failover de cluster oferă redundanță tuturor componentelor vitale ale unui sistem informatic. Cele mai populare sisteme tolerante la defecte comerciale sunt în prezent clusterele cu doua noduri.
Retele de calculatoare.
Standuri o altă clasă de calcul clustere - rețele (GRID), încorporează o varietate de resurse de cluster, multi-procesor și calculatoare cu un singur procesor, care pot aparține unor organizații diferite și să fie situate în diferite țări.
Dezvoltarea de programe paralele pentru rețele de calculatoare este complicată de următoarele probleme. Resurse (număr de noduri, arhitectura lor, de performanță), care sunt alocate sarcina este determinată numai în momentul rețelei de procesare pentru a îndeplini această sarcină. Prin urmare, programatorul nu este în măsură să dezvolte un program pentru o anumită configurație de rețea de calculatoare. Programul trebuie să fie dezvoltate astfel încât să poată fi dinamic (fără recompilare) să se auto-regla la configurația de rețea selectată. În plus, mediul de comunicare se adaugă variabilitatea neomogenitate a caracteristicilor sale, a numit schimbările de sarcină de rețea. În cel mai bun caz, programul ar trebui să fie dezvoltate ținând cont de eterogenitatea acestui mediu de comunicare, aceasta este o sarcină foarte dificilă. Așa cum am menționat mai sus, o problemă similară apare, de asemenea, pentru calcularea clusterelor care se bazează pe computere personale sau stațiile de lucru.
sisteme de calcul cu dispersie performanțe eficiente (aplicații reale de performanță - RAP) este estimat ca 5-15% din performanțele lor de vârf (Peak Performance Publicat, PAP). Pentru comparație: cele mai bune sisteme maloprotsessornyh de procesoare vectoriale, acest raport este estimat ca 30-50%.