MapReduce-MPI WWW Site - MapReduce-MPI Documentation

### Getting Started

Once you have downloaded the MapReduce MPI (MR-MPI) library, you should have the tarball mapreduce.tar.gz on your machine. Unpack it with the following commands:

    gunzip mapreduce.tar.gz
    tar xvf mapreduce.tar

which should create a mapreduce directory containing the following:

- README
- LICENSE
- doc
- examples
- mpistubs
- python
- src
- user

The doc directory contains this documentation. The examples directory contains a few simple MapReduce programs which call the MR-MPI library. These are documented by a README file in that directory and are discussed below. The mpistubs directory contains a dummy MPI library which can be used to build a MapReduce program on a serial machine. The python contains the Python wrapper files needed to call the MR-MPI library from Python. The src directory contains the files that comprise the MR-MPI library. The user directory contains user-contributed MapReduce programs. See the README in that directory for further details.

To build the library for use by a C++ or C program, go to the src directory and type

    make -f Makefile.foo

where you should create and use a Makefile.foo appropriate for your machine, using one of the provided Makefiles as a template. Note that Makefile.serial builds the library for a serial machine, using the dummy MPI library in mpistubs. Other Makefiles build it for parallel execution using a MPI library installed on your machine. You may need to edit one of the Makefiles to be compatible with your compilers and MPI installation. If you use the dummy MPI library, you will need to build it first, by typing "make" from within mpistubs. Again, you may need to edit mpistubs/Makefile for your machine.

If you successfully build the MR-MPI library, you should produce the file "libmrmpi.a" which can be linked by other programs. As discussed below, both a C++ and C interface are part of the library, so the library should be usable from any hi-level language.

To use the MR-MPI library from Python, you don't need to build it from the src directory. Instead, you build it as a dynamic library from the python directory. Instructions are given below in the Python interface section.

The MapReduce programs in the examples directory can be built by typing

    make -f Makefile.foo

from within the examples directory. Again, one of the provided Makefiles may need to be modified for your platform. Some of the example programs are provided as a C++ program, a C program, and as a Python script.