CDA5125: Parallel and Distributed Systems
Spring 2022
Time Monday, Wednesday, Friday 9:20am-10:10am
Location 103 Lov Building
FLEX mode via zoom meeting 98203773808 passcode 518535
(zoom link:
https://fsu.zoom.us/j/98203773808?pwd=L0tMd2wxVG5NcE9QVWYxU0tqcWhTQT09)
Instructor Prof. Xin Yuan, 168 Love Building, 644-9133, xyuan@cs.fsu.edu
Office hours Monday, Wednesday, Friday 10:20pm-11:20pm, or by appointment.
Textbook There is no required textbook.
Reference materials
- J. Hennessy and D. Patterson, "Computer Architecture A Quantitative Approach," Morgan Kaufmann,
6th Edition, 2017, ISBN 978-128119051.
- Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear,
"The Art of Multiprocessor Programming," Morgan Kaufmann, 2nd edition, 2020. ISBN 9780123914064
- William James Dally and Brian Patrick Towles, "Principles and Practices
of Interconnection Networks," Morgan Kaufmann, 1st Edition, 2004. ISBN 0122007514
- David B. Kirk and Wen-mei W. Hwu, "Programming Massively Parallel Processors:
A Hands-on Approach," Morgan Kaufmann, 3rd edition, 2016. ISBN 0128119861
- Kevin R. Wadleigh and Isom L Crawford, "Software Optimization for High Performance
Computing: Creating Faster Applications," Prentice Hall, 1st Edition, 2000.
ISBN 0130170089.
- MPI: http://www-unix.mcs.anl.gov/mpi/
- OpenMP: http://www.openmp.org
- CUDA: NVIDIA CUDA Programming Guide
- Papers and tutorials in recent technical conferences and journals.
Course Home Page http://www.cs.fsu.edu/~xyuan/cda5125/
Course description
In the past few decades, we have seen parallelism making its ways to computing systems,
including both uniprocessor systems and multi-processor systems. This class introduces
parallel and distributed systems and programming, covering three areas: parallel computer
architectures, programming parallel and distributed systems (how to write efficient
code for different systems by exploiting architectural features), and algorithms and
systems issues in parallel and distributed systems.
- Architectures:
- Architectural classes, Flynn's taxonomy
- SIMD/Vector architecture
- Shared memory architecture
- Distributed memory architecture
- GPU architecture
- Interconnection networks
- Programming:
- Optimizing single thread performance
- SIMD and vector extensions
- Shared memory programming
- GPU programming
- Distributed memory programming
- Synchronization, concurrency, deadlock, race conditions, determinacy
- Performance issues: Speedup, efficiency, Amdahl's law,
Gustafson's law, load balancing
- Algorithms and systems issues
- Models: PRAM, BSP, LogP
- Systems issues: job scheduling, power, performance, security
Learning Objectives
After this class, you will be able to
- Explain the challenges and techniques in parallel computer architectures.
- Write efficient code to exploit parallelism in uniprocessor and
multi-processor systems with different programming paradigms.
- Explain systems issues and techniques in contemporary parallel and
distributed systems.
Prerequisite
- You must have completed COP 4610 Operating Systems (or equivalent), but
you do not need parallel and distributed computing background.
Grading
Homework will be assigned from time to time. Programming
assignments will be given. There is a term course project, which includes
in class presentation and a project report. Programming assignments and
the term project are to be done by individuals or groups of two students.
There will be a final exam. The grade points are distributed as follows:
- 45% - homework and programming assignments
- 40% - course project (group)
- 15% - Final exam
Following is the tentative letter grade scale. The scale may be curved
based on the relative performance. It is expected that half or more of
the class will receive A or A-.
Tentative Letter Grade Scale:
Letter | Numerical Average |
A | 90.00 - 100 |
A- | 85.00 - 89.99 |
B+ | 80.00 - 84.99 |
B | 75.00 - 79.99 |
B- | 70.00 - 74.99 |
C+ | 68.00 - 69.99 |
C | 62.00 - 67.99 |
C- | 60.00 - 61.99 |
F | 0.00 - 59.99 |
Course schedule (tentative)
- Week 1: Syllabus and introduction
- Week 2: Classification of parallel architectures, performance issues,
optimizing for uniprocessor systems
- Week 3: SIMD/vector architectures, SSE and SIMD intrinsics
- Week 4: Shared memory architectures
- Week 5: Programming shared memory systems
- Week 6: MIMD, distributed memory architectures and interconnection networks
- Week 7: Interconnection networks
- Week 8: Programming distributed memory systems
- Week 9: GPU architecture, GPU programming with CUDA
- Week 10: GPU programming with CUDA
- Week 11: Spring break
- Week 12: Programming models: PRAM, BSP, LogP
- Week 13: Systems issues
- Week 14: Systems issues
- Week 15: Project presentations
- Week 16: Final exam
Course Policies
- Attendance: The university requires attendance in all classes.
Absences may be excused with appropriate documentation. Excused absences
include documented illness, deaths in the immediate family and other
documented crises, call to active military duty or jury duty, religious
holy days, and official University activities. Accommodations for these
excused absences will be made and will do so in a way that does not
penalize students who have a valid excuse. Consideration will also be
given to students whose dependent children experience serious illness.
- Late assignments will not be accepted without a valid excuse.
Every document (homework, report, etc) that you hand in must
be a print-out from a soft copy.
- Missed exams: A missed exam will be recorded as a grade of zero.
We will follow the university rules regarding all missed exams
(http://registrar.fsu.edu/dir_class/spring/exam_schedule.htm).
- Incomplete grade: An incomplete grade will be assigned only
under the following exceptional circumstances:
- If you miss the final exam with an accepted excuse, you must make
up the exam during the first two weeks of the following semester.
- Due to extraordinary circumstances, with appropriate documentation,
the student can make up the missed portion, which must be no more than 25%
of the course, prior to the end of the next semester.
Your Responsibilities
- Understand the lecture slides and reading assignments.
- Attend the lectures and participate in the discussions.
- Attend office hours for extra help, as needed.
- Uphold academic honesty in completing your assignments,
projects, and exams.
- Turn in your projects, homework, programming assignment, and take-home exam
on time.
- Check the class Web page and your garnet email account regularly.
Academic Honor Code
The Florida State University Academic Honor Policy outlines the
University's expectations for the integrity of students' academic
work, the procedures for resolving alleged violations of those
expectations, and the rights and responsibilities of students and
faculty members throughout the process. Students are responsible for
reading the Academic Honor Policy and for living up to their pledge to
be honest and truthful and strive for personal and institutional
integrity at Florida State University. (Florida State University Academic
Honor Policy, found at http://dof.fsu.edu/honorpolicy.htm.) Under
the university honor code policy, for level 1 agreement between the
instructor and the students who violate the honor code, the penalty for
the first violation is a zero for the particular exam/quiz/project AND
one letter grade deduction for the course (e.g. A- to B-). The second
violation will be resolved through the Office of the Dean and the faculties.
Accommodation for Disabilities
Students with
disabilities needing academic accommodations should:
- Register with and provide documentation to the Student Disability Resource
Center (SDRC).
- Bring a letter to the instructor from the SDRC
indicating you need academic accommodations. This should be done
within the first week of class.
This syllabus and other class materials are available in
alternative format upon request.
For more information about services available to FSU students with
disabilities, contact the Assistant Dean of Students:
Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu
(850)644-9566(voice)
(850)644-8504(TDD)
Syllabus changes
This syllabus is a guide for the course and is subject to change with advance notice.