next up previous
Next: 6 Using the TCP/UNIX Up: CRL version 1.0 Previous: 4 General Caveats

 5 Using the CM-5 Version of CRL

This section contains information relevant to building and using the CM-5 version of CRL.

The CM-5 version of CRL 1.0 was developed and debugged on a 128-node system with Ross (32 MHz SPARC v.7) processors; the system was running CMOST 7.4 Final using the CMMD 3.3 message-passing libraries. We believe that CRL should also work fine on CM-5 systems with new (SuperSPARC ``Viking'') processors and/or those running the previous software release (CMOST 7.3 and CMMD 3.2).

5.1 Building CRL for the CM-5

To build CRL 1.0 for the CM-5:

  1. Obtain a copy of the CRL 1.0 distribution (crl-1.0.tar.gz). This can be accomplished via links from the CRL World Wide Web page ( or via anonymous ftp from in pub/crl.

  2. Make a copy of crl-1.0.tar.gz in the directory where you want to install CRL 1.0; cd to that directory.

  3. The CRL 1.0 tar file is compressed using gzip (thus the .gz extension). Uncompress the tar file using gunzip:
     unix% gunzip crl-1.0.tar.gz
    This will produce an uncompressed version of crl-1.0.tar.gz named crl-1.0.tar (and will also remove the compressed version).

  4. Untar the distribution using tar xf:
     unix% tar xf crl-1.0.tar
    This will create a subdirectory of the current working directory called crl-1.0 and unpack the CRL 1.0 distribution into it.

  5. cd into the CRL 1.0 src directory:
     unix% cd crl-1.0/src
    This directory contains the sources for the CRL library.

  6. Use the make utility and the supplied Makefile.CM5 file to build the CRL 1.0 object file (libcrl.o) for the CM-5 version of CRL:
     unix% make -f Makefile.CM5
    Once this completes, you are done building CRL. Applications intended for use with the CM-5 version of CRL should be linked against the resulting object file (libcrl.o).

To build and run the example application shown in Appendix A:

  1. cd to the apps/example subdirectory of the top-level CRL 1.0 directory (crl-1.0). If you have just finished following the directions given above for building CRL, this would be accomplished by something like:
     unix% cd ../apps/example

  2. Use the make utility and the supplied Makefile.CM5 file to compile the application and link it against the necessary object files (e.g., libcrl.o) and libraries.
     unix% make -f Makefile.CM5
    The end result of this process should be a ready-to-run example binary.

  3. Assuming DJM is being used on your CM-5 for running jobs, the example application could then be run using something like:
     unix% jrun -proc 32 -mem 100m -time 1min -- example

Applications in the other subdirectories of crl-1.0/apps can be compiled and run in a similar manner.

5.2 Platform-Specific Issues

When using CRL on the CM-5, the programmer is allowed to disable interrupts (message delivery). If this is done, the user is responsible for explicitly polling the network and should not assume anything about whether or not calling CRL functions will cause any messages to be drained from the network.

The point where the performance of the two bulk transfer mechanisms (scopy and that implemented in cm5_fast_data.c) crosses over (and thus CRL decides to switch between them) is probably very platform (hardware, CMOST, and CMMD version) dependent. The value supplied in the CRL 1.0 sources (256 bytes) was obtained through hand tuning on our development platform. (See the comment above the #define for DataXover in proto.c.)

The Makefiles supplied for use with the CM-5 version of CRL 1.0 assume that the GNU C compiler (gcc) is available. If gcc is not available in your local environment or you would like to use a different C compiler, you will need to edit the Makefile.CM5 files in crl-1.0/src and crl-1.0/apps/* and change the CC = gcc lines to name the C compiler that should be used instead.

next up previous
Next: 6 Using the TCP/UNIX Up: CRL version 1.0 Previous: 4 General Caveats

23 August 1995