Clusterele în Linux

Clusterele pe Linux

Tema acestui articol - computing paralel pe Linux. Acest articol discută despre câteva întrebări frecvente despre organizarea clusterelor, software-ul de cluster, cum ar fi PVM. La sfârșitul acestui articol, veți găsi link-uri pentru a afla mai multe detalii despre acest subiect.

Informații generale despre clustere


Mai întâi trebuie să înțeleagă ceea ce este un cluster în general. De regulă, cluster este format din noduri (calculatoare individuale) și rețeaua unindu-le. Pentru a construi rețeaua de obicei folosită tehnologia Fast Ethernet (100Mbit / sec), dar în cel mai simplu caz (de exemplu, crearea cluster-ului în casă sau într-un scop demonstrativ) și adecvat, un segment Ethernet la 10Mbit / sec.

organizațiile de cercetare, de obicei, clustere sunt folosite pentru a simula diferite tipuri de sarcini sau pentru calcule complexe. Prețul de supercomputere este prohibitiv pentru majoritatea organizațiilor, astfel încât ideea de a pune împreună „supercomputer“ dvs. de „material improvizat“ - statii de lucru bazate pe procesoare Intel. de producție de performanță procesoare Intel acum a ajuns practic la nivelul de arhitectura de procesor RISC (procesoare Intel Pentium III inclusiv utilizat arhitectura CISC, și P4 - VLIW).

Punerea clusterul

Configurația nodurilor de cluster depinde de sarcinile pe care le vor efectua. În cazul în care obiectivul dvs. - crearea cluster-ului în sine, fără a rezolva ceea ce unele sarcini importante costum și o mașină veche, cu procesor de 482-(de preferință DX2 sau DX4). Pentru decizii cu privire la sarcini importante se potrivesc cu calculatoare Pentium II procesor de 400Mhz sau Pentium III (de la 600Mhz).

Un calculator (nod) este centrală. Este de dorit ca el a fost mai puternic decât restul nodurile clusterului. Este necesar să se stabilească un procesor mai puternic, de două ori mai mult RAM decât la alte site-uri (cel puțin 128MB). De preferință, pe un calculator central pentru a utiliza SCSI-disc, dar se potrivesc și ATA133 / 7200 rpm. Este mai bine pentru a pune un SCSI rapid, iar la site-urile de a renunța la hard disk - acesta va fi mai ieftin. Toate aceste cerințe - este de dorit, dar nu este obligatoriu.

Acum, pe la rețea. Așa cum am scrie acest lucru, este recomandabil să se utilizeze un Fast Ethernet. Dacă numărul de noduri este suficient (20) de mare pentru a minimaliza ciocnirile trebuie împărțite în segmente separate sau utilizate pentru comutatorul lor de conectare (swith), în loc de un repetor (hub).
În unele cazuri, este logic să împartă rețeaua în segmente, chiar și cu un număr mic de noduri (8), de exemplu, dacă utilizați Ethernet (10Mbit / sec).

Dacă utilizați Ethernet pentru a renunța la unitatea hard disk nu este recomandată. Clusterul va rula foarte lent, va exista un număr foarte mare de coliziuni.
Una dintre cele mai eficiente soluții pentru nodurile de comunicare ale cluster-ului este de a utiliza 1.28GBit-comutatoarelor Myrinet. Puteți utiliza, de asemenea, tehnologia Gigabit Ethernet.

software-ul

V poate fi utilizat ca sistem de operare:
  1. Linux
  2. FreeBSD
  3. Windows NT

Este de preferat să se utilizeze orice sisteme bazate pe Unix, deoarece aceste sisteme de operare sunt cea mai eficientă utilizare a resurselor de rețea. Soluția optimă este sistemul de operare Linux - este gratuit și destul de ușor de configurat.

