Cluster (ghid practic)

Compilatoare pentru sarcini paralele

Cluster (ghid practic)
Problema alegerii unei platforme hardware pentru cluster aparent nu merită: vom folosi tehnologia pe care o avem deja, și acest lucru este cel mai probabil computerele bazate pe procesoarele Intel. Prin urmare, nu vom discuta avantajele acestei platforme. Cu toate acestea, dacă intenționați să dezvoltați în mod independent aplicații pentru clusterul dvs., trebuie să aveți grijă să selectați instrumentele de dezvoltare adecvate.







De exemplu, pentru Intel-cea mai buna alegere ar fi dezvoltat de către compilatoare Intel pentru limbi C / C ++ / Fortran95 (disponibil gratuit pentru utilizare non-comerciale în versiunea Linux) sau compilatoare din Portland Group (C / C ++ / Fortran90 / HPF). Dacă din anumite motive nu pot fi plasate la compilator, puteți utiliza freeware seria GCC compilator (GUN Compiller Collection), care este susținută de cele mai multe platforme hardware și software moderne și vin cu aproape toate distribuțiile Linux și Unix.

Trebuie remarcat totuși că compilatorii seriei gcc au un dezavantaj semnificativ: nu suportă tipurile de date Real * 16 și Complex * 32 necesare pentru multe calcule științifice. Dacă sarcina dvs. necesită această exactitate de soluții, vă recomandăm să descărcați și să instalați compilatoare pentru utilizarea non-comercială a Intel. Acest proces este descris mai detaliat în secțiunea cluster Ubuntu.

Programele paralele pot fi scrise "manual" prin introducerea directă a apelurilor către biblioteca de comunicații în locurile potrivite. Această cale necesită o pregătire specială de la programator. O alternativă este utilizarea paralelizării automate și semi-automate a programelor secvențiale.







Crearea paralelizării automate și recunoașterea paralelismului în algoritmi nu este o sarcină matematică simplă, și majoritatea acestor sisteme sunt comerciale.

Alegerea unui compilator

Cel mai simplu, din punct de vedere al instalării în sistemul Linux, sunt compilatoarele GCC (Gnu Compiller Collection). Dacă vorbim despre Fortran, atunci colecția GCC conține două versiuni ale compilatorului: fort77. care este un preprocesor care recodeaza programul Fortran in si-code, care este apoi compilat de compilatorul standard pentru distributie si gfortran. care este un compilator cu drepturi depline pentru un subset de Fortran 95. Acești compilatori fac parte din orice distribuție și instalarea lor nu prezintă dificultăți.

Compilatoarele Intel nu fac parte din distribuțiile Linux, însă obținerea acestora de pe site-ul oficial și instalarea lor în sistem este cât mai simplă posibil. Procedura de instalare a compilatorului Intel Fortran este descrisă în secțiunea cluster Ubuntu.

Să oferim un tabel comparativ al vitezei programului Fortran compilat de compilatori diferiți. Ca problemă de testare, a fost luat un program secvențial pentru rezolvarea ecuației de căldură. descrise într-una din secțiunile anterioare.

Testarea 2) a arătat că compilatorul Fortran de la Intel în modul de optimizare maximă oferă codul executabil de ieșire, care este de aproximativ 2 ori mai rapid decât rezultatul obținut prin utilizarea compilatoarelor GCC.

În plus, numai Intel Fortran permite utilizarea tipurilor de date Real * 16 și Complex * 32 * 1). deși procesorul fizic nu știe cum să lucreze direct cu aceste tipuri (de aici rezultă creșterea semnificativă a timpului de numărare pentru astfel de date - se folosește emularea software).

Dacă grupul paralel este utilizat de dvs. exclusiv pentru scopuri de instruire, atunci compilatoarele GCC vă vor satisface. Cu toate acestea, dacă sunteți interesat să obțineți eficiența maximă și cea mai mare viteză de numărare a programelor, atunci merită să cheltuiți puțin timp și efort pentru a instala compilatoare Intel.

1) Această afirmație nu este pe deplin adevărată. Distribuția Ubuntu 10.10 folosește compilarea GNU Fortran 4.4.5. Această versiune a compilatorului nu suportă cu adevărat tipurile de date Real * 16. Cu toate acestea, actuala versiune 4.7.0 este disponibilă pentru utilizare în care această restricție este eliminată.

2) Testarea a fost efectuată folosind compilații GNU Fortran 4.4.5, GNU Fortran 4.7.0 și Intel Fortran 12.0.4.

3) Datele au fost obținute utilizând GNU Fortran 4.7.0.







Articole similare

Trimiteți-le prietenilor: