Compiling ATLAS and HPL on the HP a4313w computer

Contents

The “Passmark” value for the AMD Sempron LE-1250 CPU (2200 MHz) in the computer Mona got from her cousin is 541 (see https://m.cpubenchmark.net/cpu.php?id=428 or do a search on the web for Passmark AMD Sempron LE-1250.) That puts it just above the Acer Aspire T180 system I got from Mildred: it has an AMD Athlon 64 3500+ CPU running at 2200 MHz, passmark 539. While the PassMark value serves as a good proxy for CPU performance, it’s not infallible; I prefer to use the HPL (High Performance Linpack) benchmark as my final arbitrator.

I tried running the HPL with the ATLAS library supplied with Fedora 28 on the a4313w, but it died attempting to start new threads. I suspec that was because the Fedora ATLAS library was complied for multi-core CPUs. But the AMD Sempron has only one CPU core.

Having built ATLAS for a single-core AMD Duron CPU earlier this year, I decided to have a go at doing the same on this computer.

ATLAS notes

  • Retrieved ATLAS from SourceForge and unpacked it into /var/tmp
  • Retrived LAPACK using the following command:   wget http://www.netlib.org/lapack/lapack-3.8.0.tar.gz
  • Installed gcc-gfortran
  • I had to do three things to turn off the CPU throttling:
    1. Install the kernel-tools package
    2. Boot the system with the kernel parameter intel_pstate=disable
    3. Issue the command cpupower frequency-set --governor performance
  • In /var/tmp/ATLAS, created directory Linux_AMD_Sempron and moved into it
  • Issued the following command to configure ATLAS:
      ../configure --with-netlib-lapack-tarfile=/var/tmp/lapack-3.8.0.tar.gz 2>&1 |
        tee build.1.configure.text
  • Issued the following command to build ATLAS:
      time make build 2>&1 |
        perl -ne 'BEGIN{use POSIX "strftime";$|=1} print strftime("%T",localtime), " $_"' |
        tee build.2.make-build.text
  • Rather to my surprise, it built in less than an hour. In the past this has indicated a failed build, but make check passed with no errors
  • make install installed the libraries into /usr/local/atlas/lib:
  • libatlas.a
  • libcblas.a
  • libf77blas.a
  • liblapack.a

libmpich notes

  • Installed using dnf install mpich mpich-devel
  • Updated ldconfig using echo "/usr/lib64/mpich/lib" >/etc/ld.so.conf.d/mpich.conf; ldconfig

HPL notes

  • Retrieved HPL 2.2 from penguin:/var/local/archive/HPL/hpl-2.2.tar.gz

  • Unpacked it into /var/tmp/HPL/hpl-2.2

  • Built it following the instructions in my 2016 notebook, using the Make.Linux_ATHLON_CBLAS file from the setup directory

  • In the Make.Linux_ATHLON_CBLAS file, set variables as follows: _

    TOPdir = /var/tmp/hpl-2.2
    MPdir  =    (left empty)
    MPinc  = -I/usr/include/mpich-x86_64
    MPlib  = /usr/lib64/mpich/lib/libmpich.so
    LAdir  = /usr/local/atlas/lib
    LAinc  =    (left empty)
    LAlib  = $(LAdir)/libcblas.a $(LAdir)/libatlas.a   (its original value)
    
  • Used the following command to make the HPL: _

    HPL_ARCH='Linux_ATHLON_CBLAS'; make arch=$HPL_ARCH 2>&1 | tee build.1.make.text
    
  • Used the following parameters in /var/tmp/HPL/hpl-2.2/bin/Linux_ATHLON_CBLAS/HPL.dat: (the same values used when running the test on AMD Athlon 64 3500+):

    7296          Ns  
    1            # of NBs 
    192           NBs 
    2            Ps  
    2            Qs
    
  • Issued the following commands to run the HPL:

    cd /var/tmp/HPL/hpl2-2/bin/Linux_ATHLON_CBLAS
    time /usr/lib64/mpich/bin/mpiexec -launcher fork -n 4 ./xhpl
    

The result: a very disappointing 1,904 MFLOPS

After all was said and done, the HPL benchmark returned an average of 1,904 MFLOPS over three trials (1897, 1910, 1904.) That’s 23% slower than the value of 2,472 returned for AMD Athlon 64 3500+ (with a stock ATLAS, no less) and is only 7% faster than Raspberry Pi 3 (1,775 MFLOPS!)

Comparison of the AMD Athlon 64 3500+ and AMD Sempron LE-1250 CPUs

Property Athlon 64 3500+ AMD Sempron LE-1250
(In system) Acer Aspire T180 (Mildred) HP a4313w (via Mona)
Introduced April 2005 August 2007
Target Market Hardware enthusiast/Gamer Budget desktop
AMD CPU Family Athlon 64 Opteron
Core technology AMD K8 SledgeHammer AMD K8 SledgeHammer
Cores 1 1
Clock Speed 2200 MHz 2200 MHz
Family/Model/Stepping 15 / 95 / 2 15 / 127 / 2
Model Venice (90 nm SOI) Sparta (65 mn SOI)
Socket Socket 939 Socket AM2
Linux bogomips 2009 4420
PassMark 539 541
HPL (MFLOPS) 2,472 1,906

Result with n=9984: 2,160 MFLOPS

As a test, I re-ran the HPL with a larger n value of 9984, and saw a slightly improved performance. Over three trials I got 2155, 2157, and 2168, with an average of 2,160 MFLOPS.