Puteți folosi orice sistem Linux cu nucleu versiunea 2.2. * Și mai mult. Aș recomanda să utilizați sasea versiune Linux RedHat, deoarece are resurse minime de sistem (minim de configurare - 486 33MHz / 8MB RAM / 120MB HDD) și în distribuția include un relativ nou software peste versiunea 5.2, care poate fi de asemenea folosite pentru a construi cluster. versiune kernel utilizată de această distribuție (RH 6) 2.2.5-15.

După instalare și configurare (configurarea rețelei) a sistemului de operare pe care doriți să instalați un compilator special. Faptul că distribuit gratuit compilator gcc / G77 / egcs nu asigură nivelul necesar de programe de optimizare pentru Intel (PII, PIII). Se recomandă utilizarea compilatoare comerciale, de exemplu, incluse în proiectul IGP Workstation.
Dacă utilizați Windows NT ca sistemul de operare al cluster-ului, puteți selecta, de asemenea, un compilator de la Intel, optimizate pentru platforma Intel.

În prima și în a doua versiune de testare compilatoare disponibile. Shareware-versiune a pachetului IGP puteți descărca pe site-ul IGP Group. Un test (14 zile) Intel versiune compilator poate fi descărcat de pe site-ul Intel.

După instalarea compilatorul nevoie pentru a instala sarcini mediu distribuit. In acest articol voi descrie lucru cu mediul PVM, cu toate că sunt disponibile alte mijloace și MPI, Condor.

MPI cameleon este o implementare a industriei standard de 1.1 MPI. MPI Chameleon permite programelor să fie executate în cadrul unui sistem local sau pe un cluster de rețea folosind TCP-conexiuni.
mediu Condor oferă o sarcină uniformă pe cluster-ul de procese în mai multe mașini migratoare.

Am ales varianta mai ușoară - PVM (Parallel Virtual Machine). PVM asigură condițiile pentru executarea unuia (sau mai multe - în majoritatea cazurilor) sarcinile pe mai multe mașini. PVM Cu alte cuvinte, pur și simplu distribuie procesele pe nodurile clusterului ca planificatorul sistemului de operare alocă sarcini timp CPU pentru a efectua mai multe sarcini.
PVM poate rula pe următoarele arhitecturi:

Nu este toate arhitecturile care acceptă PVM. Lista tuturor arhitecturile disponibile pot fi găsite în documentația PVM. Suntem interesați (mai mult disponibile pentru noi) arhitectura cu caractere aldine.

Lucrul cu „mașina paralelă“ este destul de simplu. Ai nevoie să-l instalați pe toate mașinile din cluster. Meu 'grup' a constat din două mașini Pentium clasa (100 si 150MHz), cu un volum de 32Mb RAM și unul (central) Celeron 433 (128Mb). Dintr-o rețea de boot am refuzat din cauza utilizării 10Mbit-Ethernet'a. În plus, toate nodurile au hard disk-urile au fost instalate. La centrala instalat sistemul de operare Linux Mandrake 7 și Linux RedHat 6.0 Hedwig mașinile auxiliare. Nu am stabilit nici orice komplilyatorov comerciale, și de a folosi cele care sunt incluse în distribuție.
Apropo, PVM poate rula pe platforma Windows 9x, dar acest lucru nu este recomandat. Pentru distracție, am instalat PVM pentru Windows 98. Viteza chiar și aplicații de testare (nu mai vorbim calculele reale) a fost semnificativ mai mic. Faptul că cluster-ul este mai lent pentru a fi văzut chiar și „ochiul liber“. Cel mai probabil, acest lucru se datorează ineficienței rețelei Windows. În plus, destul de des intregul grup „agățate“, chiar și atunci când sarcinile de testare care fac parte din pachetul PVM.

Utilizarea PVM

PVM este compilat cu ajutorul comenzilor uzuale triplează:
configurați; face; make install

Înainte de a rula make install mediu PVM_ROOT variabilă. În această variabilă de mediu, trebuie să specificați directorul în care directoarele PVM (de exemplu, $ HOME / PVM, dacă ați despachetat arhivele din directorul home). O altă variabilă importantă de mediu este PVM_ARCH. Acesta conține numele arhitecturii sistemului de operare. Această variabilă ar trebui să fie setat automat, dar în cazul în care nu sa întâmplat (la fel ca în cazul meu), trebuie să instalați propria arhitectură. Dacă utilizați Linux, această variabilă trebuie să conțină o valoare LINUX.

Așa cum am scrie acest lucru, este necesar să se instaleze PVM pe toate nodurile de cluster. Întreaga mașină paralelă constă dintr-un demon și pvmd PVM consola. Numirea opțiuni de pornire daemon pot fi găsite prin rularea echipa pvmd om. In masina centrală nevoie pentru a rula daemon pvmd și rulați comanda:
PVM
Acest lucru va începe consola cu ajutorul cărora vom gestiona intregul grup.

După lansarea consolei, ar trebui să vedeți un prompt care indică faptul că cluster-ul este gata de utilizare:
PVM>
Introduceți comanda conf pentru a imprima configurația de cluster. Ar trebui să vedeți ceva de genul:
Listarea 1.

Listarea 1 arată că acum clusterului nostru constă dintr-o mașină - un punct central, care rulează Linux. Acum este timpul pentru a adăuga la clusterului nostru are două noduri. Adăugarea unui nod folosind comanda:
adăuga nume de gazdă
După adăugarea cu succes nodul la cluster ar trebui să fie afișat în lista de noduri din cluster. Acum putem rula programe care acceptă PVM. Exemple de astfel de programe pot fi găsite în directorul $ PVM_ROOT / bin / $ PVM_ARCH / .În acest caz, este directorul / rădăcină / PVM / bin / LINUX (am instalat PVM directorul / root). Pentru a începe, a lansa un program foarte simplu - Bună ziua. Înainte de a rula, aveți nevoie pentru a face câteva comentarii:
  1. Nu puteți începe procesele direct din consola PVM. Consola este doar pentru managementul de cluster.
  2. Rulați această sarcină este realizată în mod obișnuit - de la consola sistemului de operare. Dar „ruleze în paralel“ sunt doar acele procese care susțin PVM. Utilizarea poate genera, de asemenea, comenzi de spawn o sarcină (cm. De mai jos)
Când începe alo Ar trebui să vedeți un mesaj
Bună ziua, lume de la nume de gazdă.
în cazul în care numele gazdei - acest nod de cluster. Cu alte cuvinte, toate nodurile din cluster ar trebui să vă întâmpine.

Se afișează versiunea libpvm bibliotecii

În tabelul 1, nu am descris toate echipele PVM consola, tot restul, putem citi tastând comanda man PVM.
Acum, ia în considerare unele mai multe echipe. Să începem cu cele mai simple - alias. Acesta poate fi folosit pentru a determina aliasuri pentru comenzile utilizate frecvent, de exemplu,
alias. ajutor
Acum, în loc de comanda de ajutor, puteți doar să introduceți.

ID-ul de comandă afișează consola identificator PVM:

MSTAT comandă afișează statutul de nod, de exemplu:

La fel ca noi sunt utilizate pentru a comanda ps, comanda PVM consola PS -a este, de asemenea, utilizat pentru a afișa toate problemele de mașini paralele care rulează:

comandă PStat afișează starea sarcinii:

Acum am ajuns la una dintre cele mai interesante echipe - miceliu. Această comandă creează problema. Acesta poate fi folosit pentru a specifica anumiți parametri ai problemei, de exemplu, nodul la care ar trebui să ruleze.
miceliu [opt] a.out
a.out - orice fișier binar executabil - un program care nici măcar nu are suport pentru biblioteca libpvm. Pentru aceste programe, puteți specifica, de asemenea, ce fel de masina va rula. Într-un mediu Windows, a.out opțiune - acest exe sau com - fișier.
Puteți specifica astfel de parametri de comandă spawn: