This course is an introductory course on high-performance computing. High-performance computing refers to a specialized use and programming of (parallel) supercomputers, computer clusters, and everything from software to hardware to speed up computations. The CPU clock speed of desktop and commodity processors has reached a maximum range, due to physical limitations. As a result, more advanced (and often creative) use of software and parallel hardware is required to further speed up processing. In this course you will learn how to write faster code that is highly optimized for modern multi-core processors and clusters, using modern software development tools, performance profilers, specialized algorithms, parallelization strategies, and advanced parallel programming constructs in OpenMP and MPI.
Topics in this course include (but are not limited to):
For this course we made a selection of material from the best textbooks available:
Software tools you will use in this course:
|Sun Studio Performance Analyzer Demo||Sun Studio Performance Analyzer Demo||Jumpshot-4 (MPI)||Intel Codecov|
(Select image to enlarge)
You will need an account to access FSU RCC. If you dont have an account then request a sponsored account as follows:
Schedule, Lecture Notes, and Assignments
The tentative schedule with PDF lecture notes is shown below (refresh this page to view the lates changes). You are encouraged to download and print the PDF notes and take them as handouts to class. The schedule will be updated when needed and significant changes will be announced on Blackboard.
You can view assignments by selecting the links under the "Assignments due" column.
|Date||Lectures||Reading material||Other resources||Assignments due||Date|
|1/10||Introduction||[PP2] pages 3-12
[SPC] pages 1-15, 37-45, 48-52, 110-112
|Grand Challenge problems
|1/12||[SRC] pages 3-13||Moore's law||-||1/12|
|1/17||Uniprocessors||[HPC] pages 7-56||[OPT] pages 51-141||-||1/17|
|1/24||Compiler optimizations for uniprocessors||[HPC] pages 81-124||GCC optimizations||-||1/24|
|1/31||Multiprocessors||[PP2] pages 13-26||HW1||1/31|
|2/2||[SPC] pages 71-95||-||2/2|
|2/7||Parallel programming models||-||2/7|
|2/9||Performance analysis||[PP2] pages 62-75
[HPC] pages 125-142
|[SRC] pages 443-468||-||2/9|
|2/14||[SPC] pages 56-65||-||HW2||2/14|
|2/16||Programming with Shared Memory:
Part I: basics
Part II: OpenMP
Part III: synchronous parallel
|[HPC] pages 191-218||[HPC] pages 219-240||-||2/16|
|2/21||[PP2] pages 230-271||Semaphores||-||2/21|
OpenMP best practices
|2/28||More OpenMP examples||-||2/28|
|3/9||Programming with Message Passing:
Part I: basics
Part II: MPI
Part III: message passing parallel
|[PP2] pages 42-61||MPI||PR1||3/9|
|3/21||[PP2] pages 340-365||-||3/21|
Part I: embarrassingly parallel
Part II: partitioning, divide & conquer
|[PP2] pages 79-99||-||3/28|
|3/30||[PP2] pages 201-210||HW3||3/30|
|4/6||[PP2] pages 106-131||-||4/6|
|4/11||[PSC] pages 309-337||PR2||4/11|
|4/13||Parallel Programming Languages||UPC||-||4/13|
|4/20||OpenCL and CUDA programming||CUDA Part A and Part B||-||4/20|
|4/25||Libs & Tools||[SRC] pages 621-647||BLAS and LAPACK||-||4/25|
|5/2||Final exam 10:00AM-12:00PM||TAU profiler||PR3 (due 5/5)||5/2|
|Midterm exam||25%||2012 midterm PDF|
|Final exam||25%||2012 final PDF|
All assignments are mandatory and part of the final grade. Assignments and homework should be turned in before or at the due date before midnight. When turned in late, 5% will be deducted from the project grade per day until the submission has been received, with a maximum extension of five days.
Submit your assignments via Blackboard. Submitted projects should includes all source code, the input and output files (when applicable), and a Makefile. Include your name and the assignment number in the program source code file(s).
First class attendance is mandatory. Attendance during exams is also mandatory. You are responsible for obtaining all material delivered in class to study.
Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.
Academic Honor Policy
The Florida State University Academic Honor Policy outlines the Universitys 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 . . . [to] strive for personal and institutional integrity at Florida State University. (Florida State University Academic Honor Policy, found at http://fda.fsu.edu/Academic-Resources/Academic-Honor-Policy.)
Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Student Disability Resource Center; and
(2) bring a letter to the instructor indicating the need for accommodation and what type. This should be done during 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:
Student Disability Resource Center
97 Woodward Avenue, South
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
Syllabus Change Policy
"Except for changes that substantially affect the evaluation (grading), this syllabus is a guide for the course and is subject to change with advance notice.”
Copyright: Robert van Engelen, Florida State University, 2017.