Introduction to Supercomputer Applications
Spring 2004

MPI Routines

4th Quarter assignments
Final Project options

Summary of 3rd QUARTER assignments:

  • A. C program 1: Statistics - standard deviation of a large array
  • B. C program 2: Tally, with description and sample output
  • EXTRA: Fortran 77 version of Tally or standard deviation program
  • C. Using the Cray SV1 and our Cluster: run/time a program(s), save your results
  • D. Benchmark a matrix multiplication program (see Starter version)
  • E. Parallel programming on the SV1: Lab00 - Lab04
  • F. Reading Assignment 1 (Parallel programming)
  • G. Register for online parallel programming courses on WebCT-HPC
    (HPC = High Performance Computing)
    MPI Worksheet 1, MPI Worksheet 2, MPI Worksheet 3 questions
  • H. Thread programming: OpenMP Lab 01 - programming a "shared memory" system (Cray SV1) with threads.
  • I. Parallel Programming assignments (SMP course: Shared Memory Processors)
  • J. Trajectory Programs 1 - 3 - Introduction to Computer Graphics Modeling

    The Assignments:

    1. Student Portfolios Spring 2004

    2. Webpage portfolio, initial version. See: Starting a web page
      • Title page including title and author (you)
      • Beginning links to the assignments for the quarter

    3. C (and Fortran) Practice Programming 1: Tally: tally.c, tally.f
      • link to "tally.txt" to view the source code
      • include a text file "tally.out" showing sample output with test cases

    4. EXTRA: Fortran 77 version of Tally program

    5. Time one or more of your C programs on the Cray SV1, cluster, and your workstation
      (there are actually 3 different types of workstations)
      Use "time ./program"
      List of IP adresses for the cluster
      Tips on using the Cray SV1

    6. Benchmarking a matrix multiplication program

    7. Overview of parallel programming, OpenMP, and MPI
      • Reading Assignment 1 - Parallel programming
      • Self-Register for online parallel programming courses on WebCT-HPC
        (HPC = High Performance Computing)
        • Parallel Computing Explained
          (Parallel Computing Overview, Timing and Profiling,
          Scalar Tuning, How-to Parallelize a Code, Parallel Code Tuning)
        • Introduction to OpenMP
        • Introduction to MPI
      • Resource page from NASA Ames

    8. OpenMP Lab 01 - programming a "shared memory" system (Cray SV1) with threads.

    9. MPI Labs 00-04 on parallel programming

    10. Initial benchmarking experiments:
      • Running/benchmarking programs on the cluster (programs to be announced)
      • Running/benchmarking programs on the Cray SV1 (programs to be announced)
        How do the SV1, cluster, and workstations (transformers, elements, compaqs) compare?

      • Matrix Multiply program in C and Fortran
        See Optimizing Matrix Multply from "Bebop" - Berkeley Benchmarking and Optimization Group

    11. Trajectory Program - Introduction to Computer Graphics Modeling
      - see Computer Simulation and Modeling: "Project 1 - 3 Trajectory"