Team Runtime

Overall Objectives
Scientific Foundations
Application Domains
New Results
Contracts and Grants with Industry
Other Grants and Activities

Section: Software


Participants : Brice Goglin, Stéphanie Moreaud.

KNem (Kernel Nemesis ) is a Linux kernel module that offers high-performance data transfer between user-space processes. Based on Open-MX offering efficient intra-node communication (see  5.8 and [33] ), it was decided to make this ability available to any MPI implementation without requiring the use of Open-MX and Ethernet networks.

KNem was developed in collaboration with the MPICH2 team at the Argonne National Laboratory. It offers a very simple message passing interface that MPICH2 uses when transferring very large messages between processes on the same node. Thanks to its kernel-based design, it is able to transfer messages through a single memory copy, much faster than the usual user-space two-copy model. KNem also offers the optional ability to offload memory copies on Intel I/O AT hardware which improves throughput and reduces CPU consumption and cache pollution. MPICH2 is responsible for deciding when to use KNem or not, and when to enable I/O AT copy offload [27] .

KNem is now developed in collaboration the MPICH2 team(The MPICH2 project includes KNem support since release 1.1.1. It is distributed from .) and with the Open MPI project(The Open MPI project will include KNem support starting with release 1.5. It is distributed from .). Its main contributor is Brice Goglin . KNem is composed of 4800 lines of C and it is distributed under the terms of the CeCILL-B License at the following URL:


Logo Inria