CS 415/515: High Performance Computing
Spring 2008
Syllabus

Course description: This course covers the ways that High Performance Computing (HPC) techniques can be used to address problems in Computational Science. After introducing the major scientific applications areas and basic concepts of parallel computing, it outlines the hardware design of modern HPC platforms and the parallel programming models that they support. The principal methods of measuring and characterizing serial and parallel performance are then covered. The final section of the course gives an introduction to grid technologies together with an overview of the opportunities and challenges associated with the computational grid.

 

Pre-requisites: CS 310 (Algorithm Analysis), CS 350 (Networking) and MATH 247 (Linear Algebra)
 

Professor: Rebecca Bates

Computer Science

Wissink Hall 231

Phone: 507-389-5587

Fax: 507-389-6376

Email: bates@mnsu.edu

 


Course Website

http://bates.cs.mnsu.edu/cs415
Check the website regularly for announcements and updates. 


Course Hours and Location
Lectures: MW 3:30-4:45pm WH 286 or WH 119


Office Hours

Monday

Tuesday

Wednesday

Thursday

Friday

by appointment 1-2:30, 4:30-5:30 1:30-2:30* 1-2:30* 2-4**
* in WH 283
** in ACC or WH 231

If things that are useful for the entire class come up, they will be posted on the announcement section of the class webpage so please check it regularly.


Course Materials

Required Text: Parallel and Distributed Programming Using C++, Cameron Hughes & Tracey Hughes, Addison Wesley, 2004.
Additional readings will be distributed in class or via the website.
Recommended Texts:
An Introduction to Parallel Computing: Design and Analysis of Algorithms, Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta, Second Edition, 2003.
A list of related text books will be made available.

 

Student Outcomes

Students who complete this course will be able to:

  1. Describe operational aspects of several parallel computing architectures.
  2. Read and understand programs written in a language specific to High-Performance computing.
  3. Write programs that use concurrency in the form of multiple threads.
  4. Write programs that use the Message Passing Interface (MPI).
  5. Measure, analyze and assess the performance of HPC programs.
  6. Evaluate the suitability of different HPC solutions to standard problems in Computational Science.
  7. Describe the potential benefits and issues of grid computing.

Added Expectations of Graduate Students

  1. Graduate students will be held to a higher standard in all coursework, including assignments and exams.
  2. Graduate students will also be expected to perform in depth and thorough independent investigation of the subject matter.

Tentative Topic List

  1. Introduction to HPC/linux & the field of Concurrent Computing (~ 1 wk)
  2. Shared-Memory Computing: (~ 4 wks)
    a. Multiple Processes / Synchronization
    b. Locks and Barriers
    c. Semaphores
    d. Monitors
  3. Distributed-Memory Computing: (~ 3 wks)
    a. Message Passing
    b. Remote Procedure Call
    c. Distributed Computing Paradigms
  4. Parallel/Distributed Applications (~ 3 wks)
    a. Grid Computations
    b. Matrix Computations
  5. High-Performance Computing Tools (~ 3 wks)
    a. Compilers
    b. Libraries
    c. Development Tools

Grading Distribution
Homework and Lab work: 15%
2 Midterm Exams: 40%        
Final project: 45%

Important Dates
Midterm 1: February 27
Midterm 2: April 16
Final Project Presentations: Last week of course
Final Project Presentations: May 9

Course Tools

Homework and Exams
    The homework for this course will include problems from the book as well as programming projects.

    Your exams will be based on information gained through both homework and project experience as well as material covered in lectures and the book. 

 

Expectations of Students

Disabilities
Students who may need accommodations for a disability can make an appointment to see me during my office hours to discuss your needs.


Academic Honesty

By staying enrolled in this class, you agree to abide by the University's Policy for Academic Honesty which appears in the Student Handbook under the section heading "Academic Honesty". If you have questions about the policy please contact me, your advisor, or another faculty member PRIOR to engaging in a "dishonest" act. Failure to abide and respect the Academic Honesty Policy will result in severe penalties as allowed by the University.