gmp benchmarks on a Niagara T5220

Dennis Clarke dclarke at blastwave.org
Mon Feb 20 19:29:22 CET 2012


> Does this machine have serious FPU problems, like T1?  Then GMP 5.1
> should help a lot, but the solid last place will not be threatened by
> these optimisations.  :-)

Well let's take the code pi8.c at this page :

    http://www.boo.net/~jasonp/pipage.html

Compile it on a 400MHz Pentium III :

titan-i386-SunOS5.8 $ echo $CFLAGS
-erroff -xstrconst -xildoff -xarch=pentium_pro -xnolibmil -Xa -KPIC
-xregs=no%frameptr -xlibmieee -mc -g -xs -nofstore -ftrap=%none -Qy -V
-xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -DSOLARIS2=8
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -DDIG_SIGCHASE -D_TS_ERRNO

titan-i386-SunOS5.8 $ cc $CFLAGS -o
/export/medusa/dclarke/pgm/C/pi/pi_pentium_pro
/export/medusa/dclarke/pgm/C/pi/pi.c -lm
cc: Sun C 5.8 Patch 121016-08 2009/04/20
acomp: Sun C 5.8 Patch 121016-08 2009/04/20
ld: Software Generation Utilities - Solaris Link Editors: 5.8-1.302
titan-i386-SunOS5.8 $ psrinfo -v
Status of virtual processor 0 as of: 02/20/12 17:32:34
  on-line since 04/28/11 17:39:44.
  The i386 processor operates at 400 MHz,
        and has an i387 compatible floating point processor.
Status of virtual processor 1 as of: 02/20/12 17:32:34
  on-line since 04/28/11 17:39:48.
  The i386 processor operates at 400 MHz,
        and has an i387 compatible floating point processor.

Does it work ?

titan-i386-SunOS5.8 $ ptime /tmp/pi_pentium_pro 100

PI = 3.
1415926535 8979323846 2643383279 5028841971 6939937510
5820974944 5923078164 0628620899 8628034825 3421170681


Calculation time 0

real        0.010
user        0.003
sys         0.005

And for 10000 digits ?

titan-i386-SunOS5.8 $ ptime /tmp/pi_pentium_pro 10000 > /dev/null

real       11.398
user       11.383
sys         0.006


How about the Niagara T2 T5220 ?

eris-sparc-SunOS5.10 $ gcc $CFLAGS -O2 -o pi_niagara_t2 pi8.c -lm
eris-sparc-SunOS5.10 $ ldd pi_niagara_t2
        libm.so.2 =>     /lib/64/libm.so.2
        libc.so.1 =>     /lib/64/libc.so.1
        /platform/SUNW,SPARC-Enterprise-T5220/lib/sparcv9/libc_psr.so.1
eris-sparc-SunOS5.10 $ ptime ./pi_niagara_t2 10000 > /dev/null

real        3.320
user        3.315
sys         0.004


Hrmmmmm .. about three times faster than a Pentium III, not bad.

Let's try the Studio 12 compiler real quick and dirty :

eris-sparc-SunOS5.10 $ ptime ./pi_niagara_t2_studio 10000 > /dev/null

real        2.697
user        2.692
sys         0.004


Wow ... big difference from gcc 4.6.2 but we expected that.

Let's try another box :

test-sparc-SunOS5.10 # psrinfo -pv
The physical processor has 2 virtual processors (0 16)
  UltraSPARC-IV+ (portid 0 impl 0x19 ver 0x24 clock 1800 MHz)
The physical processor has 2 virtual processors (1 17)
  UltraSPARC-IV+ (portid 1 impl 0x19 ver 0x22 clock 1800 MHz)
The physical processor has 2 virtual processors (2 18)
  UltraSPARC-IV+ (portid 2 impl 0x19 ver 0x24 clock 1800 MHz)
The physical processor has 2 virtual processors (3 19)
  UltraSPARC-IV+ (portid 3 impl 0x19 ver 0x22 clock 1800 MHz)

dev.adbs.ca $ which cc
/usr/bin/cc
dev.adbs.ca $ cc -V
cc: Sun C 5.9 SunOS_sparc Patch 124867-16 2010/08/11
usage: cc [ options] files.  Use 'cc -flags' for details


dev.adbs.ca $ fpversion
 A SPARC-based CPU is available.
 Kernel says CPU's clock rate is 1800.0 MHz.
 Kernel says main memory's clock rate is 150.0 MHz.

 Sun-4 floating-point controller version 0 found.
 An UltraSPARC chip is available.

 Use "-xtarget=ultra4plus -xcache=64/32/4:2048/64/4:32768/64/4"
code-generation option.

dev.adbs.ca $ file pi_ultra4plus
pi_ultra4plus: ELF 64-bit MSB executable SPARCV9 Version 1, UltraSPARC1
Extensions Required, dynamically linked, not stripped
dev.adbs.ca $ ldd pi_ultra4plus
        libm.so.2 =>     /lib/64/libm.so.2
        libc.so.1 =>     /lib/64/libc.so.1
        /platform/SUNW,Sun-Fire-V490/lib/sparcv9/libc_psr.so.1
dev.adbs.ca $ ptime ./pi_ultra4plus 10000 > /dev/null

real        1.771
user        1.768
sys         0.002

Well that is a lot faster than the T5220 and I guess it could be just
clock speed at play here. Not sure really.

I could use cputrack ot really check it but why bother right?

Here is a 4 way AMD Opteron box :

europa-i386-SunOS5.10 $ psrinfo -pv
The physical processor has 2 virtual processors (0 1)
  x86 (chipid 0x0 AuthenticAMD family 15 model 33 step 0 clock 2200 MHz)
        Dual Core AMD Opteron(tm) Processor 875
The physical processor has 2 virtual processors (2 3)
  x86 (chipid 0x1 AuthenticAMD family 15 model 33 step 0 clock 2200 MHz)
        Dual Core AMD Opteron(tm) Processor 875
The physical processor has 2 virtual processors (4 5)
  x86 (chipid 0x2 AuthenticAMD family 15 model 33 step 0 clock 2200 MHz)
        Dual Core AMD Opteron(tm) Processor 875
The physical processor has 2 virtual processors (6 7)
  x86 (chipid 0x3 AuthenticAMD family 15 model 33 step 0 clock 2200 MHz)
        Dual Core AMD Opteron(tm) Processor 875

europa-i386-SunOS5.10 $ cc -fast -m64 -o pi_opteron pi8.c -lm

europa-i386-SunOS5.10 $ ptime ./pi_opteron 10000 > /dev/null

real        1.292
user        1.290
sys         0.001

Well I may have to go try gmpbench on the UltraSparc IV+ box as well
as the Opteron but the Niagara T2 looks to be a bit of a dog and I am
not sure why.

Dennis

ps: funny, your userid tege and pub key are still here ya know. :-\



-- 
--
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