CSC 435 / S16
High Performance Scientific Computing



Dr. Andrew Pounds, 

Office: Rm. 105 Willett Science Center, (478) 301-5627
Rm. 201-C Computer Science Building
e-mail: pounds_aj@mercer.edu
Alt Phone (SMS): (478) 227-3444
Office Hours: MWF 11:00 a.m.-12:00 p.m. (WSC 105) (or by appointment)


I feel the need, the need for speed. - Maverick and Goose, ``Top Gun''

CSC 435 is a course to introduce students the foundational principles of High Performance Scientific Computing. Students in CSC 435 will be exposed to the fundamentals of single machine code optimization as well as coding techniques for shared memory parallel programming, distributed memory parallel programming, and massively parallel architectures. Much of the course will focus on parallel programming strategies for large scale numerical problems encountered in science and engineering. The use of public domain libraries and packages for message passing and numerical computation will be demonstrated. Commercial symbolic algebra packages like MuPad and Mathematica will also be used in the class to develop parallel numerical algorithms.

Students taking CSC 435 are expected to have a working knowledge of a high level programming language such as C, C++, Fortran, or JAVA. All parallel coding will be done in either C/C++ or Fortran. Strategies for high performance code development and project management with these languages will be discussed during the course. Students in CSC 435 are expected to read at the college level and also have a working knowledge of differential and integral calculus. Topics from multivariable calculus, linear algebra, and differential equations will be introduced as needed.


Class Meeting Times and Locations 

Lecture: TR 10:50 a.m. - 12:05 p.m., Room 204 CSB.


Course Materials 

