Benchmark Linpack | |
---|---|
Típusú | teljesítményteszt |
Szerző | Jack Dongarra , Jim Bunch, Cleve Moler , Gilbert Stewart |
Első kiadás | 1979 |
Weboldal | netlib.org/benchmark/hpl/ |
A LINPACK benchmarkok a számítógépek számítási teljesítményét mérik a lebegőpontos számok feldolgozása során. Jack Dongarra készítette1979-ben, és azt mérik, hogy egy számítógép milyen gyorsan képes megoldani egy sűrű lineáris egyenletrendszert (SLAE) Ax=b , ahol A egy n x n mátrix. Hasonló probléma gyakran felmerül a gépészet területén is .
E benchmarkok legújabb verzióját használják a TOP500 összeállításához , amely lista a világ legjobban teljesítő szuperszámítógépeit sorolja fel. [2]
A tesztek létrehozásának célja a valós problémák számítógépes megoldásának sebességének értékelése. Az egyetlen teszttel végzett pontozás azonban leegyszerűsítés, mivel egyetlen számítási feladat sem tükrözheti a számítógépes rendszer általános teljesítményét. LINPACK teljesítmény a számítógép gyártója által biztosított csúcsteljesítmény finomításához szükséges adatok biztosításához (a csúcsteljesítmény a számítógép által elérhető maximális elméleti teljesítmény, a processzor órajelének és az óránként végrehajtott műveletek számának szorzataként számítva), a tényleges a teljesítmény mindig alacsonyabb lesz, mint a maximális teljesítmény [3] . A számítógép teljesítménye egy összetett jellemző, amely számos, egymással összefüggő összetevőtől függ. A LINPACK benchmark által mért teljesítmény a számítógép által másodpercenként végrehajtott 64 bites lebegőpontos műveletek (összeadások és szorzások) számát mutatja, ez az arány " FLOPS ". Azonban a számítógép teljesítménye valós alkalmazások futtatásakor valószínűleg jelentősen alacsonyabb, mint az arányos LINPACK teszt futtatásakor elért maximális teljesítmény. [négy]
Ezeknek a teszteknek a neve a LINPACK csomagból származik, amely az 1980-as években széles körben használt Fortran algebrai rutinkészlet, amely eredetileg szorosan kapcsolódik a LINPACK teszthez. A LINPACK csomagot azóta más könyvtárak váltották fel.
A LINPACK benchmark először 1979-ben jelent meg a LINPACK matematikai könyvtár felhasználói kézikönyvének mellékleteként . [5]
A LINPACK-ot arra tervezték, hogy segítse a felhasználókat annak megbecslésében, mennyi időbe telik számítógépes rendszereiknek a feladatok elvégzéséhez a LINPACK csomag használatával . Ehhez a 23 különböző, 100x100 elemű mátrixméretű feladatot megoldó számítógépen kapott teljesítményeredményeket extrapoláljuk.
Ezt a feladatméretet az adott korszak jellemző memóriaméreteinek és processzorteljesítményének figyelembevételével választották ki:
Az évek során további verziók jelentek meg nagyobb, különböző problémaméretekkel, például 300 x 300 és 1000 x 1000 számmátrixokkal. Megjelentek olyan implementációk is, amelyek hardveres képességeket használnak a mátrix-vektor és a mátrix-mátrix műveletek felgyorsítására. [6] A párhuzamos adatfeldolgozás a LINPACK Parallel teszt egyik változatában jelent meg az 1980-as évek végén. [3]
1991-ben a LINPACK tesztet módosították tetszőleges méretű problémák megoldására [7] , lehetővé téve a nagy teljesítményű számítógépek (HPC) számára, hogy megközelítsék aszimptotikus teljesítményüket.
1993 óta ezt a tesztet használják a TOP500 rangsor összeállításához .
A LINPACK 100 nagyon közel áll az eredeti teszthez, amelyet 1979-ben tettek közzé a LINPACK felhasználói kézikönyvben ( ISBN 089871172X ). Az SLAE megoldást részleges forgású Gauss-eliminációval állítják elő, 2/3 n³ + 2n² lebegőpontos műveleteket végrehajtva, ahol n 100 és sűrű A mátrix 100 x 100. A mátrix kis mérete és a szoftveres rugalmasság hiánya néhány modern számítógép a maximumhoz közeli teljesítmény bizonyítására ezen a teszten. Ez a viszonyítási alap azonban továbbra is hasznos lehet a teljesítmény előrejelzésében az optimalizálásokkal összeállított, numerikusan intenzív egyéni kódokban. [3]
A LINPACK 1000 1000-re 1000 elemre növeli a mátrix méretét, és a számítógép maximális teljesítményéhez közelít. Az algoritmus változtatása megengedett, azonban a megoldás relatív pontosságának csökkentése nem megengedett. A teszt teljesítményének kiszámításakor az elvégzett lebegő műveletek számának képlete mindig 2 / 3n³ + 2n², n = 1000 értékkel. [3]
A teszt korábbi generációi nem voltak alkalmasak párhuzamos számítógépek tesztelésére, [8] ezért kifejlesztették az úgynevezett "Linpack's Highly Parallel Computing" tesztet, más néven HPLinpack-et. Az új tesztben az n feladat mérete a gép teljesítményének optimalizálásához szükséges méretre növelhető. A 2 / 3n³ + 2n² műveletszám képlet továbbra is használatos, függetlenül a ténylegesen használt algoritmustól. A Strassen-algoritmus használata nem megengedett, mert torzítja a tényleges végrehajtási sebességet. [9] A megtalált megoldás pontosságának olyannak kell lennie, hogy a következő tulajdonság teljesüljön:
, ahol a gép pontossága, és n a probléma mérete, [10] a mátrix normája , és megfelel a big-O ("O" big) jelölésnek.
A következő mennyiségeket jelentik minden számítógépes rendszerhez: [3]
Ezeket az eredményeket használják fel a világ leggyorsabb szuperszámítógépeinek TOP500 -as listájának , valamint a Green500 -as listájának összeállításához . Megjelenik évente kétszer.
Az előző rész ismertette a benchmarkok alapszabályait. A program tényleges megvalósítása eltérhet, vannak Fortran , [11] C [12] és Java [13] változatai .
A HPL a HPLinpack feladat mobil megvalósítása C programozási nyelven. Eredetileg mintamegvalósításként szolgált, de azóta széles körben használják a TOP500-as lista adatainak megszerzésére , bár más megvalósítások és csomagok is használhatók. A HPL n-edrendű lineáris egyenletrendszert hoz létre véletlenszerű együtthatókkal, majd ezt egy LU-felbontással oldja meg részleges sorforgatással. A megvalósításhoz MPI (message passing libraries) telepített implementációira és egy matematikai könyvtárra van szükség: BLAS vagy VSIPL [14] .
Általában ennek a megvalósításnak a következő jellemzői vannak: [15] [16]
Néha azt állítják, hogy a LINPACK teszt sikere a HPLinpack [17] feladat jó skálázhatóságának, annak a ténynek, hogy a teszt eredménye egyetlen, könnyen összehasonlítható szám, valamint a nagy mennyiségű történelmi adatnak köszönhető. . [18] Mindazonáltal, röviddel a bevezetése után a LINPACK-ot kritizálták amiatt, hogy olyan teljesítményszinteket mutatott be, amelyek "általában olyan szintűek, amelyek túlmutatnak azon programozók számára, akik csak nagyon kis számú programozót fárasztóan optimalizálnak egy adott számítógépre és csak egy adott számítógépre". [19] A Benchmark a sűrű lineáris rendszerek megoldásának sebességét teszteli , de ez a feladat nem jellemző a tudományos számítástechnikában általánosan végrehajtott összes műveletre. [20] Jack Dongarra , a LINPACK-tesztek és a TOP500-as lista társszerzője megjegyezte, hogy ezek a tesztek csak a "csúcs" processzorsebességre és -számra összpontosítanak, miközben nem használják ki a helyi memóriabuszokat és a hálózati összeköttetéseket. [21]
Tom Dunning, Jr., a National Center for Supercomputing Applications igazgatója a következőképpen jellemezte a LINPACK tesztet: „A Linpack teszt egyike azon érdekes jelenségeknek, amelyek hasznosságát szinte mindenki nevetségessé teszi, aki tud róla. Megértik a korlátait, de a teszt népszerű, mert egyetlen számot mutat, és sok éve használják.” [22]
Dongarra szerint "A Top500 aktívan igyekszik bővíteni a benchmark benchmarkok lefedettségét", mert "fontos, hogy minden versenytárs számára több teljesítményjellemző és aláírás szerepeljen." [23] A TOP500 tesztek kiegészítésének egyik lehetősége a HPC Challenge Benchmark készlet [24] . A petaflops szuperszámítógépek ( Petascale) megjelenésével a LINPACK által mért FLOPS alternatívájaként javasolták a Graph500 tesztet , amely a másodpercenként áthaladt élek számát (TEPS) méri [25] . Egy másik alternatíva a Dongarra által javasolt HPCG teljesítményteszt . [26] [27]
Jack Dongarra szerint fokozatosan növekszik a HPLinpack tesztnek a jó eredmények eléréséhez szükséges ideje. Egy 2010-es konferencián elmondta, hogy "néhány év" elteltével az indulás időtartamának körülbelül 2,5 napra való növekedésére számít. [28]