[Beowulf] C++ compilers and assembly
John Hearns
hearnsj at googlemail.com
Sun Sep 9 20:50:24 PDT 2018
Chris Samuels recent post reminds me.
I went to a fascinating and well delivered talk by Jason Hearne McGuiness
https://www.meetup.com/ACCULondon/events/253570550/
https://accu.org/index.php/accu_branches/accu_london
Slides are here:
https://github.com/acculondon/2018-September
I would encourage everyone to give this presentation at least a browse.
Jason has done a lot of work in comparing the assembler code emitted
by C++ compilers for simple statement blocks. Even within the g++
series there are wildly different assembler sequences emitted. And of
course differences between Intel and Clang.
I would have naively assumed that within g+++ at least as improvements
are made then there would be some commonality - ie an evolution. But I
would be wrong.
Jason work in HFT so the default path loaded in IF statements (for
instance) is important for low latency.
Jason also did a lot of work in comparing performance before and after
the Spectre/Meltdown fixes. There is a huge amount of work gone into
that.
One other takeaway - the choice of Linux OS is critical. Really.
Common wisdom is that OS choice accounts for approx. 4% of performance
difference.
Not so.
There isa big difference between CentOS 6 and 7 (7 being better) and
Ubuntu does not shine at all well on his FIX benchmarks. Gentoo does
well - Jason being a fan of Gentoo.
As I remember on these benchmarks OS choice can affect results by 20% !!!!
Lastly Jason mentioned IncludeOS http://www.includeos.org/
these gusy are implementing something I have tossed about on this list
in the past - running applications in a lightweight OS without all the
overhead of a multitasking system.
I dont know that much about it - is anyone from that company on the list?
John Hearns
More information about the Beowulf
mailing list