|
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
|
|
|
|
|
|
- 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
|