gmp benchmarks on a Niagara T5220

Dennis Clarke dclarke at blastwave.org
Mon Feb 20 17:55:40 CET 2012


I had to work a little bit to get your gmpbench process to run. The
instructions were not the most clear, but clear enough.

Here is what I did and do let me know if these results mean anything:

1) firstly we have the server itself

t5220-sparc-SunOS5.10 $ prtdiag -v
System Configuration:  Oracle Corporation  sun4v SPARC Enterprise T5220
Memory size: 16256 Megabytes

================================ Virtual CPUs ================================


CPU ID Frequency Implementation         Status
------ --------- ---------------------- -------
0      1165 MHz  SUNW,UltraSPARC-T2     on-line
1      1165 MHz  SUNW,UltraSPARC-T2     on-line
2      1165 MHz  SUNW,UltraSPARC-T2     on-line
3      1165 MHz  SUNW,UltraSPARC-T2     on-line
4      1165 MHz  SUNW,UltraSPARC-T2     on-line
5      1165 MHz  SUNW,UltraSPARC-T2     on-line
6      1165 MHz  SUNW,UltraSPARC-T2     on-line
7      1165 MHz  SUNW,UltraSPARC-T2     on-line
16     1165 MHz  SUNW,UltraSPARC-T2     on-line
17     1165 MHz  SUNW,UltraSPARC-T2     on-line
18     1165 MHz  SUNW,UltraSPARC-T2     on-line
19     1165 MHz  SUNW,UltraSPARC-T2     on-line
20     1165 MHz  SUNW,UltraSPARC-T2     on-line
21     1165 MHz  SUNW,UltraSPARC-T2     on-line
22     1165 MHz  SUNW,UltraSPARC-T2     on-line
23     1165 MHz  SUNW,UltraSPARC-T2     on-line
24     1165 MHz  SUNW,UltraSPARC-T2     on-line
25     1165 MHz  SUNW,UltraSPARC-T2     on-line
26     1165 MHz  SUNW,UltraSPARC-T2     on-line
27     1165 MHz  SUNW,UltraSPARC-T2     on-line
28     1165 MHz  SUNW,UltraSPARC-T2     on-line
29     1165 MHz  SUNW,UltraSPARC-T2     on-line
30     1165 MHz  SUNW,UltraSPARC-T2     on-line
31     1165 MHz  SUNW,UltraSPARC-T2     on-line
32     1165 MHz  SUNW,UltraSPARC-T2     on-line
33     1165 MHz  SUNW,UltraSPARC-T2     on-line
34     1165 MHz  SUNW,UltraSPARC-T2     on-line
35     1165 MHz  SUNW,UltraSPARC-T2     on-line
36     1165 MHz  SUNW,UltraSPARC-T2     on-line
37     1165 MHz  SUNW,UltraSPARC-T2     on-line
38     1165 MHz  SUNW,UltraSPARC-T2     on-line
39     1165 MHz  SUNW,UltraSPARC-T2     on-line

======================= Physical Memory Configuration ========================
Segment Table:
--------------------------------------------------------------
Base           Segment  Interleave  Bank     Contains
Address        Size     Factor      Size     Modules
--------------------------------------------------------------
0x0            16 GB    4           4 GB     MB/CMP0/BR0/CH0/D0
                                             MB/CMP0/BR0/CH1/D0
                                    4 GB     MB/CMP0/BR1/CH0/D0
                                             MB/CMP0/BR1/CH1/D0
                                    4 GB     MB/CMP0/BR2/CH0/D0
                                             MB/CMP0/BR2/CH1/D0
                                    4 GB     MB/CMP0/BR3/CH0/D0
                                             MB/CMP0/BR3/CH1/D0

etc etc ...

============================ FW Version ============================
Version
------------------------------------------------------------
 Sun System Firmware 7.4.2 2011/11/19 09:16


====================== System PROM revisions =======================
Version
------------------------------------------------------------
OBP 4.33.4 2011/11/17 13:46

