[Beowulf] Gentoo in the HPC environment

Joe Landman landman at scalableinformatics.com
Wed Jun 25 08:30:52 PDT 2014


On 06/25/2014 09:51 AM, Gavin W. Burris wrote:
> Hi, Jonathan.
>
> I would make a strong argument against Gentoo.  I would recommend that
> you choose Red Hat or its binary-compatible derivatives, like CentOS.
>
> At the end of the day, you need to ask yourself what you are trying to
> accomplish.  In an HPC environment, that should be a customer-facing
> service that is reliable and well supported.  You do not want to be
> constantly patching, compiling or changing APIs out from underneath of
> research code.  Enterprise Linux provides a stable base for HPC
> application development with a very solid lifecycle.
> https://access.redhat.com/site/support/policy/updates/errata/

Unfortunately, the reality of the HPC code market is that, quite often, 
the OS required by the application for support is often at odds with 
what you describe above.  More often than not, commercial and closed 
source applications are built and qualified (for support and guarantee 
of functionality) against several very specific OS and library versions. 
  It is rare, in my experience with this, that any of these are 
up-to-date versions of Red Hat or Red Hat derived distributions.

This is not to say that one should go with another distribution or not, 
there are valid engineering and support choices either way.

But this said, given the often incompatible, and quite often 
non-solvable problems of providing a common supported platform for 
everything to run on, one unsupported platform is as good as the other, 
with the caveat that one needs to pay attention to the ease of 
management as well as other things.

This is why stateless machines, booting an instance with a particular OS 
for a particular job, is a *far* more reasonable and workable approach 
than laying down one OS and demanding that applications conform to it. 
There is a bit more freedom when you have source, and can rebuild, but 
for commercial and closed source apps, if you want support from the 
vendors, you need to adhere to their requirements.

Which means one of a few options

1) stateless as I had mentioned:  NFS or iSCSI like OS PXE booted on 
bare metal.  This is the best of the lot, as it gets very easy to create 
a dedicated stateless load for a particular application, providing 
everything the application needs to run at bare metal speed, without 
requiring a hard lock of a system to an OS.

2) VM based:  Just like stateless, but running as a VM atop a JEOS. 
This is the cloud model.  Almost bare metal speed, and a loss of access 
to things like IB and other fast PCIe cut-through technologies.  But 
this is what Amazon, et al provide.  You can build this yourself with 
OpenStack.  Works great for less latency sensitive apps, and you can 
have each VM be whatever the application needs to run supported.

3) Docker/Container based:  Sort of a cross between stateless and VM 
based, it provides direct hardware access, and you can set up 
effectively independent and completely supportable containers to run on 
each system, independent of the OS requirements of the job.  See 
http://www.docker.com/whatisdocker/


> Being part of a larger community, running the same builds, has its
> advantages.  You won't be the only person encountering a weird stability
> or performance bug.  You also get vendor hardware support, which is
> huge.

You won't get vendor support for CentOS.  And CentOS cannot be "shipped" 
by a commercial entity anymore in a for profit manner, for any reason. 
See  http://www.centos.org/legal/trademarks/#unacceptable-uses .  They 
aimed this (obviously) at Oracle and OEL, but it presents, shall we say, 
some interesting collateral damage.

If you want a Red Hat based distro in a commercial sense, you are 
currently limited to, not surprisingly, Red Hat.  Sure, you might use 
https://www.scientificlinux.org/ which is a rebuild + added bits - 
copyrighted bits.

We switched our systems to Debian after we saw this.  We've been quite 
unhappy with some of the horrible broken-ness we've seen in the init 
system with {Red Hat|CentOS} 6.x for a while, and that legal change plus 
some nasty unfixable dracut stuff pushed us to better vistas.

> I know the counter arguments here.  There is always going to be the
> coder that wants Ubuntu and this-month's release of $LANGUAGE, like on
> their vagrant box.  I have found the Software Collections to be a

Err ... no.  The center of mass of the market has moved on to the faster 
changing distributions.  We opted for Debian over Ubuntu due to 
silliness in the Ubuntu kernel bits that made adding our patches hard. 
Much easier with a sane system.  Its very ... very ... hard to fix all 
the breakage when we make changes to CentOS/Red Hat.  You might say 
"don't change", but since part of our value is inherent in the changes, 
well ...

As I've been saying for more than a decade, the application OS 
requirements are a detail of the job.  Tools like kvm and docker let us 
get away from having a massive impedance mismatch between application 
requirements and node software environment requirements.

Having fought the supported OS battles for decades (jeez ... since the 
80s!), and having the scars to prove it, I personally prefer the 
simpler/better/lower friction route.  No more square pegs in round holes.

-- 
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics, Inc.
email: landman at scalableinformatics.com
web  : http://scalableinformatics.com
twtr : @scalableinfo
phone: +1 734 786 8423 x121
cell : +1 734 612 4615


More information about the Beowulf mailing list