[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