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 has been defined, and implementations are in use
QMP-2 Changes describes most of the differences between version 1 and version 2, 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.
The sections below describing existing implementations of the first standardized version of QMP (version 2).