BareMetal Node Banner

BareMetal Node - Get your HPC app as close to the metal as possible

BareMetal Node is an ultra-lightweight High Performance Computing platform for x86-64 based computers. The Operating System is based on BareMetal OS. Supported applications can be written in Assembly, C/C++, and Fortran.

BareMetal Node is comprised of two separate parts:

  • BareMetal Node Orchestrator - The management software that acts as the dispatcher to all nodes in the cluster.
  • BareMetal Node Operating System - The base software that runs on each node in the cluster.

BareMetal Node boots via hard drive and has the ability to run programs via the network. The BareMetal Node Orchestrator is responsible for the dispatching of programs, the monitoring of nodes, and the collection of results.

App Speed

Application execution speed is increased over that of a conventional full-featured OS as there is absolutely nothing else running on the system. As BareMetal Node OS is a mono-tasking system there is no need to worry about internal time-slice management and memory protection.

Small Size

The BareMetal Node OS takes the principles of JEOS and provides only the bare minimum requirements to access the CPU cores, RAM, Hard Disk, and Network. As of the current version, the operating system binary data is less than 8192 bytes.

One Task Per Core

BareMetal Node uses an internal work queue that all CPU Cores poll. Simply add tasks to the work queue and they will be processed by any available CPU Cores in the system. A short presentation on the Queue used in BareMetal Node OS can be viewed here.

Network Management

The BareMetal Node Orchestrator is in charge of monitoring and controlling the activities of the nodes. BareMetal Node machines communicate over the network via raw Ethernet packets for increased performance. Plans are in place to also support Infiniband as an interconnect.

Core Features

  • Ability to dispatch your programs over the wire to all available nodes for execution
  • Control what each node is working on
  • An easy-to-use API for writing your own HPC applications

Orchestrator Requirements

  • An Intel/AMD-based 64-bit computer
  • Any 64-bit Linux-based Operating System
  • A separate NIC for communicating with the cluster (A dedicated switch or VLAN for the cluster is ideal)

Node Requirements

  • An Intel/AMD-based 64-bit computer
  • Memory requirements are based on the number of cores in the computer. The OS itself uses 2 MiB, each core also gets its own 2 MiB stack
  • A supported NIC