CSC 435 / S07
High Performance Scientific Computing



 Dr.  Andrew Pounds, 

Office: Rm. 332 Willett Science Center, (478) 301-5627
e-mail: pounds_aj@mercer.edu
Home Phone: (478) 750-9251 ( No calls after 8 PM)
Office Hours: MWF 11:00-12:00, (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 techniques for parallel programming. Much of the course will focus on parallel programming strategies for large scale numerical problems encountered in the sciences. The use of public domain libraries and packages for message passing and numerical computation will be demonstrated. Commercial symbolic algebra packages like Maple and MuPad 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 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 3:05 - 4:20 p.m., Room 306 CSB.


 Course Materials 

Scientific Parallel Computing, Scott, Clark and Bagheri
Scientific Calculator
Reference Material from Class Webpage ( http://theochem.mercer.edu/csc435)


 Course Structure 

Topics from twelve chapters of the text 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. Students are responsible for all material covered in class as well as the material from the textual sections listed in the class schedule. Eight assignments and four projects will be submitted for grading. A midterm and a final exam will be administered per the class schedule.

 Grading 

Midterm ( 1 @ 100 pts) 100 pts
Programming Projects (4 @ 150 pts) 600 pts
Homework (4 @ 25 pts) 100 pts
Programming Exercises (4 @ 25 pts) 100 pts
Final Exam 100 pts
   
Total Possible 1000 pts


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

A $\geq$900 pts
B $\geq$800 pts
C $\geq$700 pts
D $\geq$600 pts
F $<$600 pts


 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.

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.

Homework: Students are encouraged to work together on homework assignments. Each person, however, must turn in their own assignments in their own words.

Homework Grading Policy: Individual homework problems will be graded on a three point scale and the composite score from all problems on a given assignment converted to a 25 point scale. Points will be awarded as follows: 3 (essentially correct), 2 (minor errors or omissions), 1 (major errors or omissions), 0 (no effort). Homework will be considered late if it is not turned in by 5:00 p.m. on the date due. Late homework will be penalized 33% per day.

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: ``If you believe that you possess a disability for which reasonable accommodation must be made, you must consult with the instructor at the close of the initial class meeting. The instructor will refer you to the Office of the Dean of Students for evaluation, documentation of your disability, and a recommendation as to the accommodation, if any, to be provided. If you do not consult with the instructor and follow up with the Office of the Dean of Students, as instructed 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 7$^{\rm th}$ Chapter 1 Introduction
    The Dusty Deck
    Code Timing
January 14$^{\rm th}$   Single Processor Tuning
    Performance Tuning Tools
January 21$^{\rm st}$   Cache and Memory Optimization
    Loop Optimization
    Numerical Libraries
January 28$^{\rm th}$ Chapter 2 and 3 Parallel Computers
    Amdahl's Law
February 4$^{\rm th}$ Chapter 5 and 7 Introduction to MPI and Parallel Computing Languages
    Message Passing Computing
February 11$^{\rm th}$   Embarassingly Parallel Computations
    Monte Carlo Integration
February 18$^{\rm th}$ Chapter 4 Dependencies
    Data Dependencies
    Loop Transformations
February 25$^{\rm th}$ Chapter 6 Collective Operations
    (EXAM 1 - 2/22/07)
March 4$^{\rm th}$   SPRING BREAK
March 11$^{\rm th}$ Chapter 10 Loop Tiling
    Work and Data Decomposition
    Locating Parallel Regions
March 18$^{\rm th}$ Chapter 11 Matrix Eigensystems
    The Leslie Method
March 25$^{\rm th}$   Parallelizing the Leslie Method
    Triangular Systems
April 1$^{\rm st}$ Chapter 12 Linear System
    Gaussian Elimination
  Special Topic Non-linear Systems
    The Jacobi Method
April 8$^{\rm th}$   Parallel Triangular Systems
April 15$^{\rm th}$ Chapter 13 Particle Dynamics
    Pairwise Interactions
    Strategies for Breaking Dependencies
    Parallel Interaction Tables
April 22$^{\rm st}$ Chapter 15 Sorting
    Spatial and Parallel Sorting
  Special Topic Image Processing
April 29$^{\rm th}$   FINAL EXAM, 5/1/07, 7 p.m.
    (Tuesday)





Andrew Pounds
2007-01-08