Team Runtime

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography

Section: Software

KNem

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 http://www.mcs.anl.gov/research/projects/mpich2/ .) and with the Open MPI project(The Open MPI project will include KNem support starting with release 1.5. It is distributed from http://www.openmpi.org .). 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: http://runtime.bordeaux.inria.fr/knem/


previous
next

Logo Inria