SuperComputer Applications
Projects for 3rd Quarter, 2nd half
MPI - Parallel Programming, 3D Programming, 2D Chaos/Fractals

  1. MPI (Message Passing Interface) Programs, Parallel Programming
  2. Show copies/screenshots of:
  3. SYNTAX for MPI Functions
  • C Sample Programs:
    1. introC.c
  • MPI Sample Programs:
    1. simpleMPI.c - "Hello world" from each process
      Uses MPI_Init() and MPI_Finalize()
      simpleMPI.cpp - C++ version (note: Cray SV1 only compiles the C version)
    2. simple2MPI.c - "Hello world" from each process + identifies the rank of the process
      Uses MPI_Init(), MPI_Comm_size() , MPI_Comm_rank(), and MPI_Finalize()
      simple2MPI.cpp - C++ version (note: Cray SV1 only compiles the C version)
    3. broadcastMPI.c - Uses a "broadcast" to send information to each process
      Uses MPI_Init(), MPI_Comm_size() , MPI_Comm_rank(), MPI_Bcast(), and MPI_Finalize()
      broadcastMPI.cpp - C++ version, (note: Cray SV1 only compiles the C version)
    4. greetings.c - Sending a string greeting from each process back to the "master"
      Uses MPI_Init(), MPI_Comm_size() , MPI_Comm_rank(),
      MPI_Send(), MPI_Recv(), and MPI_Finalize()
    5. greetings.cpp - C++ version, (note: Cray SV1 only compiles the C version)
    6. sendInt1.c - Uses scanf(), MPI_Send() and MPI_Recv() to send an integer to all the processes
    7. reciprocalMPI.c - Uses MPI_Send() and MPI_Recv(),
      - send a random integer to all processes, each process sends back the reciprocal
    8. reduceMPI.c - Uses MPI_Send(), MPI_Recv(), and MPI_Reduce()
      - send a random integer to all processes, each process calculates the reciprocal,
      - MPI_Reduce() calculates the sum of all the reciprocals
    9. sendArray1MPI.c - Uses srand(), rand(), MPI_Send() and MPI_Recv() to send an array to all the processes
    10. sendArray1Bcast.c - Uses srand(), rand(), and MPI_Bcast() to send an array to all the processes
    11. sendArray2MPI.c - Uses srand(), rand(), MPI_Send(), MPI_Recv(), and MPI_Reduce() to send an array to all the processes and sum the values from all processes
    12. sendArray3MPI.c - Uses srand(), rand(), MPI_Bcast(), and MPI_Reduce() to send an array to all the processes and sum the values from all processes
    13. sendMatrix1MPI.c - uses MPI_Send() and MPI_Recv() to send an entire matrix
    14. sendMatrix2MPI.c - uses MPI_Send() and MPI_Recv() to send one row at a time out of a matrix
  • Running an MPI Program
  • MPI and Parallel Programming Tutorials/Readings:
    1. William Gropp's Tutorial on MPI: The Message-Passing Interface
      Start the tutorial here
    2. Also look at these two shorter introductions to MPI
    3. And one more good tutorial: Message Passing Basics, from John Urbanic, Pittsburgh Supercomputing Center
    4. Parallel Algorithm Configurations by D.W. Hyatt
  • MPI Links
  • 3D Programming Part 1
  • 3D Project Part 2: Robot Program - Exercise in Transformations:
    Translations, Rotations, Scalings
    Construct-a-Robot/Transformer (or similar figure)
    that has individually moving parts
    Link to your 3D Project Part 2 website:
  • 2D Computational programs, Iteration, Bifurcation, and Chaos

  • Coming in 4th Quarter: