Repere LINPACK - LINPACK benchmarks

Repere LINPACK
Autori originali Jack Dongarra , Jim Bunch, Cleve Moler și Gilbert Stewart
Eliberarea inițială 1979 ( 1979 )
Site-ul web www .netlib .org / benchmark / hpl /

Punctele de referință LINPACK reprezintă o măsură a puterii de calcul în virgulă mobilă a unui sistem . Introduse de Jack Dongarra , ele măsoară cât de repede un computer rezolvă un sistem dens de n de n de ecuații liniare Ax  =  b , care este o sarcină obișnuită în inginerie .

Cea mai recentă versiune a acestor parametri de referință este utilizată pentru a construi lista TOP500 , clasând cele mai puternice supercalculatoare din lume.

Scopul este de a aproxima cât de repede va funcționa un computer atunci când rezolvă probleme reale. Este o simplificare, deoarece nicio sarcină de calcul nu poate reflecta performanța generală a unui sistem computerizat. Cu toate acestea, performanța de referință LINPACK poate oferi o corecție bună față de performanțele de vârf oferite de producător. Performanța de vârf este performanța teoretică maximă pe care o poate obține un computer, calculată ca frecvență a mașinii, în cicluri pe secundă, de câte ori se poate efectua numărul de operații pe ciclu. Performanța reală va fi întotdeauna mai mică decât performanța de vârf. Performanța unui calculator este o problemă complexă , care depinde de multe variabile interconectate. Performanța măsurată de benchmark-ul LINPACK constă în numărul de operații pe virgulă mobilă pe 64 de biți , în general adunări și multiplicări, pe care le poate efectua un computer pe secundă, cunoscute și sub numele de FLOPS . Cu toate acestea, performanța unui computer atunci când rulează aplicații reale este probabil să fie cu mult în urmă față de performanțele maxime pe care le atinge atunci când rulează standardul LINPACK adecvat.

Denumirea acestor etaloane provine din pachetul LINPACK , o colecție de subrutine de algebră Fortran utilizate pe scară largă în anii 1980 și inițial strâns legate de etalonul LINPACK. LINPACK Pachetul a fost de când a fost înlocuit cu alte biblioteci.

Istorie

Raportul de referință LINPACK a apărut prima dată în 1979 ca o apendice la manualul de utilizare LINPACK .

LINPACK a fost conceput pentru a ajuta utilizatorii să estimeze timpul necesar sistemelor lor pentru a rezolva o problemă utilizând pachetul LINPACK , prin extrapolarea rezultatelor de performanță obținute de 23 de computere diferite rezolvând o problemă matricială de dimensiunea 100.

Această dimensiune a matricei a fost aleasă datorită limitării memoriei și a procesorului la acel moment:

  • 10.000 de intrări în virgulă mobilă de la -1 la 1 sunt generate aleatoriu pentru a completa o matrice generală densă,
  • apoi, descompunerea LU cu pivotare parțială este utilizată pentru sincronizare.

De-a lungul anilor, au fost lansate versiuni suplimentare cu diferite dimensiuni de probleme, cum ar fi matricile de ordinul 300 și 1000 și constrângeri, permițând noi oportunități de optimizare pe măsură ce arhitecturile hardware au început să implementeze operații matrice-vector și matrice-matrice.

Procesarea în paralel a fost introdusă și în benchmarkul LINPACK Parallel la sfârșitul anilor 1980.

În 1991, LINPACK a fost modificat pentru rezolvarea problemelor de dimensiuni arbitrare, permițând computerelor de înaltă performanță (HPC) să se apropie de performanțele lor asimptotice.

Doi ani mai târziu, acest parametru de referință a fost utilizat pentru măsurarea performanței primei liste TOP500 .

Repere

LINPACK 100

LINPACK 100 este foarte asemănător cu benchmark-ul original publicat în 1979 împreună cu manualul de utilizare LINPACK . Soluția se obține prin eliminarea Gaussiană cu pivotare parțială , cu operații în virgulă mobilă 2 / 3n³ + 2n² unde n este 100, ordinea matricei dense A care definește problema. Dimensiunile reduse și lipsa flexibilității software-ului nu permit majorității computerelor moderne să își atingă limitele de performanță. Cu toate acestea, poate fi util să se prevadă performanțele în codul numeric intens scris de utilizator utilizând optimizarea compilatorului.

LINPACK 1000

LINPACK 1000 poate oferi o performanță mai apropiată de limita mașinii deoarece, pe lângă faptul că oferă o dimensiune mai mare a problemei, o matrice de ordinul 1000, sunt posibile modificări ale algoritmului. Singurele constrângeri sunt că acuratețea relativă nu poate fi redusă, iar numărul de operații va fi considerat întotdeauna 2 / 3n³ + 2n², cu n = 1000.

HPLinpack

Punctele de referință anterioare nu sunt potrivite pentru testarea calculatoarelor paralele și a fost introdus așa-numitul punct de referință Linpack's Highly Parallel Computing sau HPLinpack benchmark. În HPLinpack, dimensiunea n a problemei poate fi făcută pe cât de mare este necesară pentru a optimiza rezultatele performanței mașinii. Din nou, 2 / 3n³ + 2n² vor fi luate ca număr de operații, cu independența algoritmului utilizat. Utilizarea algoritmului Strassen nu este permisă deoarece distorsionează rata reală de execuție. Acuratețea trebuie să fie astfel încât să fie îndeplinită următoarea expresie:

, unde este precizia mașinii și n este dimensiunea problemei, este norma matricei și corespunde notației big-O .

Pentru fiecare sistem informatic, sunt raportate următoarele cantități:

  • R max : performanța în GFLOPS pentru cea mai mare problemă rulată pe o mașină.
  • N max : dimensiunea celei mai mari probleme rulate pe o mașină.
  • N 1/2 : dimensiunea la care se atinge jumătate din rata de execuție Rmax.
  • R peak : performanța teoretică de vârf GFLOPS pentru mașină.

Aceste rezultate sunt utilizate pentru a compila lista TOP500 de două ori pe an, cu cele mai puternice computere din lume. TOP500 măsoară acestea în format cu virgulă mobilă de precizie dublă (FP64).

Implementări de referință LINPACK

Secțiunea anterioară descrie regulile de bază pentru parametrii de referință. Real punerea în aplicare a programului poate să se abată, cu unele exemple fiind disponibile în Fortran , C sau Java .

HPL

HPL este o implementare portabilă a HPLinpack care a fost scrisă în C, inițial ca orientare, dar care este acum utilizată pe scară largă pentru a furniza date pentru lista TOP500, deși pot fi utilizate alte tehnologii și pachete. HPL generează un sistem liniar de ecuații de ordinul n și îl rezolvă folosind descompunerea LU cu pivotare parțială a rândului. Este nevoie de implementări instalate de MPI și de BLAS sau VSIPL pentru a rula.

Mai gros, algoritmul are următoarele caracteristici:

  • distribuirea ciclică a datelor în blocuri 2D
  • Factorizarea LU utilizând varianta cu aspect corect, cu diferite adâncimi de priveliște
  • factorizarea recursivă a panoului
  • șase variante diferite de difuzare a panoului
  • algoritm de reducere a lățimii de bandă de swap-broadcast
  • substituție înapoi cu privirea înaintea adâncimii 1

Critică

Se spune că reperul LINPACK a reușit datorită scalabilității HPLinpack, a faptului că generează un singur număr, făcând rezultatele ușor comparabile și baza istorică extinsă de date pe care a asociat-o. Cu toate acestea, la scurt timp după lansare, benchmark-ul LINPACK a fost criticat pentru că oferă niveluri de performanță „în general imposibil de obținut de toți, cu excepția câtorva programatori care își optimizează plictisitor codul pentru mașina respectivă și mașina respectivă”, deoarece testează doar rezoluția sistemelor liniare dense. , care nu sunt reprezentative pentru toate operațiunile efectuate de obicei în calculul științific. Jack Dongarra , principala forță motrice din spatele benchmark-urilor LINPACK, a spus că, deși subliniază doar viteza procesorului „de vârf” și numărul de procesoare, nu se dă suficientă tensiune lățimii de bandă locale și rețelei.

Thom Dunning, Jr. , director al Centrului Național pentru Aplicații de Supercomputare , a spus acest lucru despre etalonul LINPACK: „Etalonul Linpack este unul dintre acele fenomene interesante - aproape oricine știe despre el își va derida utilitatea. Ei înțeleg limitări, dar are un partaj mental, pentru că este singurul număr pe care l-am cumpărat cu toții de-a lungul anilor. "

Potrivit lui Dongarra, „organizatorii Top500 caută în mod activ să extindă aria de raportare de referință”, deoarece „este important să includem mai multe caracteristici de performanță și semnături pentru un sistem dat”. Una dintre posibilitățile luate în considerare pentru extinderea valorii de referință pentru TOP500 este HPC Challenge Benchmark Suite. Odată cu apariția computerelor pe scară mică , marginile traversate pe secundă au început să apară ca o metrică complementară FLOPS măsurată de LINPACK. O altă astfel de valoare este referința HPCG , propusă de Dongarra.

Problema timpului de funcționare

Potrivit lui Jack Dongarra , este de așteptat ca timpul de funcționare necesar pentru obținerea unor rezultate bune de performanță cu HPLinpack să crească. La o conferință ținută în 2010, el a spus că se așteaptă la durate de 2,5 zile în „câțiva ani”.

Vezi si

Referințe

linkuri externe