Dr. Edward Gehringer

Dr. Ed Gehringer

Computer Science

Phone: 919-515-2066
Fax: 919-515-2066
Instructor Website
Research Website

ECE 506 Architecture of Parallel Computers

3 Credit Hours

(also offered as CSC 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.


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.



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/20/2022