Instructor

Dr. Ed Gehringer
Computer Science
Phone: 919-515-2066
Fax: 919-515-7896
Email: efg@ncsu.edu
Instructor Website
Research Website
CSC 506 Architecture of Parallel Computers
3 Credit Hours
(also offered as ECE 506)
The need for parallel and massively parallel computers. Taxonomy of parallel computer architecture, and programming models for parallel architectures. Example parallel algorithms. Shared-memory vs. distributed-memory architectures. Correctness and performance issues. Cache coherence and memory consistency. Bus-based and scalable directory-based multiprocessors. Interconnection-network topologies and switch design.
Prerequisite
Courses in computer architecture or computer organization and assembly-level programming. Digital design, probability and statistics, operating systems.
Course Objectives
To teach the principles of high-performance parallel computer design and to provide a brief introduction to the programming techniques necessary to use them.
Course Requirements
HOMEWORK: Approximately four problem sets will be assigned. Also, students will team up to write articles for Wikipedia.
EXAMINATIONS: Two midterms and a final.
PROJECTS: Three short programming assignments, one using OpenMP, and two simulating aspects of a parallel computer system.
Textbook
Required text: Yan Solihin, Fundamentals of Parallel Multicore Architecture, ISBN: 978-1-4822-1118-4
Computer and Software Requirements
Please review minimum computer specifications recommended by NC State University and Engineering Online.
Access to NCSU Unity systems through PuTTY (Windows) or ssh (Mac, Linux, Unix).
Updated 10/30/2022