<div dir="ltr"><div dir="ltr"><div><br></div><div>For anyone interested in C++ compiler differences, the 'Compiler Explorer' ( <a href="http://www.godbolt.org">http://www.godbolt.org</a> ) is an indispensable resource.  <br></div><div><br></div><div>Basically, you can write some code, select some different compilers (and optimization flags), and look at the assembly code and compare windows side-by-side.  I used to have a bunch of cool examples bookmarked, but can't find them right now.  Here's a brief article / interview with Matt with a bit more:<br></div><div><a href="https://blog.jetbrains.com/clion/2017/10/godbolting-your-cpp-code/">https://blog.jetbrains.com/clion/2017/10/godbolting-your-cpp-code/</a></div><div><br></div><div>Cheers,</div><div>  - Brian</div><div><br></div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 18, 2018 at 3:17 PM Prentice Bisbal via Beowulf <<a href="mailto:beowulf@beowulf.org">beowulf@beowulf.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I know I'm a bit late to this conversation. Been too busy to lurk here <br>
lately. But I wanted to respond to this comment:<br>
<br>
> Lastly Jason mentioned IncludeOS <a href="http://www.includeos.org/" rel="noreferrer" target="_blank">http://www.includeos.org/</a><br>
> these gusy are implementing something I have tossed about on this list<br>
> in the past - running applications in a lightweight OS without all the<br>
> overhead of a multitasking system.<br>
> I dont know that much about it - is anyone from that company on the list?<br>
Lightweight operating systems for HPC is definitely a thing the IBM Blue <br>
Gene systems used a lightweight kernel called CNK (Compute Node Kernel). <br>
While not based on Linux, it used a subset of the Linux system call API <br>
for its own system calls portability reasons. It was single-tasking, <br>
since for an HPC job on a system like the Blue Gene (no node sharing <br>
between jobs), there was no need to manage multiple tasks.<br>
<br>
<a href="https://en.wikipedia.org/wiki/CNK_operating_system" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/CNK_operating_system</a><br>
<br>
I don't know much about Compute Node Linux (CNL), which is used on Cray <br>
systems. I believe it is a stripped down version of Linux, but not sure <br>
how stripped down it is.<br>
<br>
<a href="https://en.wikipedia.org/wiki/Compute_Node_Linux" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Compute_Node_Linux</a><br>
<br>
Here's some links to more information/other lightweight kernels, like <br>
Puma and Catamount, in no particular order.<br>
<br>
<a href="https://www.cresta-project.eu/images/WhitePapers/cresta_whitepaper_2_2014.pdf" rel="noreferrer" target="_blank">https://www.cresta-project.eu/images/WhitePapers/cresta_whitepaper_2_2014.pdf</a><br>
<br>
<a href="https://ieeexplore.ieee.org/document/323279" rel="noreferrer" target="_blank">https://ieeexplore.ieee.org/document/323279</a><br>
<br>
<a href="https://www.researchgate.net/publication/228816883_Software_architecture_of_the_light_weight_kernel_Catamount" rel="noreferrer" target="_blank">https://www.researchgate.net/publication/228816883_Software_architecture_of_the_light_weight_kernel_Catamount</a><br>
<br>
<a href="https://en.wikipedia.org/wiki/Lightweight_Kernel_Operating_System" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Lightweight_Kernel_Operating_System</a><br>
<br>
Prentice<br>
<br>
On 09/09/2018 11:50 PM, John Hearns via Beowulf wrote:<br>
> Chris Samuels recent post reminds me.<br>
> I went to a fascinating and well delivered talk by Jason Hearne McGuiness<br>
><br>
> <a href="https://www.meetup.com/ACCULondon/events/253570550/" rel="noreferrer" target="_blank">https://www.meetup.com/ACCULondon/events/253570550/</a><br>
> <a href="https://accu.org/index.php/accu_branches/accu_london" rel="noreferrer" target="_blank">https://accu.org/index.php/accu_branches/accu_london</a><br>
> Slides are here:<br>
> <a href="https://github.com/acculondon/2018-September" rel="noreferrer" target="_blank">https://github.com/acculondon/2018-September</a><br>
><br>
> I would encourage everyone to give this presentation at least a browse.<br>
> Jason has done a lot of work in comparing the assembler code emitted<br>
> by C++ compilers for simple statement blocks. Even within the g++<br>
> series there are wildly different assembler sequences emitted. And of<br>
> course differences between Intel and Clang.<br>
> I would have naively assumed that within g+++ at least as improvements<br>
> are made then there would be some commonality - ie an evolution. But I<br>
> would be wrong.<br>
><br>
> Jason work in HFT so the default path loaded in IF statements (for<br>
> instance) is  important for low latency.<br>
> Jason also did a lot of work in comparing performance before and after<br>
> the Spectre/Meltdown fixes.  There is a huge amount of work gone into<br>
> that.<br>
><br>
> One other takeaway - the choice of Linux OS is critical. Really.<br>
> Common wisdom is that OS choice accounts for approx. 4% of performance<br>
> difference.<br>
> Not so.<br>
> There isa big difference between CentOS 6 and 7 (7 being better) and<br>
> Ubuntu does not shine at all well on his FIX benchmarks. Gentoo does<br>
> well - Jason being a fan of Gentoo.<br>
> As I remember on these benchmarks OS choice can affect results by 20% !!!!<br>
><br>
> Lastly Jason mentioned IncludeOS <a href="http://www.includeos.org/" rel="noreferrer" target="_blank">http://www.includeos.org/</a><br>
> these gusy are implementing something I have tossed about on this list<br>
> in the past - running applications in a lightweight OS without all the<br>
> overhead of a multitasking system.<br>
> I dont know that much about it - is anyone from that company on the list?<br>
><br>
> John Hearns<br>
> _______________________________________________<br>
> Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
> To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" rel="noreferrer" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
<br>
_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf" rel="noreferrer" target="_blank">http://www.beowulf.org/mailman/listinfo/beowulf</a><br>
</blockquote></div>