[Beowulf] cluster building advice?
Gerald Henriksen
ghenriks at gmail.com
Wed Sep 26 17:16:22 PDT 2012
On Wed, 26 Sep 2012 23:59:13 +0200, you wrote:
>Yes easily.
>
>Google for what linus posted there and what i posted there in code
>around 2007 already.
>
>Where i showed how f'ed up GCC was, where it basically modified some
>simple code sample
>to something ugly slow, instead of creating a CMOV instruction.
>
>Basically it had the habit to do a comparision, if above zero then
>jump to the end of the function, execute 2 instructions there and
>jump bad.
>Real real slow... ...getting the full stall of the pipeline when
>mispredicted.
>Other compilers were on that code sample factor 30 faster of course.
>
>Even my simple 32 bits C code it lost 35% there or so. And at C++
>codes it was factor 2+ slower for the bitboard chess engines
>as some authors reported.
>
>Linus posted something like: "there is no excuse to not generate CMOV
>instructions now that also intel core2 can execute them fast".
It was not a gcc issue.
The distributions deliberately disabled CMOV in their i386 based
releases because there were still processors in common use that did
not support the CMOV instruction.
Fedora moved to CMOV only processor support with Fedora 12 (i686.rpm
packages), and RHEL moved to CMOV only support with RHEL 6.
Note that this was with gcc 4.4.2
>That's why i wonder about all those distro's still just supporting
>gcc 4.4 and/or 4.5
Because the target markets specifically don't want change. For most
people/companies the hardware is more powerful than is needed, or the
CPU isn't the bottleneck, so needlessly going through updates that
introduce new bugs or require updates to source code because the
compiler is stricter/re-interprets the standard is not something to be
done every 6 to 12 months.
And even for clusters, where CPU performance does matter, most people
using clusters will likely be using one of the commercial compilers
that generate better code than gcc anyway.
More information about the Beowulf
mailing list