Please bear in mind that there really isn't that many processors or
even cores for that matter. It is a cruel joke on the part of some
Sun engineers somewhere I am sure.  Even this is not clear :

t5220-sparc-SunOS5.10 $ psrinfo -pv
The physical processor has 32 virtual processors (0-7 16-39)
  UltraSPARC-T2 (chipid 0, clock 1165 MHz)

Still no help there. Really it is a quad core UltraSPARC T2 which
does a great job, at 1.2GHz more or less, of pushing eight threads
of execution through each of its cores.

2) The operating system is good old Solaris 10 :

t5220-sparc-SunOS5.10 $ cat /etc/release
                   Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC
  Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved.
                            Assembled 23 August 2011

3) The compiler used was my own GCC 4.6.2 :

eris-sparc-SunOS5.10 $ which gcc
/opt/bw/bin/gcc

eris-sparc-SunOS5.10 $ gcc --version
gcc (Blastwave.org Inc Mon Nov  7 16:53:21 GMT 2011) 4.6.2
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

eris-sparc-SunOS5.10 $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/bw/lib/gcc/sparc-sun-solaris2.8/4.6.2/lto-wrapper
Target: sparc-sun-solaris2.8
Configured with: ../gcc-4.6.2/configure --host=sparc-sun-solaris2.8
--build=sparc-sun-solaris2.8 --with-as=/usr/ccs/bin/as --without-gnu-ld
--with-ld=/usr/ccs/bin/ld --enable-multilib --enable-nls
--enable-threads=posix --prefix=/opt/bw --enable-shared
--libdir=/opt/bw/lib/sparcv8 --with-gmp-include=/opt/bw/include
--with-gmp-lib=/opt/bw/lib/sparcv8 --with-mpfr-include=/opt/bw/include
--with-mpfr-lib=/opt/bw/lib/sparcv8 --with-mpc-include=/opt/bw/include
--with-mpc-lib=/opt/bw/lib/sparcv8 --libexecdir=/opt/bw/lib
--with-gxx-include-dir=/opt/bw/include --with-local-prefix=/opt/bw/include
--with-pkgversion='Blastwave.org Inc Mon Nov  7 16:53:21 GMT 2011'
--with-bugurl=http://www.blastwave.org/support
--enable-languages=c,c++,objc,fortran,ada --enable-bootstrap
Thread model: posix
gcc version 4.6.2 (Blastwave.org Inc Mon Nov  7 16:53:21 GMT 2011)
eris-sparc-SunOS5.10 $

it is solid as as rock :

http://gcc.gnu.org/ml/gcc-testresults/2011-11/msg01044.html

4) the CFLAGS and the compile :

eris-sparc-SunOS5.10 $ echo $CFLAGS
-mno-app-regs -mno-vis -m64 -O2 -D_TS_ERRNO -DSOLARIS2=8
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE

eris-sparc-SunOS5.10 $ gcc $CFLAGS gcd.c -o gcd  -lgmp
eris-sparc-SunOS5.10 $ gcc $CFLAGS gcdext.c -o gcdext -lgmp
eris-sparc-SunOS5.10 $ gcc $CFLAGS multiply.c -o multiply -lgmp
eris-sparc-SunOS5.10 $ gcc $CFLAGS divide.c -o divide -lgmp
eris-sparc-SunOS5.10 $ gcc $CFLAGS rsa.c -o rsa -lgmp
eris-sparc-SunOS5.10 $ gcc $CFLAGS pi.c -o pi -lgmp -lm

  .. and of course this little gem :

eris-sparc-SunOS5.10 $ gcc $CFLAGS gexpr.c -o gexpr -lm

The result being some bins that looks like so :

eris-sparc-SunOS5.10 $ file gcd
gcd: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not
stripped, no debugging information available

