Tibor's Musings

Python Speed on AMD vs Intel

The speed of the Python interpreter on the Intel Core 2 Duo test system seems to be better by about 20-25 percent when compared to our hitherto-fastest AMD Opteron system, at an equivalent CPU speed.

I did two Python benchmarks, pystones (simple) and pybench (preferred, complete benchmark suite). The results are:

Machine Pystones/sec Pystns/sec/GHz Pybench [sec] Pybench*GHz
PCUDS17 38759 (~ 99%) 22866 (~179%) 48.405 ( -0%) 82.046 (-46%)
SUNUDS99 39062 (=100%) 12777 (=100%) 49.808 ( =0%) 152.263 ( =0%)
SUNUDS93 +53763 (~138%) +22469 (~176%) -33.007 (-34%) -78.985 (-48%)
SUNUDS94 58139 (~149%) 24325 (~190%) 31.730 (-36%) 75.834 (-50%)
PCITFIOT02 75757 (~194%) 25311 (~198%) 20.260 (-59%) 60.638 (-60%)

The difference between PCITFIOT02 (Intel Core 2 Duo) and SUNUDS9{3,4} (AMD Opteron) running at an equivalent CPU speed (Pybench*GHz) is 20-22 percent for Core 2 Duo in pybench, and 4-12 percent in pystones.

I have also run some other simple crunch tests, e.g. a stress test of the garbage collection on binary trees, that gave ~25-30 percent speedup for the Core 2 Duo system when compared to AMD Opteron running at an equivalent CPU speed. Therefore I'd guess that the pybench result of 20-22 percent is fairly trustworthy.

Machine details:

PCUDS17: IBM ThinkPad T42
CPU = Intel(R) Pentium(R) M processor 1.695 GHz OS = Debian GNU/Linux "Sarge" i386 32-bit Python = Python 2.3.5 (#2, Sep 4 2005, 22:01:42) [GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
SUNUDS99: Sun Fire V65x
CPU = Intel(R) Xeon(TM) CPU 3.057 GHz OS = Debian GNU/Linux "Sarge" i386 32-bit Python = Python 2.3.4 (#1, Dec 8 2004, 16:51:14) [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
SUNUDS93: Sun Fire V20z
CPU = AMD Opteron(tm) Processor 250 2.393 GHz OS = Debian GNU/Linux "Sarge" amd64 64-bit Python = Python 2.3.4 (#2, Feb 21 2006, 17:44:05) [GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
SUNUDS94: Sun Fire V20z
CPU = AMD Opteron(tm) Processor 250 2.390 GHz OS = Debian GNU/Linux "Sarge" amd64 64-bit Python = Python 2.3.5 (#2, Sep 9 2005, 21:37:55) [GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
PCITFIOT02: ? Core 2 Duo
CPU = Genuine Intel(R) CPU [Woodcrests 5160?] 2.993 GHz OS = Scientific Linux CERN 4 64-bit Python = Python 2.3.4 (#1, Mar 12 2006, 16:28:27) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Machine notes:
The Python version numbers and the compiler options differed a bit, so the comparison is not the most accurate there is, but the difference due to this factor should be within ~5% or so, as shown by the difference in SUNUDS9{3,4} results. Moreover, some of the machines such as SUNUDS93 were tested during moderate load, which may account for a couple of percents. Ideally one should install the same OS on the machines and test them when idle; moreover, with the CDS server software to have the precise performance numbers for our concrete application. But the numbers cited above give already quite a good speed estimate.

python