dijous, 26 de febrer del 2015

Benchmarking (Linpack)



Linpack on of the most popular benchmarks because it is used to create the Top500 list.

This is one of the first versions that you could run on a single core machine


mkdir linpack
cd linpack
mkdir base
cd base
wget http://www.netlib.org/benchmark/linpackc.new
mv linpackc.new linpack.new.c


Top500 is build using a more complex version

take care that a #define DP is writen in the source, so if you want to use single precision floating point numbers, you should remove that line.

To compile for double precission and single precission, simply type

sed -i '/#define DP/d' ./linpack.new.c
gcc -DDP -O4 -o linpack.new.dp linpack.new.c
gcc -DSP -O4 -o linpack.new.sp linpack.new.c

Fortunatelly there is an OpenMP implementation of the benchmark, although it is not exactly functionally equivalent


cd ..
mkdir omp_base 
cd omp_base
wget http://www.hpcs.cs.tsukuba.ac.jp/omni-compiler/xcalablemp/download/trunk/tests/clinpack/clinpack.c

To compile it, type

gcc -fopenmp -DUNROLL -DDP -DCTimer -DOMPC -DORDER=1000 -O4 -o linpack.omp clinpack.c

The numbers are a little bit puzzling, since it seems that the OpenMP version is slower than the original (?)

1 comentari:

  1. The numbers are less puzzling if you use the correct timing function (using the correct compiler directive "-DGTODay")

    ResponElimina