The TOP 500 Supercomputers (June 2019) – 100% Linux

The top 500 supercomputers of Planet Earth all use Linux. This has been the case for some time now. Naturally, performance share for Linux is 100%. Indeed, it is great to see Linux dominate the high performance computing platform.

CentOS and the Cray Linux Environment seem to be the popular choices for operating systems. Not surprisingly, Red Hat Enterprise Linux is also represented.

Processors from Intel are commonly used and IBM’s Power9 processors are used as well though not as common. Note, however, that the top 2 supercomputers, Summit and Sierra, use Power9 processors running Red Hat Enterprise Linux.

GPUs are also installed in some of the supercomputers as coprocessors. Nvidia cards are usually the choice for the GPU coprocessors, probably due to the vast amount of software supporting Nvidia GPUs for computational tasks. The Summit and Sierra supercomputers use the Nvidia Volta GV100 as coprocessors.

You can generate list statistics for the top 500 supercomputers at this link: https://www.top500.org/statistics/list/

KVM Virtualization

Kernel-based Virtual Machine (KVM) is a popular virtualization solution supported by modern Linux kernels. It takes advantage of the CPU support for virtualization (Intel VT and AMD-V). You can run unmodified operating systems such as Linux, FreeBSD, and Microsoft Windows using KVM. For more information, see the compatibility list.

For our Ubuntu 16.04 host, we have installed the following packages via apt (see https://help.ubuntu.com/lts/serverguide/libvirt.html):

  • libvirt-bin
  • qemu-kvm
  • virt-manager
  • virtinst
  • virt-viewer

For a CentOS 7 host, install the following packages via yum:

  • libvirt
  • qemu-kvm
  • qemu-img
  • virt-install
  • virt-manager
  • virt-client

For other Linux distributions, refer to their respective manuals.

You can create virtual machines using the command line as long as you have installed the proper packages. For example, the following creates a CentOS 7 guest with 2 virtual CPUs and 4GiB of RAM:

virt-install -n centos-test \
        --ram 4096 \
        --vcpus 2 \
        --metadata description='CentOS – test',title='CentOS - test' \
        --cdrom /usr/local/src/dists/CentOS/7/CentOS-7-x86_64-Everything-1511.iso \
        --os-variant centos7.0 \
        --disk path=/var/lib/libvirt/images/centos-test-storage0.qcow2,size=40,format=qcow2 \
        --network bridge=br0,model=virtio \
        --graphics spice

If you want to have a processor topology of 2 sockets and 2 cores each, you can specify that as:

        ....
        --vcpus sockets=2,cores=2
        ....

Verification of the processor topology can be done using the utility lscpu, part of util-linux.

The --cdrom parameter points to the installation disc image and the --disk parameter points to the final installed OS image. In this example, we also specify the use of a bridge (the network device br0 in this case) to make it appear on the local host’s network as a regular host. The parameter --graphics specifies Spice as the means of connecting to the VM console.

Naturally, you can also use a GUI (virt-manager) to create the VM, but the command line is more fun, isn’t it? 😉 The man page for virt-install has the requisite information on how to use it. More examples are also available in the man page.