CSC 5551/7551 Parallel and Distributed Systems
Professor Gita Alaghband


Tentative Syllabus,
Academic Calendar 09 Deadlines
I may change this somewhat, relevant announcements will be made in class.

Office:

NC 2605 A

Email:

All your emails must:have CSC5551  in the subject field, otherwise, I may lose your message.                        
All students must:use their university assigned email accounts: 

"first name.lastname@email.ucdenver.edu".

My Email: Gita.Alaghband@ucdenver.edu

WEBSITE:

http://www.cudenver.edu/~galaghba/gita.html

Office Hours

Subject to change, I will notify you of change and update this site.
Tuesday:  2:00 to 3:30  By appointment only (Graduate Advising). Please call the CSE Office at 303-556-4083 for appointments.
Tuesday:  3:30 to 4:00
Thursday  2:00 to 4:00

Text:

Fundamentals of Parallel Processing,
Harry Jordan and Gita Alaghband,
Prentice Hall Publication, 2003.
ISBN: 0-13-901158-7

Prerequisites:

Graduate standing in computer science is assumed. More specifically, a course in the following areas would be helpful. Discuss your background with me if in doubt.

  • Computer Architecture,
  • Algorithms Programming Languages,
  • Operating Systems, and
  • Numerical Analysis

Grading:

Homework 45% (individual work) Note: PhD students will conduct more indepth research projects
Team assignments 10%
Research Project 30%
Peer Reviews/Class participation 15%

Final Grade Assignment

Grade
Total points
A
90-100
B
80-89
C
70-79
D
60-69
F
0-59


Notes:

  • Team-Assignments/ participation:Some portions of the homework are team assignments.There will be some un-announced class assignments/homework solutions. Class discussions and participation are essential components of this course.
  • Peer Reviews:Students will be involved in grading homework, team assignment reviews (see guide), and research presentations reviews.
  • All deadlines must be met.
  • It is important to attend class regularly.Students are responsible for missed classes.
  • Workload:You should schedule yourself to spend an average of 9 hours/week for this course outside of classroom.
  • No computers during lectures:Please do not use your computers during lecture time, you may print the notes to take addition notes and add clarification in class, but please do not try to follow the lectures on your computers during class time.

Tentative  Schedule

August     18 Classes Begin
October    15 Research Proposals Due (complete with references)
October    27
  • Seminar Presentations Start (We may change this date depending on class size)
  • Reports Are Due at The Time of Presentation, (Email electronic copy of your slides/Power point with annotated notes and complete references)
November 23-29
Fall Break
December    1 Make sure all your work has been completed and submitted.
No work submission after this date.

Course Description

CSC 5551/7551: Examines a range of topics involving parallel and distributed systems.  With the emergence of multicore architectures, studying parallel computing, programming and architectures to improve computational performance is at the core of the new computer science  curriculum. Topics include parallel and distributed programming languages, architectures, networks, algorithms and applications.

Topics Covered 

some adjustments to these topics may be made during the semester



  • Introduction
    • SIMD 
    • MIMD 
    • SIMD/MIMD pseudo code 
    • SIMD/MIMD code example

 

  • Prefix Algorithms
    • Sequential
    • Divide and conquer
    • Upper/Lower construction
    • Size and depth analysis
    • Odd/Even construction
    • Size and depth analysis
    • Combination method
    • Size and depth analysis

 

  • Speed-up and efficiency

 

  • Example algorithms
    • vector matrix multiply
    • General linear recurrence
    • Column sweep algorithm and analysis

 

  • SIMD architectures
    • True vs. pipelined SIMD
    • Memory access organization
    • Instruction Set Model
    • Address calculation
    • PE and CU Instruction Set
    • Communication instructions
    • Mask vectors and conditions
    • Examples

 

  • MIMD multiprocessors
    • Shared memory
    • Fragmented (distributed memory)
    • Topology
    • Examples

 

  • Distributed Processing
    • Introduction
    • Example code

 

  • Programming shared memory multiprocessors
    • Process management
    • synchronization
    • Data oriented
    • Control oriented
    • Data sharing
    • storage classes
    • Examples
    • Force language

 

  • Synchronization/communication in distributed memory
    • send/receive (blocking vs. non-blocking)
    • CSP
    • PVM and MPI

 

  • Interconnection Networks and Permutations
    • cyclic
    • mesh
    • Perfect and Inverse Perfect Shuffle
    • Crossbar
    • Cube
    • Illiac IV
    • Benes Network
    • Omega Network/ destination tag method
    • Examples

 

  • NYU Ultracomputer
    • Combining network
    • Fetch and ADD