CS 415/515: High Performance Computing

Announcements:  Check here regularly for announcements!

Welcome to CS 415! 

Homework 2 is linked to on the handouts page. 

Previous Announcements

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 (bates@mnsu.edu
Contact Information

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

Prof. Bates will also read and respond to email questions within 24 hours.  You can usually expect responses to questions the same day if received prior to 10pm. If things that are useful for the entire class come up, they will be posted on the announcement section of the class webpage so 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.

Course Syllabus

Student Outcomes
Upon completion of the course, students should 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
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


Other Information

CS 415 Handouts and Assignments


Additional Resources


Page last modified by R.A. Bates on 01/26/2008 01:01 PM.