Projects / The Cell Messaging Layer

The Cell Messaging Layer

The Cell Messaging Layer is a communication library for clusters of Cell Broadband Engine processors. It implements a subset of the popular MPI message-passing API on the Cell's SPE processors, with one MPI rank per SPE across any number of Cells and the ability for any SPE to communicate directly with any other SPE, even across a network. The Cell Messaging Layer thereby makes programming clusters of Cell processors similar to programming clusters of conventional CPUs.

Operating Systems

Recent releases

  •  14 Sep 2009 21:11

    Release Notes: Numerous bugs were fixed, some severe. The "showcase" example was modified to sanity-check the result of the reductions/multicasts.

    •  04 Jun 2009 21:01

      Release Notes: This release fixes a race condition that could enable one SPE to receive a message destined for a neighboring SPE. It fixes a compilation bug that prevented CML from building in non-hybrid mode in the absence of MPI. More error checking for message sizes has been added. The PPE code has been modified to more promptly drain the SPE request queues.

      •  25 Mar 2009 01:53

        Release Notes: SPE-to-PPE RPC calls are simplified by allowing CML_BYTE_SWAP_NOT_NEEDED as the unit of byte-swapping. A sporadic hang-on-exit bug has been fixed. CML cooperates better with applications by using mfc_tag_reserve() to allocate DMA tags. Collective-communication code has been refactored to use less memory in some cases.

        •  20 Sep 2008 05:04

          Release Notes: The remote procedure call (RPC) mechanism now tells the callee who the caller is, more precisely defines the semantics of what can and can't be done with the input and output buffers, and fixes a race condition that could lead to corruption of the data returned by an RPC function. The SPE's cellmsg_rpc() function now requires two extra parameters, making it more consistent with the PPE's cellmsg_rpc() function. The build process should be more robust when dealing with file timestamp issues.

          •  31 Jul 2008 04:25

            Release Notes: The build process is now more robust to incorrect timestamps on files and is slightly better at constructing some of the Makefile build variables. A CMLDACSTHREADED environment variable has been introduced to control whether DaCS should surround all of its internal operations with locks. An end-of-run race condition has been fixed. CML has been tested on the full, 12,240-Cell Roadrunner supercomputer.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.