Zope builds (new Intel C++ compiler)
Hi, I've just read an article on open-mag: http://www.open-mag.com/754088105111.htm about the new Intel C++ compiler, here are some quotes: "[...] On SuSE 7.3, the geometric mean performance for our 34 kernels soared by 47%. [...] On our Omnibook test platform running Windows XP Professional, the performance speedup versus MS Visual C++ 6.0 was not quite as dramatic as when running Linux. Here the improvement was on the order of 35%." I haven't tested it myself (maybe someone else on this list has?) -- if this compiler produces faster code, would it be possible to distribute Zope packages compiled with this compiler ? Regards, Morten
[Morten W. Petersen]
I've just read an article on open-mag:
http://www.open-mag.com/754088105111.htm
about the new Intel C++ compiler, here are some quotes:
I think you may have overlooked the one at the top of the page <wink>: Intel's C++ Compilers for Linux and Windows smoke GNU C and MS Visual C++ in number crunching benchmarks. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Intel compiler tries to exploit special short-vector hardware that's of great use in number-crunching apps that spend most of their time in tight, regular, numeric inner loops, but sits idle otherwise. There's very little of that in Python or Zope.
On Mon, Feb 11, 2002 at 05:52:26PM -0500, Tim Peters wrote:
The Intel compiler tries to exploit special short-vector hardware that's of great use in number-crunching apps that spend most of their time in tight, regular, numeric inner loops, but sits idle otherwise. There's very little of that in Python or Zope.
Would the difference be negligible? What compilers are currently used for Windows/Linux? Are 'better' compilers available? Regards, Morten
[Tim Peters]
The Intel compiler tries to exploit special short-vector hardware that's of great use in number-crunching apps that spend most of their time in tight, regular, numeric inner loops, but sits idle otherwise. There's very little of that in Python or Zope.
[Morten W. Petersen]
Would the difference be negligible?
It's impossible to say without trying it. The referenced article was specifically about number-crunching benchmarks.
What compilers are currently used for Windows/Linux?
If you build Zope yourself, whichever compiler you used <wink>. The C library is also important, and so is the OS. The PythonLabs Windows Python is built with MSVC 6.
Are 'better' compilers available?
I'm afraid there aren't easy answers here. "Try it and time it." Fiddling compiler optimization switches to favor your specific hardware can also be a big help.
Morten W. Petersen wrote:
Hi,
I've just read an article on open-mag:
http://www.open-mag.com/754088105111.htm
about the new Intel C++ compiler, here are some quotes:
"[...] On SuSE 7.3, the geometric mean performance for our 34 kernels soared by 47%. [...] On our Omnibook test platform running Windows XP Professional, the performance speedup versus MS Visual C++ 6.0 was not quite as dramatic as when running Linux. Here the improvement was on the order of 35%."
I haven't tested it myself (maybe someone else on this list has?) -- if this compiler produces faster code, would it be possible to distribute Zope packages compiled with this compiler ?
Regards,
Morten
I tried building a Python with it, and did see some significant improvements but I had problems with the shared libraries which I never quite got figured out (I didn't spend much time with it, either). However, I do build Python with gcc 3.1 (cvs) and Python 2.1.2 and with various compile options can get a 17% speedup. gcc's retargetability tends to cause problems with its optimiziations; the intermediate language form that it uses tends to lose information which machine instruction level optimizers need for certain transformations; so most of gcc's optimizations tend to be limited in what they can achieve. Intels compiler will be heavily geared for doing MMX, SSE, SSE2 where it can, and using various forms of code motion which eke better performance than gcc can. -- Matt Kromer Zope Corporation http://www.zope.com/
On Tuesday, February 12, 2002, at 07:17 AM, seb bacon wrote:
However, I do build Python with gcc 3.1 (cvs) and Python 2.1.2 and with various compile options can get a 17% speedup.
Could you share the compile options with us?
seb
OK, but be warned -- gcc cvs isnt guaranteed stable, so often I have to hand tweak things (rebuilding certain modules with different options, etc.) First pass through: edit Makefile to include the following flags to OPT= -fomit-frame-pointer -march='ppro' -fssa -fprofile-arcs make run the test suite; run pystone with the produced python make clean edit Makefile to change -fprofile-arcs to be -fbranch-predictions make make test edit the Makefile to remove the fancy optimization stuff make install You may be able in certain circumstances to be able to use -fschedule-insns and -fschedule-insns2. I dont think -fssa works but I include it anyway as long as the modules pass test. Gcc 3.0X doesn't seem to be able to make a good build with these options; gcc 3.1 (from cvs) does, but YMMV -- don't blame me or ask me for help building python with fancy options, please.
Matthew T. Kromer wrote:
OK, but be warned -- gcc cvs isnt guaranteed stable, so often I have to hand tweak things (rebuilding certain modules with different options, etc.)
In my experience, *any* gcc can produce crap code if you feed it the wrong options. It may be fun to play with options, but let me just throw in my two cents to this thread -- don't get so excited about your 25% speed gain that you throw it into production to trust your data with.
On Tue, 2002-02-12 at 12:36, Matthew T. Kromer wrote:
On Tuesday, February 12, 2002, at 07:17 AM, seb bacon wrote:
However, I do build Python with gcc 3.1 (cvs) and Python 2.1.2 and with various compile options can get a 17% speedup.
Could you share the compile options with us?
seb
Gcc 3.0X doesn't seem to be able to make a good build with these options; gcc 3.1 (from cvs) does, but YMMV -- don't blame me or ask me for help building python with fancy options, please.
"Your suggestions made my floppy drive run out of gcc, and now the interweb's crashed - and it's all YOUR fault" ;-) Thanks - this will be very interesting. seb
On Tue, Feb 12, 2002 at 12:17:28PM +0000, seb bacon wrote:
However, I do build Python with gcc 3.1 (cvs) and Python 2.1.2 and with various compile options can get a 17% speedup.
Could you share the compile options with us?
I'd like to see those compile options as well... Thanks, Morten
On Tue, Feb 12, 2002 at 12:17:28PM +0000, seb bacon wrote:
However, I do build Python with gcc 3.1 (cvs) and Python 2.1.2 and with various compile options can get a 17% speedup.
Could you share the compile options with us?
BTW seb, I tried compiling Python with the pgcc compiler [1] and that gave a perfomance increase of 15% on the pystones test. [1] http://www.goof.com/pcg/ -Morten
participants (5)
-
Matt Behrens -
Matthew T. Kromer -
Morten W. Petersen -
seb bacon -
Tim Peters