Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

III. Overview

GM is a message-based communication system for Myrinet. Like many messaging systems, GM's design objectives included low CPU overhead, portability, low latency, and high bandwidth. Additionally, GM has several distinguishing characteristics:

GM is a light-weight communication layer, and as such has limitations that can be addressed by layering a heavier-weight interface over GM. Some such limitations are the following:

From the client's point of view, GM consists of a library, libgm.a, and a header file, gm.h. All externally visible GM identifiers in these files match the regular expression `^_*[Gg][Mm]_' to minimize name space pollution.

Additionally, GM has other parts that system administrators need to be concerned about:

1. Definitions

This document attaches special meaning to a few commonly used words. The meaning of each of these words in the context of this document is defined here. In particular, please note the special meanings of the words size and length. Understanding the special meaning of these terms is critical to understanding this document.

The length of a receive buffer is the number of bytes that may be safely copied into the buffer.

The size of a receive buffer is any positive integer less than or equal to

          log  (LENGTH + 8)
             2
   
where LENGTH is the length of the buffer. Consequently, a buffer of size SIZE must have a LENGTH of at least 2**SIZE - 8.

A buffer having a longer length serves no useful purpose in GM, but is allowed.

The function gm_min_size_for_length()(LENGTH) can be used to compute the minimum size for any length, and the function gm_max_length_for_size()(SIZE) can be used to compute the maximum length for any size.

2. Notation

The following terms abbreviations are used in the GM documentation and source code. Some of these abbreviations are obvious to speakers of English, but are included for speakers of other languages. This section does not include architecture-specific abbreviations used in the architecture-specific GM driver code, as those are documented by the architecture's vendor and are not of interest to most GM developers.


Generated on Mon Nov 3 15:39:27 2003 for GM by doxygen1.2.15