Bb HPC @ FSU HPC books

High-Performance Computing

Scientific Computing


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)


ISC5318/CIS5930-3, Fall 2012, 3 credit hours, letter grade, MW 3:35 - 4:50PM, 301LOV
Course Web Site
Professor Robert van Engelen
engelen at cs dot fsu dot edu
Office Hours
Tuesdays and Thursdays 1:30 PM to 2:30 PM and upon request.
Intended Audience
Graduate students.
Some experience programming in Java, or C, or C++, or Fortran is required.
Material (note: only parts of each of these textbooks will be used)
[HPC] "Software Optimization for High Performance Computing: Creating Faster Applications" by K.R. Wadleigh and I.L. Crawford, Hewlett-Packard professional books, Prentice Hall.
[OPT] "The Software Optimization Cookbook" (2nd ed.) by R. Gerber, A. Bik, K. Smith, and X. Tian, Intel Press.
[PP2] "Parallel Programming: Techniques and Applications using Networked Workstations and Parallel Computers" (2nd ed.) by B. Wilkinson and M. Allen, Prentice Hall.
[PSC] "Parallel Scientific Computing in C++ and MPI" by G. Karniadakis and R. Kirby II, Cambridge University Press.
[SPC] "Scientific Parallel Computing" by L.R. Scott, T. Clark, and B. Bagheri, Princeton University Press.
[SRC] "Sourcebook of Parallel Programming" by J. Dongara, I. Foster, G. Fox, W. Gropp, K. Kennedy, L. Torczon, and A. White (eds), Morgan Kaufmann.
Other Material
Class handouts.
Teaching Assistant
Exams and Grading
There will be two exams (one midterm exam and one final exam), a set of laboratory projects, and homework exercises. More details on the grading policy, grade breakdown, and exam material can be found on the exam page. Exam dates are scheduled in advance. A grade of zero will be recorded for missed exams unless prior arrangements have been made.
Homework and programming projects will be assigned on a regular basis. All assignments are mandatory and part of the final grade. The assignments, when turned in before or at the due date before midnight will be graded. When turned in late, 5% will be deducted from the homework grade per day until the homework has been received, with a maximum extension of five days.
Roll is not taken, but you are responsible for all material delivered in class.
All exams and assignments must be completed individually, unless stated otherwise. Copying solutions is considered cheating. Submitted source code listings will be compared. Keep a copy of the listings to provide evidence of creative work. Students are expected to uphold the Honor Code. Any student involved in cheating is in violation of the Honor code. Consult the "Student Handbook" for more details on the Honor code.

Computer Accounts

You will need an account on the FSU HPC. If you don’t have one then request access as follows:

If you are a student in the department of Scientific Computing and you don't have an account on the HPC yet, then:

If you are a CS student (or other department), then:


Schedule, Lecture Notes, and Assignments

The schedule with lecture notes and project assignments is shown below (refresh this page if necessary). You are encouraged to download and print the PDF notes as handouts to take to class for note taking. Links will be active when new lecture notes have been added. The reading material will be provided in class as handouts. The other reading resources are available from the instructor in hardcopy form only upon request. The schedule will be updated when needed and significant changes will be announced on Blackboard.

Project and homework assignments can be downloaded by selecting the links in the "Assignments due" column.

Date Lectures Reading material Other resources Assignments due Date
8/27 Introduction [PDF] [PP2] pages 3-12
[SPC] pages 1-15, 37-45, 48-52, 110-112
Grand Challenge problems
Colatz conjecture
Colatz on the Cell BE
- 8/27
8/29 [SRC] pages 3-13 Moore's law - 8/29
9/3 Labor day: no class
9/5 No class 9/5
9/10 Uniprocessors [PDF] [HPC] pages 7-56 [OPT] pages 51-141 - 9/10
9/12 Compiler optimizations for uniprocessors [PDF] [HPC] pages 81-124   - 9/12
9/17     - 9/17
9/19 Multiprocessors [PDF] [PP2] pages 13-26
[SPC] pages 71-95
  - 9/19
9/24 Parallel programming models [PDF]     - 9/24
9/26 Performance analysis [PDF] [PP2] pages 62-75
[HPC] pages 125-142
[SRC] pages 443-468 - 9/26
10/1 [SPC] pages 56-65

HW1 10/1
10/3 Programming with Shared Memory:
Part I: basics [PDF]
Part II: OpenMP [PDF]
Part III: synchronous parallel [PDF]
[HPC] pages 191-218 [HPC] pages 219-240 - 10/3
10/8 [PP2] pages 230-271 Semaphores HW2 10/8
OpenMP best practices
- 10/10
More OpenMP examples - 10/15
10/17 Review

- 10/17
10/22 Midterm exam 10/22
10/24 Programming with Message Passing:
Part I: basics [PDF]
Part II: MPI [PDF]
Part III: message passing parallel [PDF]
[PP2] pages 42-61 MPI PR1 10/24
10/29 [PP2] pages 340-365
- 10/29

- 10/31
11/5 Algorithms:
Part I: embarrassingly parallel [PDF]
[PP2] pages 79-99
- 11/5
11/7 [PP2] pages 201-210

HW3 11/7
11/12 Veteran's day: no class 11/12
11/14 Algorithms:
Part II: partitioning, divide & conquer [PDF]
[PP2] pages 106-131
- 11/14
11/19 [PSC] pages 309-337
PR2 11/19
11/21 Thanksgiving: no class
11/26 Parallel Programming Languages [PDF]

HW4 11/26
11/28 Libs & Tools [PDF]   [SRC] pages 621-647
- 11/28
12/3     - 12/3
12/5 GPUs:
OpenCL and CUDA programming
    PR3 12/5
12/10 Final exam 5:30PM-7:30PM 301LOV


Grade Breakdown

Test Percentage
Midterm 20%
Final 20%
Projects 40%
Homework 20%


Letter Grades

94-100% A 87-89% B+ 77-79% C+ 67-69% D+ 0-59% F
90-93% A- 83-86% B 73-76% C 63-66% D

80-82% B- 70-72% C- 60-62% D-

Assignment Submissions

Submit your assignments to the instructor using the Blackboard drop box. When uploading to the dropbox, please make sure to include all source code of your programming assignment, the input and output files (when applicable), and a Makefile. Use the zip utility to compress and archive the material. Make sure to mark the Blackboard file upload with "HOMEWORK #" and "PROJECT #", where # is the homework/assignment number. Also, please include your name and the assignment number in the program source code

The assignments must be turned in before or at the due date before midnight. When turned in late, 5% will be deducted from the homework grade per day until the homework has been received, with a maximum extension of five days.


Roll is not taken for this course. Attendance is required the first week of classes and during exams.

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 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 . . . [to] strive for personal and institutional integrity at Florida State University.”  (Florida State University Academic Honor Policy, found at


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 implementation of the evaluation (grading) statement, this syllabus is a guide for the course and is subject to change with advance notice.”

Copyright: Robert van Engelen, Florida State University, 2007-2012.
Last modified: Wednesday, October 3, 2012