Course Description

Parallel computer architectures are ubiquitous today, adopted by all computer systems ranging from mobile devices like cellphones, laptops to data centers. In this course, we examine various parallel architectures, networking, and the programming model that they support.

The topics covered in this course include, but are not limited to:
  • Advanced computer architecture: multicore, manycore, heterogeneous architectures, shared memory architectures, distributed memory architectures, computer clusters, and data centers
  • Networking: line, ring, grid, torus, etc
  • System software: resource management, workload scheduling, data storage, and file systems
  • Programming models: multithreading, message passing, PGAS, MapReduce, CUDA
  • Performance measurement, benchmarking, evaluation and analysis

Learning Objectives

Upon competition of this course, students will be able to:
  • Master the principles and design methods for parallel systems
  • Be familiar with the state of the art computer architecture, systems, and applications
  • Understand technical details of system software for parallel systems
  • Identify and use proper programming models to solve common problems
  • Use methodology and tools to profile and evaluate performance, power, and resilience

Recommended Materials

    A textbook and some technical papers will be used as the reading material. The textbook covers the fundamental concepts and technical papers introduce the new parallel architectures and programming. Students are required to read the materials before coming to class.
  • Textbook: D.E. Culler & J.P. Singh Parallel Computer Architecture, Morgan Kaufmann, 1999. (ISBN: 1-55860-343-3)
  • Papers will be assigned for reading during the semester.

Technical Requirements

Ideally, students should have taken courses in operating systems, computer architecture, and algorithms. Students should be comfortable with programming in C/C++ and Linux/Unix environment.

Assignments and Grading

The tentative grading scheme is as follows:
  • Parcitipation: 10%
  • Programming assignments: 40%
  • Final project: 20%
  • Exam: 30%

Academic Integrity

All assignments are individual tasks, unless specfically designated as group tasks. It is expected that you will work ALONE on exams and quizzes. Evidence to the contrary will be regarded as academic dishonesty and will be dealt with according to the University policies on academic dishonesty. For details, please see http://www.clemson.edu/academics/integrity/index.html.

Title IX Statement

Clemson University is committed to a policy of equal opportunity for all persons and does not discriminate on the basis of race, color, religion, sex, sexual orientation, gender, pregnancy, national origin, age, disability, veterans status, genetic information or protected activity (e.g., opposition to prohibited discrimination or participation in any complaint process, etc.) in employment, educational programs and activities, admissions and financial aid. This includes a prohibition against sexual harassment and sexual violence as mandated by Title IX of the Education Amendments of 1972. This policy is located at http://www.clemson.edu/campus-life/campus-services/access/title-ix/.