|
SSP 1998 Project Summary:
|
|
Java Simulation of MPI Collective Communications
Student
Thomas Doel, University of Edinburgh
Supervisors
Elspeth Minty, EPCC
Bobby Davey, EPCC
As part of the MPI On-line course, a Java applet was produced
which simulates the different blocking point to point communication
modes in MPI. This type of simulation is extremely useful in teaching
MPI as it allows students to understand the principles of point to point
communications without having to worry about programming languages. This
makes the programming exercises themselves much clearer to the students.
The aim of this project is to build on this work by developing an
equivalent Java applet for collective communications.
Each applet would consist of three processes each with an instruction
panel to which the user can add instructions. The process and collective
communication routine can be selected with different typeins/options for
the different routines. The user interface from the point to point
applet will be retained to minimise recoding.
The following is an outline of how some of the collective communications
routines could be implemented. Examples of how the applets could look
are included elsewhere in the proposal.
- Barrier: The user would be required to add a barrier routine
to the instruction list of each process. If any are missing then the
applet will deadlock when run.
- Broadcast: The user would provide the root process number
and a value for the root process to broadcast. Any values in other
processes would be over written. If any parameters are missing an error
message is printed. Again the applet should deadlock if not all the
processes call the broadcast routine.
- Scatter: The user would be required to provide the root
process, the amount of data to be sent to each process, the amount each
process receives and values for the scatter array at the root process.
Any information missing would result in an error message. Each process
should include scatter on its instruction list with the same parameters.
- Reduction: The user specifies the operation, root process,
count and the data on each process. The result of the operation is
displayed on the root process. Again missing information results in
error messages and all processes should include the operation in their
instruction lists.
The final report for this project is available here.