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.
|Tags||Clustering/Distributed Networks Software Development Libraries|
|Operating Systems||POSIX Linux|
Release Notes: Numerous bugs were fixed, some severe. The "showcase" example was modified to sanity-check the result of the reductions/multicasts.
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.
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.
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.
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.