Comments on HPL (High Performance Linpack): Benchmarking Raspberry PIs

Benchmarking is the process of running some of the standard programs to evaluate the speed achieved by a system. There are a number of standard bechmarking programs and in this tutorial we benchmark the Linux system using a well known program called the HPL, also known as High Performance Linpack.

18 Comment(s)

Add comment

Please register in our forum first to comment.

Comments

By: puneet

I followed your instructions; uset your HPL.dat file;;i am getting following error:HPL ERROR from process # 0, on line 355 of function HPL_pdinfo:>>> Number of values of NB is less than 1 or greater than 20 <<<HPL ERROR from process # 0, on line 621 of function HPL_pdinfo:>>> Illegal input in file HPL.dat. Exiting ... <<<====================================================================================   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES=   PID 5686 RUNNING AT cdac-Lenovo-B590=   EXIT CODE: 1=   CLEANING UP REMAINING PROCESSES=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES=================================================

By: Lanze

I have been following your instruction and I am stuck on the 4th step. I have no bin/rpi and makeh gives me "command not found". Please help me if you can. My grade depends on this working.

Background: cluster of 4 RPI 2 Bs, trying to benchmark them with Linpack before I move on to my own testing. I should have all the required software installed

By: carma03

I installed libmpich2-dev and I get the error "gfortran: error: /usr/local/mpich2/lib/libmpich.a: No such file or directory" when execute make arch=rpi command. ¿What's wrong?

By: Burcheso

Thank you so much for the info. It was very usefull to me. I am a Bachelors student from Spain and I started a project from this manual.

PS: to Lanze, step 4 is a mistake. Just try "make arch=rpi".

By: wagakki

Hello sir, do you have link or tutorial how to install mpich2, because i have followed your step and not found in my directory

/usr/local/mpich2 and i am stuck in step 3.

By: Rive

A better, easier way to install and run linpack bench on the pi (pi3). Be sure to reboot after install and before running.

 

sudo apt-get install libmpich-dev wget http://web.eece.maine.edu/~vweaver/junk/pi3_hpl.tar.gz tar -xvzf pi3_hpl.tar.gz chmod +x xhpl run: ./xhplStock Pi 3 6.1 Gflops

pi@raspberrypi:~ $ ./xhpl

================================================================================

HPLinpack 2.1  --  High-Performance Linpack benchmark  --   October 26, 2012

Written by A. Petitet and R. Clint Whaley,  Innovative Computing Laboratory, UTK

Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK

Modified by Julien Langou, University of Colorado Denver

================================================================================

 

An explanation of the input/output parameters follows:

T/V    : Wall time / encoded variant.

N      : The order of the coefficient matrix A.

NB     : The partitioning blocking factor.

P      : The number of process rows.

Q      : The number of process columns.

Time   : Time in seconds to solve the linear system.

Gflops : Rate of execution for solving the linear system.

 

The following parameter values will be used:

 

N      :    8000

NB     :     256

PMAP   : Row-major process mapping

P      :       1

Q      :       1

PFACT  :    Left

NBMIN  :       2

NDIV   :       2

RFACT  :   Right

BCAST  :   2ring

DEPTH  :       0

SWAP   : Mix (threshold = 64)

L1     : transposed form

U      : transposed form

EQUIL  : yes

ALIGN  : 8 double precision words

 

--------------------------------------------------------------------------------

 

- The matrix A is randomly generated for each test.

- The following scaled residual check will be computed:

      ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )

- The relative machine precision (eps) is taken to be               1.110223e-16

- Computational tests pass if scaled residuals are less than                16.0

 

================================================================================

T/V                N    NB     P     Q               Time                 Gflops

--------------------------------------------------------------------------------

WR02R2L2        8000   256     1     1              55.37              6.166e+00

HPL_pdgesv() start time Sat Apr 23 15:14:17 2016

 

HPL_pdgesv() end time   Sat Apr 23 15:15:12 2016

 

--------------------------------------------------------------------------------

||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0025941 ...... PASSED

================================================================================

 

Finished      1 tests with the following results:

              1 tests completed and passed residual checks,

              0 tests completed and failed residual checks,

              0 tests skipped because of illegal input values.

--------------------------------------------------------------------------------

 

End of Tests.

By: rive

