COMP/CS 705: Introduction to Parallel Computing (Fall, 2017)

Course Syllabus


[Return to course website]

 

Course Information:

 

Course Description:

Students will learn to develop applications using parallel tools and concepts, including: libraries; numerical methodology; optimization tools; visualization of results; MPI and GPU computing models. Applications will be conducted on both the CSRC student cluster and NSF XSEDE computing resources.

COMP/CS 705 is hands-on, with weekly and semi-weekly programming assignments.

The course will consist of the following topics:

  • Review of CPU/MPI programming concepts (1 Week)
  • Review of GPU programming concepts (1 Week)
  • Basic tools: SVN, Makefiles, Compiling, Scripting (0.5 Weeks)
  • Computer Arithmetic (0.5 Weeks)
  • Parallel performance, optimization, analysis/tuning tools (1 Week)
  • Scientific,Data,Formats: ASCII, binary, NetCDF, HDF (0.5 Weeks)
  • Visualization tools: Excell, GnuPlot, Matlab, NCView (1 Week)
  • Parallel differential equations (ODE, PDE) (3 Weeks)
  • Parallel linear algebra (3 Weeks)
  • Scientific Libraries: Portable Extendable Toolkit for Scientific Computing (PETSC), ParMetis, BLAS, Lapack, SuperLU (3 Weeks)
  • Scientific Applications (2.5 Weeks)

[Back to Top]
 
 

Course Prerequisites:

  • COMP 705 or CS 705, or equivalent parallel programming experience.
  • In-depth knowledge of the following parallel programming models is required
    • The Message Passing Interface (MPI)
    • GPU/CUDA Programming
  • Graduate standing in Computational Science, Computer Science, Engineering, or instructor's approval
  • In-depth knowledge of Unix operating systems and the C programing language is required:
  • Helpful: FORTRAN; OpenMPI and Pthreads; Computer Science 501, 520, 525, Computational Science 526.
[Back to Top]
 

Recommended Textbooks:

[Back to Top]
 

Grading Policy:

Grades will be based on completion of all assignments and exams (TBD, depending on class progress). Approximate weighting of class work is shown below:
  • In class exams/presentations (typically 1 for each module): 50%
  • Homework assignments (typically 1 for each module): 50%
This is a course that counts towards graduate degrees, and cannot be taken on a "Credit/NoCredit" basis.
[Back to Top]
 

Assignments:

All assignments must be on time, or points will be lost (2% the first day, and 1%/day afterwards). Specific requirements for each assignment will be explained. Grading requirements will be provided with the assignment, and are subject to slight changes based on the project. HW grades will be based on several factors, including:
  • quality working code
  • quality of project writeup, presentations, reports, etc.
  • timeliness
Notes:
  1. There will be 4-5 modules in this class, and each one will have 1-2 homework assignments
  2. Please see the Homework page of this course for additional information.
[Back to Top]
 

Waitlist Policy

  • Students are added via the SDSU Waitlist System - the instructor for this class has NO control over the list or the order of students who are on the list.
  • Enrolled students must attend the first 2 clases or they will be dropped.
  • Students must pass an initial exam to remain in the class.
  • Check the SDSU academic calendar for the last day to add classes, drop classes.
[Back to Top]
 

Cheating:

Plagiarism, cheating, and "oversharing" with collaborators or classmates code and work is not allowed. There are ways to credit sources of information (and inspiration), which will be clearly described in the lectures, and inclusion of references is required. Note: exchange of ideas and working in study groups is part of the fun of learning, but does not include exchange of code. If you don't understand what this means, read these articles:
  • http://www.ics.uci.edu/~kay/checker.html
  • http://en.wikipedia.org/wiki/Plagiarism
You code will randomly be run through different code checkers including the Thomas Code Search Algorithm, Google (you would be amazed what can be found), or the Standford Moss System for Detecting Software Plagiarism. Anyone caught cheating will receive an F in the class.
[Back to Top]
 

© 2017, Mary Thomas - All rights reserved.
OpenContent license defines the copyright on this document.

Counter for tumblr
Website Stats