Niels Horn's Blog
Random thoughts, tips & tricks about Slackware-Linux, Lego and Star WarsBenchmarking with nbench
February 15th, 2010 by Niels Horn in ARMedslack, Hercules, Qemu, Slack/390, emulation, nbench
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 nbench 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 SlackBuilds.org, so that you can build them yourself on your machines.