Simple Metacomputing Middleware

Due: September 20

The assignment is about running a MPI program across 2 domains. One of the domains is a single machine you can choose from student lab or from bay area or from some lab. The other domain is an IBM system that can be accessed through TOFILL. This machine has a frontend machine and TOFILL machines that can only be accessed through IBM loadleveler.

You will be writing a MPI library that implements MPI_comm_size, MPI_Comm_rank, MPI_Bcast and MPI_Scatter. Let us call this library as libasg1mpi.a. I will be writing a MPI program, myprogram.c that will contain only the above calls. I will then be compiling the program as:

<some c compiler> -o myprog myprog.c -lasg1mpi

I can compile the program either on the student machine or on the IBM machine.

I will then run the program as:

asg1mpirun -np 2 -machinefile <myfile> myprog

where an example of myfile will be:

ibm

ibm

othermachine

ibm

This means that the 1st 2 tasks will be run on IBM, the 3rd on the other machine and the 4th task (rank 3) will be run on IBM. The asg1mpirun is a program written by you. I can run it either on the IBM frontend or on your student lab machine.

Challenges: