Random thoughts, tips & tricks about Slackware-Linux, Lego and Star Wars

Benchmarking with nbench

February 15th, 2010 by Niels Horn in , , , , ,

Since I was doing some tests with Slackware running on different platforms (Slack/390, Slack/390x, ArmedSlack on Qemu, etc.) I wanted to compare the performance of the different setups.

I used a (quite old) utility called that was originally written in 1995 but still is a simple way to compare how processors perform, emulated or real. And it has a nice advantage that it can be built on x86, s390 and Arm processors without problems.

Here is the result of Slack/390x-11.0 running in Hercules 3.06 with two emulated processors:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
 : : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 34.476 : 0.88 : 0.29
STRING SORT : 3.012 : 1.35 : 0.21
BITFIELD : 8.3237e+06 : 1.43 : 0.30
FP EMULATION : 2.3056 : 1.11 : 0.26
FOURIER : 70.649 : 0.08 : 0.05
ASSIGNMENT : 0.35083 : 1.33 : 0.35
IDEA : 94.416 : 1.44 : 0.43
HUFFMAN : 34.368 : 0.95 : 0.30
NEURAL NET : 0.10472 : 0.17 : 0.07
LU DECOMPOSITION : 3.5645 : 0.18 : 0.13
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 1.194
FLOATING-POINT INDEX: 0.136
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU : Dual IBM/S390
L2 Cache :
OS : Linux 2.4.33.3
C compiler : gcc version 3.4.6
libc :
MEMORY INDEX : 0.278
INTEGER INDEX : 0.314
FLOATING-POINT INDEX: 0.075
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

And here is the result of ArmedSlack running in Qemu:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
 : : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 199.84 : 5.13 : 1.68
STRING SORT : 22.453 : 10.03 : 1.55
BITFIELD : 9.048e+07 : 15.52 : 3.24
FP EMULATION : 28.281 : 13.57 : 3.13
FOURIER : 139.34 : 0.16 : 0.09
ASSIGNMENT : 4.4836 : 17.06 : 4.43
IDEA : 922.7 : 14.11 : 4.19
HUFFMAN : 322.93 : 8.95 : 2.86
NEURAL NET : 0.26406 : 0.42 : 0.18
LU DECOMPOSITION : 8.8432 : 0.46 : 0.33
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 11.288
FLOATING-POINT INDEX: 0.313
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU :
L2 Cache :
OS : Linux 2.6.32.7-versatile
C compiler : gcc version 4.4.3 (GCC)
libc : libc-2.11.1.so
MEMORY INDEX : 2.814
INTEGER INDEX : 2.819
FLOATING-POINT INDEX: 0.174
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38
* Trademarks are property of their respective holder.

And finally, my host system where Hercules and Qemu run:

BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
 : : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 1339.8 : 34.36 : 11.28
STRING SORT : 282.56 : 126.26 : 19.54
BITFIELD : 5.6507e+08 : 96.93 : 20.25
FP EMULATION : 186.88 : 89.67 : 20.69
FOURIER : 30009 : 34.13 : 19.17
ASSIGNMENT : 38.938 : 148.16 : 38.43
IDEA : 8292 : 126.82 : 37.65
HUFFMAN : 2983.2 : 82.72 : 26.42
NEURAL NET : 61.4 : 98.63 : 41.49
LU DECOMPOSITION : 1939.9 : 100.50 : 72.57
==========================ORIGINAL BYTEMARK RESULTS==========================
INTEGER INDEX : 92.652
FLOATING-POINT INDEX: 69.676
Baseline (MSDOS*) : Pentium* 90, 256 KB L2-cache, Watcom* compiler 10.0
==============================LINUX DATA BELOW===============================
CPU : Dual GenuineIntel Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz 3010MHz
L2 Cache : 6144 KB
OS : Linux 2.6.32.7-custom64
C compiler : gcc version 4.4.3 (GCC)
libc : libc-2.11.1.so
MEMORY INDEX : 24.774
INTEGER INDEX : 21.953
FLOATING-POINT INDEX: 38.645
Baseline (LINUX) : AMD K6/233*, 512 KB L2-cache, gcc 2.7.2.3, libc-5.4.38

As you can see, the S/390 emulation is the one that suffers most. The new s390x 64-bits version performs a bit faster, but the processor on the host machine tops at 100% during more complex tasks.

I won't put all the different (i486 / x86_64 / arm / s390 / s390x) packages on my site, but I'll submit the SlackBuild script to , so that you can build them yourself on your machines.