I'm happy to report the Pi 3B+ which I've been using

does not lockup at standard clock settings. Moreover, it is able to correctly solve systems of linear equations using the

OpenBLAS subroutine library tested with the

Linpack benchmark. Note that I have compiled OpenBLAS from source, because the version distributed with Raspbian is slow having been compiled for ARMv6 compatibility. For the MPI library and Fortran compiler I used

$ apt-get install libopenmpi-dev gfortran

to install the standard binary packages from Raspbian. The results

Code: Select all

```
================================================================================
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 : 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 50.82 6.718e+00
HPL_pdgesv() start time Mon Apr 23 17:00:48 2018
HPL_pdgesv() end time Mon Apr 23 17:01:39 2018
--------------------------------------------------------------------------------
||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.
================================================================================
```

indicate that the 3B+ scores 6.718 Gflops, which is about about 4.76 percent faster than the original Raspberry Pi 3B

at default clock settings. While this is less than the expected 16 percent based on clock speed, I am quite happy that correct answers were always produced. It would be great if someone else could confirm this as a best effort result at default settings or obtain a better one.

At any rate, it is a big improvement compared to my old 3B which frequently crashes at the default clock settings. No heatsink was used, however a hairdryer set to cold was directed toward the Pi during the run. As a result there was no throttling, as indicated by the output

Code: Select all

```
0 frequency(45)=600000000 temp=39.2'C volt=1.2000V throttled=0x0
3 frequency(45)=600000000 temp=38.6'C volt=1.2000V throttled=0x0
6 frequency(45)=600000000 temp=37.6'C volt=1.2000V throttled=0x0
9 frequency(45)=1400002000 temp=39.2'C volt=1.3750V throttled=0x0
12 frequency(45)=1400000000 temp=39.7'C volt=1.3750V throttled=0x0
15 frequency(45)=1400002000 temp=39.7'C volt=1.3750V throttled=0x0
18 frequency(45)=1400000000 temp=49.4'C volt=1.3750V throttled=0x0
21 frequency(45)=1400000000 temp=53.7'C volt=1.3750V throttled=0x0
24 frequency(45)=1400000000 temp=55.8'C volt=1.3750V throttled=0x0
27 frequency(45)=1400000000 temp=58.5'C volt=1.3750V throttled=0x0
30 frequency(45)=1400000000 temp=60.1'C volt=1.3750V throttled=0x0
33 frequency(45)=1400000000 temp=60.1'C volt=1.3813V throttled=0x0
36 frequency(45)=1400000000 temp=60.1'C volt=1.3813V throttled=0x0
39 frequency(45)=1400000000 temp=61.2'C volt=1.3813V throttled=0x0
42 frequency(45)=1400000000 temp=61.2'C volt=1.3813V throttled=0x0
45 frequency(45)=1400000000 temp=61.2'C volt=1.3813V throttled=0x0
48 frequency(45)=1400002000 temp=61.2'C volt=1.3813V throttled=0x0
51 frequency(45)=1399998000 temp=61.2'C volt=1.3813V throttled=0x0
54 frequency(45)=1400000000 temp=61.2'C volt=1.3813V throttled=0x0
57 frequency(45)=1400000000 temp=62.3'C volt=1.3813V throttled=0x0
60 frequency(45)=1400000000 temp=61.2'C volt=1.3813V throttled=0x0
63 frequency(45)=1400000000 temp=60.7'C volt=1.3813V throttled=0x0
66 frequency(45)=1400000000 temp=52.6'C volt=1.3750V throttled=0x0
69 frequency(45)=1400000000 temp=49.4'C volt=1.3750V throttled=0x0
72 frequency(45)=1400000000 temp=47.2'C volt=1.3750V throttled=0x0
75 frequency(45)=600000000 temp=43.5'C volt=1.2000V throttled=0x0
78 frequency(45)=600000000 temp=41.9'C volt=1.2000V throttled=0x0
81 frequency(45)=600000000 temp=40.8'C volt=1.2000V throttled=0x0
84 frequency(45)=600000000 temp=39.7'C volt=1.2000V throttled=0x0
87 frequency(45)=600000000 temp=39.7'C volt=1.2000V throttled=0x0
```

for the script

Code: Select all

```
#!/bin/bash
# 00 (0x00001): under-voltage
# 01 (0x00002): arm frequency capped
# 02 (0x00004): currently throttled
# 17 (0x20000): arm frequency capped has occured
# 18 (0x40000): throttling has occured
let t=0
while true
do
frequency=`vcgencmd measure_clock arm`
temp=`vcgencmd measure_temp`
volt=`vcgencmd measure_volts core`
throttled=`vcgencmd get_throttled`
echo $t $frequency $temp $volt $throttled
let t=$t+3
sleep 3
done
```

No timings were made with the hairdryer set to hot mode, nor will they be made using my Pi!