Anar al contingut

LINPACK

De L'Enciclopèdia, la wikipedia en valencià

El benchmark Linpack va ser desenrollat en el Argone National Laboratory per Jack Dongarra en 1976, i és un dels més usats en sistemes científics i d'ingenieria.

El seu us com benchmark va ser accidental, ya que originalment va ser una extensió del programa Linpack -el propòsit del qual era resoldre sistemes d'equacions- que otorgava el temps d'eixecució del programa en 23 màquines distintes. Després varen ser agregant-se cada volta major cantitat de màquines (segons els seus mateixos autors més com un pasatiempo que una atra cosa).

Hui en dia, el programa Linpack ha segut reemplaçat pel paquet Lapack, el qual fa un us molt millor de les característiques de l'arquitectura RISC (en essència, les seues tècniques algorítmiques varen ser modificades per a que passe menor temps movent senyes).

El benchmark Linpack pot conseguir-se en versió Fortran, C i com un applet de Java.

Descripció del benchmark

[editar | editar còdic]

La característica principal de Linpack és que fa un us molt intensiu de les operacions de menge flotant, per lo que els seus resultats són molt depenents de la capacitat de la FPU que tinga el sistema. Ademés passen la major part del temps eixecutant unes rutines anomenades BLAS (Basic Linear Algebra Subroutines o Subrutina d'Àlgebra Llineal Bàsica). Com hi ha dos tipos d'estes biblioteques (una codificada en ensamblador i una atra en Fortran), el resultat també dependrà molt d'açò. De llunt, el major temps d'eixecució es consumix en la rutina DAXPY de la biblioteca BLAS (casi el 90%). DAXPY realisa el següent càlcul

i(i) := i(i) + a * x(i).

És per açò que en realitat es pot dir que lo que medix Linpack és la velocitat del sistema per a DAXPY.

Per una atra part, en realisar essencialment càlculs en matrius és un test fàcilment paralelisable, i es pot utilisar per a medir l'eficiència de sistemes multiprocessador (de fet, existix una pàgina en Internet que informa el "Top 500" de les computadores basant-se en el Linpack: https://www.top500.org/).

Els principis matemàtics

[editar | editar còdic]

El reporte del benchmark descriu la performance per a resoldre un problema de matrius generals denses Ax = b a tres nivells de tamany i oportunitat d'optimisació: problemes de 100 x 100 (optimisació del bucle intern), problemes d'1.000 per 1.000 (optimisació de tres bucles - el programa sancer) i un problema paralel escalable. Estes matrius són generades usant un generador de números pseudoaleatorios, pero forçant els números per a que puga eixecutar-se un pivoteo parcial en Eliminació Gaussiana. Eixecuta dos rutines bàsiques: una que descompon la matriu, i una atra que resol el sistema d'equacions basant-se en la descomposició de la primera matriu. Per a una matriu de n x n la primera rutina du n³ operacions de menge flotant, mentres que la segona eixecuta n² operacions de menge flotant.

Les rutines involucrades fan us d'algoritmes orientats a columnes. Açò és, els programes generalment referencian als elements dels apanys bidimensionales secuencialment cap a avall per una columna, en lloc de fer-ho per files. Esta orientació era important per la forma en que el llenguage Fortran almagasena els apanys.