This directory contains the source code for ccmpi-1.0, a compiled communication capable MPI prototype for Ethernet switched homogeneous clusters. This document describes how to use this package. This package is NOT thread safe, only one thread can invoke mpi functions. This package uses SIGIO. Other system resources used: TCP port 16820 UDP port 16821 UDP port 16822 multicast groups: 224.2.0.37 and 224.2.0.38 The ports and groups are selected arbitrarily and can be changed by modifying the ccmpi.h file. Files: README: this file ccmpi.h: the header file for the package. mpi_daemon.c: internal functions used in the package, mainly the interrupt handler for communication. mpi_func.c: the implementation of the mpi functions. mpi_alltoallv.c: various implementation of MPI_Alltoallv mpi_wrappers.c: wrappers for fortran binding mpi_wrappers.h: wrappers header file benchmarks: a directory contains some benchmark programs pingpong.c: measuring performance of point-to-point communication. .... IS: IS benchmark from NAS FT: FT benchmark from NAS utility: two utility program ccmpirun.c (used to run programs) and ccmpikill.c (used to clean up the system). How to compile program with CCMPI? The example to compile C programs can be found in benchmarks/makefile and benchmarks/IS/makefile The example to compile FORTRAN programs can be found in benchmarks/FT/makefile How to run the program? Let us assume that the program is called a.out. To run the program, 1) copy a.out to all machines, 2) create a file called 'ccmpihosts' under the same directory as a.out. The file lists all machines to run the program. 3) type ./a.out on all machines If all machines share a common file system and if you can use ssh to invoke a program on another machine WITHOUT TYPING THE PASSWORD, you can use ccmpirun to run the program from one console: just type 'ccmpirun a.out [arguments]', the program will run on on machines listed in ccmpihosts. Note that ccmpihosts should not contain empty lines. 'ccmpikill cmds' kill the process in the machines (listed in ccmpihosts) named cmds. ccmpikill and ccmpirun must be invoke in a directory that contains the ccmpihosts file. What are supported in ccmpi? CCMPI implements a subset of MPI as well as some extension for compiled communication. Some information can be found in ccmpi.h.