The Cell Messaging Layer
Installation instructions

System requirements

To build the Cell Messaging Layer, you'll need version 3 of the Cell SDK, including the Developer package. These are available from the Downloads section of IBM's Cell Broadband Engine resource center. If you have a cluster of Cell processors, you'll need an MPI implementation such as Open MPI to perform the internode communication. If you don't have any Cell hardware, you may be able to use IBM's Full System Simulator and Sysroot Image for development and testing. These are provided by the Extras package at the Cell Broadband Engine resource center.

Procedure

The following steps are the recommended way to install the Cell Messaging Layer:

  1. Edit the Makefile.

    The build variables at the top of the Makefile are divided into four sections. The first section defines directories and flags that are common to all architectures. The second section defines the compiler and linker information for the host architecture and is used only when building the hybrid (host + Cell) version of the Cell Messaging Layer. The third and fourth sections define the compiler and linker information for, respectively, the Cell's PPE and SPE processors.

    Note that includes and definitions (-I and -D flags) should be listed in *CPPFLAGS; other compiler flags should be listed in *CFLAGS; library paths (-L flags) should be listed in *LDFLAGS; and, libraries (-l flags) should be listed in *LIBS. The *options variables list extra flags to pass directly to the various CML configure scripts. The following are some of the supported CML_options flags—run ./configure --help in each subdirectory for the complete list:

        --enable-hybrid         build a hybrid version of the Cell
    			    Messaging Layer in which a host
    			    processor forwards messages from PPE to
    			    PPE
        --with-max-argv-len=NUM allocate NUM bytes of local store for
    			    holding argv [64]
        --with-max-msg-size=NUM limit the maximum message size to NUM
    			    bytes [262144]
    
  2. Run make config.

    This step checks that the SPE, PPE, and host compilers are able to find various required header files and libraries. Be sure to verify that the build parameters and installation directories look correct for your system. (If not, return to Step 1 and try again.)

    If any step in the configuration process fails unexpectedly, refer to the corresponding config.log file (in one of the spe, ppe, or host subdirectories) for an explanation. config.log files list the input file, executed command, and command output for every test performed by make config. These provide sufficient information for diagnosing most configuration problems. As a convenience, make explain attempts to locate and output the relevant piece of the relevant config.log file after make config aborts with an error condition.

  3. Run make.

    This builds the SPE, PPE, and—in hybrid mode—host sides of the Cell Messaging Layer. In theory, all possible problems should have been caught in Step 2, so Step 3 should complete without any trouble. If not, go back to Step 1 and try again (and please report the problem to the Cell Messaging Layer's maintainer).

  4. Run make install.

    The Cell Messaging Layer installs files into the following directories:

    where PREFIX is the prefix specified in the Makefile in Step 1. You can in fact change the prefix at installation time with make prefix=NEWPREFIX install, but the sample Makefiles that are installed into PREFIX/doc/examples use the configuration-time prefix.

    The x86_64 above is only representative; the name of the actual host architecture is used as the directory name.

Don't forget: Every time you edit the Makefile build variables you need to re-run make config.

To test your installation, try first the minimal example in PREFIX/doc/examples/ followed by the showcase example.

Scott Pakin, pakin@lanl.gov