Les comparatives LINPACK són una mesura de la potència de càlcul en coma flotant d'un sistema. Introduïts per Jack Dongarra, mesuren la rapidesa amb què un ordinador resol un problema dens de sistema d'equacions lineals n x n, Ax = b, que és una tasca habitual en enginyeria.
La darrera versió d'aquests punts de referència s'utilitza per construir la llista TOP500, que classifica els superordinadors més potents del món.
L'objectiu és aproximar la velocitat de rendiment d'un ordinador en resoldre problemes reals. És una simplificació, ja que cap tasca computacional per si sola pot reflectir el rendiment general d'un sistema informàtic. No obstant això, el rendiment de referència de LINPACK pot proporcionar una bona correcció respecte al rendiment màxim proporcionat pel fabricant. El rendiment màxim és el rendiment teòric màxim que un ordinador pot assolir, calculat com la freqüència de la màquina, en cicles per segon, multiplicada pel nombre d'operacions per cicle que pot realitzar. El rendiment real sempre serà inferior al rendiment màxim.. El rendiment d'un ordinador és un tema complex que depèn de moltes variables interconnectades. El rendiment mesurat pel punt de referència LINPACK consisteix en el nombre d'operacions de coma flotant de 64 bits, generalment sumes i multiplicacions, que un ordinador pot realitzar per segon, també conegudes com a FLOPS. Tanmateix, és probable que el rendiment d'un ordinador quan executa aplicacions reals estigui molt per sota del rendiment màxim que aconsegueix executant el benchmark LINPACK adequat.
El nom d'aquests punts de referència prové del paquet LINPACK, una col·lecció de subrutines d'àlgebra Fortran àmpliament utilitzades a la dècada del 1980, i inicialment estretament vinculades al punt de referència LINPACK. El paquet LINPACK ha estat substituït per altres biblioteques.
Història L'informe de referència LINPACK va aparèixer per primera vegada el 1979 com a apèndix del manual d'usuari de LINPACK.
LINPACK va ser dissenyat per ajudar els usuaris a estimar el temps que requereixen els seus sistemes per resoldre un problema utilitzant el paquet LINPACK, extrapolant els resultats de rendiment obtinguts per 23 ordinadors diferents que resolen un problema matricial de mida 100.
Aquesta mida de matriu es va triar a causa de les limitacions de memòria i CPU d'aquell moment:
Es generen aleatòriament 10.000 entrades de coma flotant de −1 a 1 per omplir una matriu densa general, aleshores s'utilitza la descomposició LU amb pivotament parcial per al temps.
Amb els anys, es van publicar versions addicionals amb diferents mides de problema, com ara matrius d'ordre 300 i 1000, i restriccions, cosa que va permetre noves oportunitats d'optimització a mesura que les arquitectures de maquinari van començar a implementar operacions matriu-vector i matriu-matriu.
El processament paral·lel també es va introduir al punt de referència paral·lel LINPACK a finals dels anys vuitanta.
El 1991, el LINPACK va ser modificat per. resoldre problemes de mida arbitrària, permetent que els ordinadors d'alt rendiment (HPC) s'acostessin al seu rendiment asimptòtic.
Dos anys més tard, aquest punt de referència es va utilitzar per mesurar el rendiment de la primera llista TOP500.
Els punts de referència LINPACK 100 El LINPACK 100 és molt similar al benchmark original publicat el 1979 juntament amb el manual d'usuari del LINPACK.J. J. Dongarra, J. R. Bunch, C. B. Moler, G. W. Stewart, "LINPACK Users' Guide", 1979. La solució s'obté per eliminació gaussiana amb pivotament parcial, amb operacions de coma flotant, on n = 100 és l'ordre de la matriu densa A que defineix el problema. La seva petita mida i la manca de flexibilitat del programari no permeten que la majoria d'ordinadors moderns arribin als seus límits de rendiment. No obstant això, encara pot ser útil predir el rendiment en codi escrit per l'usuari amb un ús intensiu de dades numèriques mitjançant l'optimització del compilador.
LINPACK 1000 LINPACK 1000 pot proporcionar un rendiment més proper al límit de la màquina perquè, a més d'oferir una mida de problema més gran, una matriu de l'ordre de 1000. Els canvis en l'algoritme són possibles. Les úniques restriccions són que la precisió relativa no es pot reduir i que el nombre d'operacions sempre es considerarà com a amb n = 1000.
HPLinpack Els punts de referència anteriors no són adequats per provar ordinadors paral·lels, i es va introduir el denominat punt de referència de computació altament paral·lela de Linpack, o punt de referència HPLinpack. A HPLinpack, la mida n del problema es pot fer tan gran com sigui necessari per optimitzar els resultats de rendiment de la màquina. Un cop més, es prendrà com el recompte d'operacions, amb independència de l'algoritme utilitzat. No es permet l'ús de l'algoritme de Strassen perquè distorsiona la taxa d'execució real. La precisió ha de ser tal que es compleixi la següent expressió:
on
és la precisió de la màquina, n és la mida del problema, és una norma matricial (suma de files més gran), correspon a la notació big-O.
Per a cada sistema informàtic, s'indiquen les quantitats següents:
R màx : el rendiment en GFLOPS per al problema més gran executat en una màquina. N màx : la mida del problema més gran que s'executa en una màquina. N 1/2 – la mida on s'aconsegueix la meitat de la taxa d'execució màxima de R. R peak : el rendiment màxim teòric de GFLOPS per a la màquina.
Aquests resultats s'utilitzen per compilar la llista TOP500 dues vegades l'any, amb els ordinadors més potents del món. TOP500 mesura aquestes mesures en format de coma flotant de doble precisió (FP64). La relació R màx / R pic s'anomena eficiència paral·lela o eficiència HPL. Normalment és més baix com més nodes té un sistema a causa de la sobrecàrrega de comunicació. Per exemple, un Cray Y-MP dels anys noranta aconsegueix una eficiència HPL d'aproximadament el 90%, mentre que Frontier aconsegueix aproximadament el 70% el 2023.
Implementacions de proves de referència de LINPACK La secció anterior descriu les regles bàsiques dels punts de referència. La implementació real del programa pot divergir, i alguns exemples estan disponibles en Fortran, C o Java.
HPL HPL és una implementació portable de HPLinpack que es va escriure en C, originalment com a guia, però que ara s'utilitza àmpliament per proporcionar dades per a la llista TOP500, tot i que es poden utilitzar altres tecnologies i paquets. HPL genera un sistema lineal d'equacions d'ordre n i el resol mitjançant la descomposició LU amb pivotament parcial de files. Requereix implementacions instal·lades de MPI i BLAS o VSIPL per funcionar.
A grans trets, l'algoritme té les següents característiques:
distribució cíclica de dades en blocs 2D Factorització LU utilitzant la variant de cerca dreta amb diverses profunditats de cerca anticipada factorització recursiva de panells sis variants diferents de transmissió de panells algorisme de difusió per intercanvi de reducció d'amplada de banda substitució cap enrere amb anticipació de la profunditat 1
Crítica Es diu que el punt de referència LINPACK ha tingut èxit gràcies a l'escalabilitat de HPLinpack, al fet que genera un sol número, cosa que fa que els resultats siguin fàcilment comparables, i a l'extensa base de dades històriques que té associada. No obstant això, poc després del seu llançament, el benchmark LINPACK va ser criticat per proporcionar nivells de rendiment "generalment inassolibles per a tots excepte per molt pocs programadors que optimitzen tediosament el seu codi per a aquella màquina i només per a aquella màquina",. perquè només prova la resolució de sistemes lineals densos, que no són representatius de totes les operacions que es realitzen habitualment en la computació científica.. Jack Dongarra, el principal impulsor dels punts de referència LINPACK, va dir que, tot i que només emfatitzen la velocitat "màxima" de la CPU i el nombre de CPU, no es dóna prou èmfasi a l'amplada de banda local i a la xarxa.
Referències
Categoria:Superordinadors