REQUIRED: Introduction to High Performance Computing for Scientists and Engineers , Hager and Wellein
REQUIRED: Pthreads Programming, Buttlar, Ferrill, and Nichols
Scientific Calculator
Reference Material from Class Webpage (http://theochem.mercer.edu/csc435)


Course Structure 

Topics from fourteen chapters of the texts will be covered during the semester in the order listed on the class schedule. The lecture time will be used to expound on and augment the text, discuss problem solving strategies, and demonstrate algorithms. A significant amount of the class period will be devoted to actually utilizing the parallel computing cluster and HPC systems. Students are responsible for all material covered in class as well as the material from the textual sections listed in the class schedule. Four small exercises and three semester-long projects will be submitted for grading. Each of the semester long projects will have multiple deliverables and due dates. One of the semester-long projects will be a group collaborative project. Students will also be required to do a presentation related to their components of the group project. The details of each project and the description of the deliverables for each project will be provided to the students in writing. A midterm and a final exam will be administered per the class schedule.

Grading 

Quizzes 10 %
Programming Projects 50%
Group Project 20%
Midterm Exam 10%
Final Exam 10%
   
Total Possible 100 %


 		 The following grading scale is assured but may be slightly lowered based on test results. 

A $\geq$90 %
B $\geq$80 %
C $\geq$70 %
D $\geq$60 %
F $<$60 %


General Information

Honor Code: All students in CSC 435 are expected to adhere to the Mercer University Honor Code. Any suspected violations will be reported to the Honor Council for further investigation.

Many students have difficulty in determining how to apply the Mercer honor code to Computer Science courses. A few general guidelines should help you in deciding whether you are violating the honor code or not.

  1. You are allowed to receive help on your programs from other students, provided the purpose of the help is to help you understand your own program better, not to write your program for you.

  2. You are NOT allowed to use copies of programs written by other students, or copies of programs from published sources unless you are explicitly given permission to do so, even if you plan to modify them extensively.

  3. You are NOT allowed to give copies of your programs, or parts of your programs, to other students in any form.

  4. In short - YOU MUST WRITE YOUR OWN CODE. DO NOT COPY PROGRAMS OR PARTS OF PROGRAMS FROM ANY SOURCE UNLESS I TELL YOU TO DO SO. If you have any questions about using a published resource, just ask me.

  5. Any attempt to gain unauthorized access to the computing systems or to in any way damage the parallel computing systems and job schedulers so as to hinder the work of others will not only result in an honor code violation but will infringe upon intellectual property rights and result in criminal prosecution.

Any violation of the above policies will be treated as academic dishonesty and a violation of the Mercer Honor Code.

Attendance: Attendance will be taken randomly during the semester. The attendance grade will based on the percentage of absences on the randomly chosen days. For each 10 pecentage points below 100%, the students final letter grade will drop one letter grade. At a minimum, attendance will be taken on ten days of class. Students are still accountable for all material covered in class as well as any announcements made during the lecture period.

Missed Exams: Anyone missing an exam for any reason (personal illness, death in the immediate family, or other emergency) must notify Dr. Pounds in advance. The absence will be considered unexcused otherwise. Make-up exams will be individually scheduled.

Partial Credit: Partial credit will not be awarded on any exam unless individuals show their work and clearly delineate how they arrived at their answers.

Re-grading Policy: If a student suspects that an error was made in the grading of a submitted work, they may return the paper for re-grading with the understanding that the entire work will be re-graded and not only the portion in question.

Posting of Grades: Grades will not be posted. If you are curious about your cumulative grade, see Dr. Pounds.

E-mail Listserve: I maintain an e-mail listserve which I use use copiously to send information to the class and which you can use to communicate with each other. To sign up for the listserve and to learn how to send information to it, please go to: http://theochem.mercer.edu/mailman/listinfo/csc435.

American Disability Act: ``Students with a documented disability must inform the instructor at the close of the first class meeting. The instructor will refer you to the Student Support Services office for consultation regarding evaluation, documentation of your disability, and a recommendation as to the accommodation, if any, to be provided. Students must provide instructors with an accommodation form from Student Support Services listing reasonable accommodation to sign and return to Student Support Services. The Student Support Services office is located on the 3rd floor of the Connel Student Center. If you do NOT consult with the instructor and follow up at the Student Support Services office during the first two weeks of classes, as provided above, you will thereby waive any claim to a disability and the right to any accommodation pertaining thereto.''

Electronic Submission of Materials: ``Students bear sole responsibility for ensuring that papers or assignments submitted electronically to a professor are received in a timely manner and in the electronic format(s) specified by the professor. Students are therefore obliged to have their e-mail client issue a receipt verifying that the document has been received. Students are also strongly advised to retain a copy of the dated submission on a separate disk. Faculty members are encouraged, but not required, to acknowledge receipt of the assignment.''

Tentative Class Schedule1
Week Starting Chapter Lecture Topics
January 10$^{\rm th}$ Chapter 1 [HPC] Introduction
    Code Maintenance
    Code Timing
January 17$^{\rm th}$ Chapter 2 [HPC] Single Processor Tuning
    Performance Tuning Tools
    Cache and Memory Optimization
    Compiler Switches and a review of makefiles
January 24$^{\rm th}$ Chapter 3 [HPC] Data Access
    Loop Optimization
    Interlanguage Communication
    Vector Computers, SIMD, and Pipelines
January 31$^{\rm st}$ Chapters 4 and 5 [HPC] Parallel Computers
    Basics of Writing Parallel Code
February 7$^{\rm th}$ Chapter 6 [HPC] Introduction to OpenMP
    Embarassingly Parallel Computations
    Monte Carlo Integration
February 14$^{\rm th}$ Chapter 7 [HPC] Data Dependencies
February 21$^{\rm st}$ Chapters 1 and 2 [PTH] Introduction to Pthreads
    Designing Threaded Programs
February 28$^{\rm th}$ Chapter 3 [PTH] Mutexes, Deadlock, Barriers,
    and Syncronization
    Revisiting Data Dependence
    MIDTERM EXAM, 3/3/16
March 6$^{\rm th}$   SPRING BREAK
March 13$^{\rm th}$ Chapter 9 [HPC] Introduction to MPI
    Preparations for Parallel Cluster Work
    Network Mapping and Characteristics
March 20$^{\rm th}$ Chapter 10 [HPC] Data Dependence, Location, and Placement
    Work and Data Decomposition
    Locating Parallel Regions
March 27$^{\rm th}$   Barriers and Synchronization
    Performance Tuning
April 3$^{\rm rd}$ Special Topic - CUDA Introduction to Massively Parallel Computations
    Environment Setup
    Code Management
April 10$^{\rm th}$   CUDA Hardware and Memory Structure
    Data Locality, Placement, and
    Memory Management
April 17$^{\rm th}$   Optimizing CUDA Code
    CUDA Kernels
April 24$^{\rm th}$ Chapter 11 [HPC] Hybrid High Performance Computing
May 1$^{\rm st}$   FINAL EXAM, 5/3/16, 2 p.m.
    (Thursday)

About this document ...

This document was generated using the LaTeX2HTML translator Version 2008 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -nonavigation -local_icons -split 0 syl_s16.tex

The translation was initiated by Andrew J. Pounds on 2016-01-11


Footnotes

... Schedule1
I reserve the right to modify this schedule as situations warrant.


Andrew J. Pounds 2016-01-11