Home
Page Syllabus Marcin Paprzycki


      CSC 410/510 MULTIPROCESSING

      PROJECT (groups)

      • Parallel Rendering of Movie Frames, by A. Rajendran and V. Ramanujam
      • Image Processing, by D. Runnels and F. Zand
      • Parallel Volume Rendering, by Y. Mu and C. Smith
      • Image Recognition, by G. Bond, L. Scardino and W. Arena
      • Convex Hull, S. Roberts and D. Lajaunie
      • Pattern Matching, G. Donaldson and M. Trouard
      • Shortest Path, by R. Greer and G. Kirkland
      • Graph Connectivity, R. Rekhi and D. M. Booth
      • Matrix Multiplication, by J. McCoy and G. Adams
      • Sparse Matrix Operations, by X. Huan and A. M. Farcas
      • Queries in a Distributed Database, by J. Henry and C. Williams
      • Othello, by T. Wilson and J. Bjursell

      Usefull MPI links

      Information about the clock() and other timing function

      Material covered:

        Current trends in multiprocessing
          Shared memory computers
          Distributed memory computers
          Clusters
          Shared-distributed memory computers
          ASCI Project
            ASCI Red
            ASCI Blue Mountian
            ASCI Pacific Blue
            ASCI Option White

        Why parallel computing?
        Discussion of the project(s)

        Distributed systems -- a bit of an overview
        Formal model of a distributed system
          Asynchronous systems
          Synchronous systems
          Timing model
          Complexity of algorithms:
            Time complexity Message complexity

        Simple algorithms:
          Broadcast
          Convergecast
          Flooding
          Building a spanning tree
          Building a depth-first spanning tree for a given root
          Building a depth-first spanning tree without a given root

        Leader election (in a ring topology):
          The problem
          Two algorithms for asynchronous systems:
            Simple algorithm O(n^2)
            Modified algorithm O(nlogn)
          Two algorithms for synchronous systems:
            Non-uniform algorithm
            Uniform algorithm

        Mutual exclusion for shared memory systems
          Introduction to shared memory systems
          Algorithm based on Test&Set registers
          Algorithms based on Read-Modify-Write registers
          Bakery algorithm and its limitations
          Bounded mutual exclusion for two processors
          Bounded mutual exclusion for n processors
          Fast mutual exclusion for not-too-busy system

        Fault-tolerant consensus
          Synchronous system with simple crash failures
            Resiliency
            Consensus in an f-resilient system
          Synchronous system with Byzantine failures

      Homework 1 (individual)

      Implement the broadcast algorithm (without using the broadcast primitive available in the MPI library). Test it on the "wiglaf" machine. Send me the working code. Due by: before class, Monday, September 18th.

      Homework 2 (group)

      Design and implement the initial WWW site for the group project. Due by: before class, Monday, September 18th.

      Homework 3 (group)

      Prepare a 5 minute presentation that will introduce your project to teh class. Due by: in class, Monday, September 25th.

      Homework 3 (individual)

      Compare the performance of the MPI broadcast and gather operations with your own implementations of the broadcast and convergecast algorithms for a varying number of processors and a varying length of the message. Write a paper describing the results of your experiments. Due by: before class, Wednesday, October 4th.

      Homework 4 (group)

      Update the WWW site for your project. Go to other project pages and reflect on what you like and what you do not like to improve your site. Add content! Due by: before class, Wednesday, October 11th.

      Homework 5 (individual)

      Compare the performance of the two ring election algorithms for asynchronous systems. Implement them using MPI as the data communication primitive. Run the experiments for varying message size and varying assignments of node identifiers and varying numbers of processors in the ring. Write a paper describing the results of your experiments. Due by: before I come to my office on Wednesday, October 25th.

      Reading assignment - pages 1-109