Is there a formatting issue? (I didn't post it the way it is shown above), here is the raspberry pi  linpack instructions again:

 

sudo apt-get install libmpich-dev

wget http://web.eece.maine.edu/~vweaver/junk/pi3_hpl.tar.gz

tar -xvzf pi3_hpl.tar.gz

chmod +x xhpl

./xhpl

By: shareef

Hi, i am in step 4, when i execute make arch=rpi 

the file starts executing but stops with the following error

"Makefile:47: Make.inc: No such file or directory

make[2] : *** No rule to make target 'Make.inc'. Stop.

make[2] : Leaving directory '/home/pi/Desktop/hpl-2.1/src/auxil/rpi'

Make.top:54: recipe for target 'build_src' failed

make[1] : *** [build_src] Error 2

make[1] : Leaving directory '/home/pi/Desktop/hpl-2.1'

Makefile:72: recipe for target 'build' failed

make: *** [build] Error 2

Make.top:54: recipe for "

 

Can someone pls help.

By: shareef

Hi, i am in step 4, when i execute make arch=rpi 

the file starts executing but stops with the following error

"Makefile:47: Make.inc: No such file or directory

make[2] : *** No rule to make target 'Make.inc'. Stop.

make[2] : Leaving directory '/home/pi/Desktop/hpl-2.1/src/auxil/rpi'

Make.top:54: recipe for target 'build_src' failed

make[1] : *** [build_src] Error 2

make[1] : Leaving directory '/home/pi/Desktop/hpl-2.1'

Makefile:72: recipe for target 'build' failed

make: *** [build] Error 2

Make.top:54: recipe for "

 

Can someone pls help.

By: Gianluca

 you need to modify TOPdir.

if you untar hpl in Downloads then

TOPdir   = $(HOME)/Downloads/hpl

By: sriraghavendra

mpirun was unable to launch the specified application as it could not access

or execute an executable:

 

Executable: ./xhpl

Node: 0d6d82c2706c

 

while attempting to start process rank 0.

By: FIT_KNU_2017

For those who have problems compiling it here is my Makefile.rpi. I used hpl-2.2. and mpich3.

It uses different paths and additional compile flags to compile successfully. Tested on Rpi 3 model B. The resulting xhpl executable is located under ~/hpl-2.2/bin/UNKNOWN. Using the HPL.dat from the article gave me the next result:

================================================================================T/V                N    NB     P     Q               Time                 Gflops--------------------------------------------------------------------------------WR11C2R4        5040   128     1     1             291.08              2.933e-01HPL_pdgesv() start time Tue Dec  5 23:13:36 2017HPL_pdgesv() end time   Tue Dec  5 23:18:27 2017--------------------------------------------------------------------------------||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0021492 ...... PASSED================================================================================Finished      1 tests with the following results:              1 tests completed and passed residual checks,              0 tests completed and failed residual checks,              0 tests skipped because of illegal input values.--------------------------------------------------------------------------------End of Tests.================================================================================

By: Ongky Oktafian

hi, i am in step 4, and there is an error like this:

make[1]: Leaving directory '/home/pi/hpl-2.1'

make -f Make.top refresh_tst     arch=rpi

make[1]: Entering directory '/home/pi/hpl-2.1'

cp makes/Make.matgen   testing/matgen/rpi/Makefile

cp makes/Make.timer    testing/timer/rpi/Makefile

cp makes/Make.pmatgen  testing/pmatgen/rpi/Makefile

cp makes/Make.ptimer   testing/ptimer/rpi/Makefile

cp makes/Make.ptest    testing/ptest/rpi/Makefile

make[1]: Leaving directory '/home/pi/hpl-2.1'

make -f Make.top build_src       arch=rpi

make[1]: Entering directory '/home/pi/hpl-2.1'

( cd src/auxil/rpi;         make )

make[2]: Entering directory '/home/pi/hpl-2.1/src/auxil/rpi'

Makefile:47: Make.inc: No such file or directory

make[2]: *** No rule to make target 'Make.inc'.  Stop.

make[2]: Leaving directory '/home/pi/hpl-2.1/src/auxil/rpi'

Make.top:54: recipe for target 'build_src' failed

make[1]: *** [build_src] Error 2

make[1]: Leaving directory '/home/pi/hpl-2.1'

Makefile:72: recipe for target 'build' failed

make: *** [build] Error 2

Can someone please help.

By: Ongky Oktafian

hi, i am in step 4, and there is an error like this:

make[1]: Leaving directory '/home/pi/hpl-2.1'

make -f Make.top refresh_tst     arch=rpi

make[1]: Entering directory '/home/pi/hpl-2.1'

cp makes/Make.matgen   testing/matgen/rpi/Makefile

cp makes/Make.timer    testing/timer/rpi/Makefile

cp makes/Make.pmatgen  testing/pmatgen/rpi/Makefile

cp makes/Make.ptimer   testing/ptimer/rpi/Makefile

cp makes/Make.ptest    testing/ptest/rpi/Makefile

make[1]: Leaving directory '/home/pi/hpl-2.1'

make -f Make.top build_src       arch=rpi

make[1]: Entering directory '/home/pi/hpl-2.1'

( cd src/auxil/rpi;         make )

make[2]: Entering directory '/home/pi/hpl-2.1/src/auxil/rpi'

Makefile:47: Make.inc: No such file or directory

make[2]: *** No rule to make target 'Make.inc'.  Stop.

make[2]: Leaving directory '/home/pi/hpl-2.1/src/auxil/rpi'

Make.top:54: recipe for target 'build_src' failed

make[1]: *** [build_src] Error 2

make[1]: Leaving directory '/home/pi/hpl-2.1'

Makefile:72: recipe for target 'build' failed

make: *** [build] Error 2

Can someone please help.

By: Jimmy

Hi all,

Is it possible to run the same HPL.dat file for single node and the GFlops to be 1.302e+00???? instead of MFlops???

what am I doing wrong??

pi@rpi01-master:~/cloud/hpl-2.2/bin/rpi $ ./xhpl

================================================================================

HPLinpack 2.2  --  High-Performance Linpack benchmark  --   February 24, 2016

Written by A. Petitet and R. Clint Whaley,  Innovative Computing Laboratory, UTK

Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK

Modified by Julien Langou, University of Colorado Denver

================================================================================

 

An explanation of the input/output parameters follows:

T/V    : Wall time / encoded variant.

N      : The order of the coefficient matrix A.

NB     : The partitioning blocking factor.

P      : The number of process rows.

Q      : The number of process columns.

Time   : Time in seconds to solve the linear system.

Gflops : Rate of execution for solving the linear system.

 

The following parameter values will be used:

 

N      :    5040 

NB     :     128 

PMAP   : Row-major process mapping

P      :       1 

Q      :       1 

PFACT  :   Right 

NBMIN  :       4 

NDIV   :       2 

RFACT  :   Crout 

BCAST  :  1ringM 

DEPTH  :       1 

SWAP   : Mix (threshold = 64)

L1     : transposed form

U      : transposed form

EQUIL  : yes

ALIGN  : 8 double precision words

 

--------------------------------------------------------------------------------

 

- The matrix A is randomly generated for each test.

- The following scaled residual check will be computed:

      ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )

