Lattice QCD Message Passing (QMP)

The QMP project is a national effort to provide a high performance message passing interface on various hardware platforms for Lattice QCD computing. This message passing interface aims to provide channel oriented communication end points to communication readers and writers with low latency and high bandwidth. QMP is tailored to the repetitive and predominantly nearest neighbor communication patterns of lattice QCD calculations.

One of striking features of this messaging system is to allow writers to directly deposit contents to preallocated memory buffers of readers without costly synchronization mechanisms, yet gated by the reader. An established communication channel allows a reader and a writer to operate asynchronously so that slightly different operation rates between a reader and a writer will not yield low performance. Most memory copies are eliminated in the messaging system to improve latency.

QMP Version 2

QMP version 2 has been defined, and implementations are now being tested. See below for older version 1 documentation and distributions.

QMP-2-0-Introduction (also available as PDF) gives an overview of the concepts as well as documentation of the API.

QMP-2 Changes describes most of the differences between the two versions, including clarifications of the existing API, additions to the API, and a few corrections to the API. This document also describes the proposed evolution of the existing implementations.

QMP Implementations

The sections below describing existing implementations of the first standardized version of QMP (version 2).

  • QMP C Implementation over MPICH:

    Version (2.0) of QMP over MPICH is ready for downloading. The MPICH version has been tested using MPICH-CHP4, MPICH-SHMEM and MPICH-GM on the same platform. The most recent source is location on this page.

  • Recent news about software releases are available. There is a text and an html version of the ChangeLog available.

    There is a software snapshot of the CVS head revision of QMP over MPI, and there is also CVS statistics.

  • QMP-2 C Implementation over new version of M-VIA using Gigabit Ethernet mesh connections:

    This version of QMP utilizes local enhanced M-VIA and Intel PRO/1000 MT Dual Port Server Adapter with mesh connections is available for downloading. This version has been tested on RedHat 9 with kernel 2.4.x and Fedora Core 3 with Kernel 2.6.x. The M-VIA package modified in JLAB is based on M-VIA 1.2 with checksum capability and fixes of a few bugs. The Gigabit Ethernet drivers for M-VIA developed in JLAB are based on Intel e1000 driver version 4.19.x and version 5.2. The complete source code for QMP and new M-VIA along with Intel e1000 M-VIA driver can be found at here.

  • A New version of MVIA on Linux Kernel 2.6 is ready:

    New MVIA and QMP are ready on Linux Kernel 2.6 with Fedora Core 3. The distribution, which contains MVIA 1.4, Gigabit Ethernet driver for M-VIA, QMP on top of MVIA and a utility package to test and debug gigabit Ethernet mesh connections, can be found at here.

  • Last modifed: by $Author: bjoo $ on $Date: 2007/01/29 22:14:12 $.