This software is a communication library designed for the Cell Broadband Engine. It is called the Cell Messaging Layer and enables effective messaging and communication between different processors.
One of the CML's significant advantages is that it is optimized for performance, making it the fastest messaging-passing library available for the Cell. It is set to utilize the Cell's slow but versatile Power processor element (PPE) only for internode communication and not within a node. The collective operations are designed hierarchically to minimize the use of the PPE and the Broadband Interface (BIF), which connects multiple cells within a node.
The CML comes with examples in the distribution directory that demonstrates how to use the Cell Messaging Layer. The files in the minimal subdirectory demonstrate the minimal amount of code needed on the PPE and the SPE for a "do-nothing" program. On the other hand, the files in the showcase subdirectory show how to use all of the MPI functions implemented by the Cell Messaging Layer. A few functions included in the showcase directory are MPI_Abort(), MPI_Allreduce(), MPI_Barrier(), MPI_Bcast(), MPI_Comm_get_attr(), MPI_Comm_rank(), MPI_Comm_size(), MPI_Finalize(), MPI_Init(), MPI_Recv(), MPI_Reduce(), MPI_Send(), MPI_Wtime(), and MPI_Wtick(). Moreover, documentation on the web is available for each of these functions. There is a spe/include/mpi.h file installed as part of the Cell Messaging Layer that embodies the complete set of function prototypes.
The MPI ranks are assigned to each SPE such that they utilize all of the SPEs on one Cell before resorting to any of the SPEs on the next Cell. The MPI_Comm_get_attr() function receives an MPI_CML_LOCAL_NEIGHBORS key that returns the number of SPEs managed by a single PPE, with the typical value being eight for a single Cell or sixteen for a pair of Cells connected via a BIF connection. The CMLMAXLOCALSPES environment variable limits the number of SPEs used by each PPE and must be set to a power of two.
The Cell Messaging Layer software also includes a Remote Procedure Call (RPC) mechanism that makes it easy for an SPE to invoke functions on the PPE and receive the results. The examples in the examples/showcase directory demonstrate how to use this feature.
Version 2.6: N/A