Lightweight Kernel Operating System
A lightweight kernel (LWK) operating system is one used in a large computer with many processor cores, termed a parallel computer. A massively parallel high-performance computing (HPC) system is particularly sensitive to operating system overhead. Traditional multi-purpose operating systems are designed to support a wide range of usage models and requirements. To support the range of needs, a large number of system processes are provided and are often inter-dependent on each other. The computing overhead of these processes leads to an unpredictable amount of processor time available to a parallel application. A very  common parallel programming model is referred to as the bulk synchronous parallel model which often employs Message Passing Interface (MPI) for communication. The synchronization events are made at specific points in the application code. If one processor takes longer to reach that point than all the other processors, everyone must wait. The overall finish time is increased. Unpredictable operating system overhead is one significant reason a processor might take longer to reach the synchronization point than the others. Examples. Custom lightweight kernel operating systems, used on some of the fastest computers in the world, help alleviate this problem. The IBM  Blue Gene line of supercomputers runs various versions of CNK operating system. The Cray XT4 and Cray XT5 supercomputers run Compute Node Linux while the earlier XT3 ran the lightweight kernel Catamount which was based on SUNMOS. Sandia National Laboratories has an almost two-decade commitment to lightweight kernels on its high-end HPC systems. Sandia and University of New Mexico researchers began work on SUNMOS for the Intel Paragon in the early 1990s. This operating system evolved into the Puma, Cougar - which achieved the first teraflop on ASCI Red - and Catamount on Red Storm. Sandia continues its work in  LWKs with a new R&D effort, called kitten. Characteristics. Although it is surprisingly difficult to exactly define what a lightweight kernel is, there are some common design goals: Implementation. LWK implementations vary, but all strive to provide applications with predictable and maximum access to the central processing unit (CPU) and other system resources. To achieve this, simplified algorithms for scheduling and memory management are usually included. System services (e.g., daemons), are limited to the absolute minimum. Available services, such as job launch are constructed in a hierarchical fashion to ensure scalability to thousands of nodes. Networking protocols for communication between  nodes in the system are also carefully selected and implemented to ensure scalability. One such example is the Portals network programming application programming interface (API). Lightweight kernel operating systems assume access to a small set of nodes that are running full-service operating systems to offload some of the necessary services: login access, compiling environments, batch job submission, and file I/O. By restricting services to only those that are absolutely necessary and by streamlining those that are provided, the overhead (sometimes called noise) of the lightweight operating system is minimized. This allows a significant "and" predictable amount of the  processor cycles to be given to the parallel application. Since the application can make consistent progress on each processor, they will reach their synchronization points faster, ideally at the same time. Lost wait time is reduced. Future. The last supercomputers running lightweight kernels are the remaining IBM Bluegene systems running CNK. A new direction for lightweight kernels is to combine them with a full-featured OS, such as Linux, on a many-core node. These multikernel operating systems run a lightweight kernel on some of the CPU cores of a node, while other cores provide services that are omitted in  lightweight kernels. By combining the two, users get the Linux features they need but also the deterministic behavior and scalability of lightweight kernels.