eris-sparc-SunOS5.10 $ ldd gcd
        libgmp.so.10 =>  /usr/local/lib/sparcv9/libgmp.so.10
        libc.so.1 =>     /lib/64/libc.so.1
        libgcc_s.so.1 =>         /usr/local/lib/sparcv9/libgcc_s.so.1
        libm.so.2 =>     /lib/64/libm.so.2
        /platform/SUNW,SPARC-Enterprise-T5220/lib/sparcv9/libc_psr.so.1


5) The results look like so :

Running benchmarks (propagated score accuracy exceeds printed intermediates)
  Category base
    Program multiply (weight=1)
      GMPbench.base.multiply(128)                        1.303e+06
      GMPbench.base.multiply(512)                        2.459e+05
      GMPbench.base.multiply(8192)                            3432
      GMPbench.base.multiply(131072)                          69.6
      GMPbench.base.multiply(2097152)                         2.47
      GMPbench.base.multiply(128,128)                    1.339e+06
      GMPbench.base.multiply(512,512)                    2.473e+05
      GMPbench.base.multiply(8192,8192)                       2429
      GMPbench.base.multiply(131072,131072)                   51.1
      GMPbench.base.multiply(2097152,2097152)                 1.76
      GMPbench.base.multiply(15000,10000)                     1253
      GMPbench.base.multiply(20000,10000)                      942
      GMPbench.base.multiply(30000,10000)                      564
      GMPbench.base.multiply(16777216,512)                    9.66
      GMPbench.base.multiply(16777216,262144)                0.445
    GMPbench.base.multiply                        805.69
    Program divide (weight=1)
      GMPbench.base.divide(8192,32)                      7.578e+04
      GMPbench.base.divide(8192,64)                      9.165e+04
      GMPbench.base.divide(8192,128)                      4.34e+04
      GMPbench.base.divide(8192,4096)                         4900
      GMPbench.base.divide(131072,65536)                      62.6
      GMPbench.base.divide(8388608,4194304)                  0.364
      GMPbench.base.divide(8192,8064)                    5.495e+05
      GMPbench.base.divide(16777216,262144)                  0.229
    GMPbench.base.divide                          1197.7
    Program gcd (weight=0.5)
      GMPbench.base.gcd(128,128)                         1.073e+05
      GMPbench.base.gcd(512,512)                         2.359e+04
      GMPbench.base.gcd(8192,8192)                             315
      GMPbench.base.gcd(131072,131072)                         3.7
      GMPbench.base.gcd(1048576,1048576)                     0.182
    GMPbench.base.gcd                              221.8
    Program gcdext (weight=0.5)
      GMPbench.base.gcdext(128,128)                      8.747e+04
      GMPbench.base.gcdext(512,512)                      1.444e+04
      GMPbench.base.gcdext(8192,8192)                          144
      GMPbench.base.gcdext(131072,131072)                     2.05
      GMPbench.base.gcdext(1048576,1048576)                  0.113
    GMPbench.base.gcdext                          133.32
  GMPbench.base                         549.52
  Category app
    Program rsa (weight=1)
      GMPbench.app.rsa(512)                                    508
      GMPbench.app.rsa(1024)                                  90.1
      GMPbench.app.rsa(2048)                                  17.4
    GMPbench.app.rsa                              92.693
    Program pi (weight=1)
      GMPbench.app.pi(10000)                                  26.3
      GMPbench.app.pi(100000)                                 1.08
      GMPbench.app.pi(1000000)                              0.0559
    GMPbench.app.pi                               1.1666
  GMPbench.app                          10.399
GMPbench:         75.594

real     9:28.989
user     9:27.066
sys         2.120


I ran ptime to get that final report on the bottom there.

So then ... shall I go back and build this all 32-bit'ish and give
it a go ?

Dennis



-- 
--
http://pgp.mit.edu:11371/pks/lookup?op=vindex&search=0x1D936C72FA35B44B
+-------------------------+-----------------------------------+
| Dennis Clarke           | Solaris and Linux and Open Source |
| dclarke at blastwave.org   | Respect for open standards.       |
+-------------------------+-----------------------------------+



More information about the gmp-bugs mailing list