- The relative machine precision (eps) is taken to be               1.110223e-16

- Computational tests pass if scaled residuals are less than                16.0

 

================================================================================

T/V                N    NB     P     Q               Time                 Gflops

--------------------------------------------------------------------------------

WR11C2R4        5040   128     1     1              65.60              1.302e+00

HPL_pdgesv() start time Wed Feb 21 00:25:40 2018

 

HPL_pdgesv() end time   Wed Feb 21 00:26:45 2018

 

--------------------------------------------------------------------------------

||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0020313 ...... PASSED

================================================================================

 

Finished      1 tests with the following results:

              1 tests completed and passed residual checks,

              0 tests completed and failed residual checks,

              0 tests skipped because of illegal input values.

--------------------------------------------------------------------------------

 

End of Tests.

================================================================================

pi@rpi01-master:~/cloud/hpl-2.2/bin/rpi $ 

By: Jimmy

Hi all,

Is it possible to run the same HPL.dat file for single node and the GFlops to be 1.302e+00???? instead of MFlops???

what am I doing wrong??

pi@rpi01-master:~/cloud/hpl-2.2/bin/rpi $ ./xhpl

================================================================================

HPLinpack 2.2  --  High-Performance Linpack benchmark  --   February 24, 2016

Written by A. Petitet and R. Clint Whaley,  Innovative Computing Laboratory, UTK

Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK

Modified by Julien Langou, University of Colorado Denver

================================================================================

 

An explanation of the input/output parameters follows:

T/V    : Wall time / encoded variant.

N      : The order of the coefficient matrix A.

NB     : The partitioning blocking factor.

P      : The number of process rows.

Q      : The number of process columns.

Time   : Time in seconds to solve the linear system.

Gflops : Rate of execution for solving the linear system.

 

The following parameter values will be used:

 

N      :    5040 

NB     :     128 

PMAP   : Row-major process mapping

P      :       1 

Q      :       1 

PFACT  :   Right 

NBMIN  :       4 

NDIV   :       2 

RFACT  :   Crout 

BCAST  :  1ringM 

DEPTH  :       1 

SWAP   : Mix (threshold = 64)

L1     : transposed form

U      : transposed form

EQUIL  : yes

ALIGN  : 8 double precision words

 

--------------------------------------------------------------------------------

 

- The matrix A is randomly generated for each test.

- The following scaled residual check will be computed:

      ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )

- The relative machine precision (eps) is taken to be               1.110223e-16

- Computational tests pass if scaled residuals are less than                16.0

 

================================================================================

T/V                N    NB     P     Q               Time                 Gflops

--------------------------------------------------------------------------------

WR11C2R4        5040   128     1     1              65.60              1.302e+00

HPL_pdgesv() start time Wed Feb 21 00:25:40 2018

 

HPL_pdgesv() end time   Wed Feb 21 00:26:45 2018

 

--------------------------------------------------------------------------------

||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0020313 ...... PASSED

================================================================================

 

Finished      1 tests with the following results:

              1 tests completed and passed residual checks,

              0 tests completed and failed residual checks,

              0 tests skipped because of illegal input values.

--------------------------------------------------------------------------------

 

End of Tests.

================================================================================

pi@rpi01-master:~/cloud/hpl-2.2/bin/rpi $ 

By: liuao

I have the same problem with you,did you solve the problem ?  If you solve it ,I hope you can tell me how to do with it if you are free, thanks

By: shaunx

Used version hpl-2.3

wget https://netlib.org/benchmark/hpl/hpl-2.3.tar.gz

 

gunzip hpl-2.3.tar.gz; tar -xvf hpl-2.3.tar

 

sudo apt-get install libatlas-base-dev gfortran libmpich2-3/stable libopenmpi-dev openmpi-common

 make arch=rpi 

 

 

modifcations to make.rpi

 

TOPdir       = $(HOME)/hpl-2.3

 

MPdir        = /usr/lib/arm-linux-gnueabihf/openmpi/

MPinc        = I $(MPdir)/include

MPlib        = $(MPdir)/lib/libmpich.a 

 

LAdir        =/usr/lib/arm-linux-gnueabihf/

LAinc        =/usr/include/arm-linux-gnueabihf/atlas/

LAlib      = $(LAdir)/libf77blas.a $(LAdir)/libatlas.a

 

Version 2.3 used /testing instead of bin/arch

 

Used RasPi 4

================================================================================

HPLinpack 2.3  --  High-Performance Linpack benchmark  --   December 2, 2018

Written by A. Petitet and R. Clint Whaley,  Innovative Computing Laboratory, UTK

Modified by Piotr Luszczek, Innovative Computing Laboratory, UTK

Modified by Julien Langou, University of Colorado Denver

================================================================================

 

An explanation of the input/output parameters follows:

T/V    : Wall time / encoded variant.

N      : The order of the coefficient matrix A.

NB     : The partitioning blocking factor.

P      : The number of process rows.

Q      : The number of process columns.

Time   : Time in seconds to solve the linear system.

Gflops : Rate of execution for solving the linear system.

 

The following parameter values will be used:

 

N      :    5040 

NB     :     128 

PMAP   : Row-major process mapping

P      :       1 

Q      :       1 

PFACT  :   Right 

NBMIN  :       4 

NDIV   :       2 

RFACT  :   Crout 

BCAST  :  1ringM 

DEPTH  :       1 

SWAP   : Mix (threshold = 64)

L1     : transposed form

U      : transposed form

EQUIL  : yes

ALIGN  : 8 double precision words

 

--------------------------------------------------------------------------------

 

- The matrix A is randomly generated for each test.

- The following scaled residual check will be computed:

      ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )

- The relative machine precision (eps) is taken to be               1.110223e-16

- Computational tests pass if scaled residuals are less than                16.0

 

================================================================================

T/V                N    NB     P     Q               Time                 Gflops

--------------------------------------------------------------------------------

WR11C2R4        5040   128     1     1              10.00             8.5409e+00

HPL_pdgesv() start time Tue Jan  7 02:53:36 2025

 

HPL_pdgesv() end time   Tue Jan  7 02:53:46 2025

 

--------------------------------------------------------------------------------

||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=   2.03131801e-03 ...... PASSED

================================================================================

 

Finished      1 tests with the following results:

              1 tests completed and passed residual checks,

              0 tests completed and failed residual checks,

              0 tests skipped because of illegal input values.

--------------------------------------------------------------------------------

 

End of Tests.

================================================================================