Dr. Amro Awad

Electrical and Computer Engineering

Phone: 919-515-5257
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. Brief overview of advanced topics such as multiprocessor prefetching and speculative parallel execution.


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



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).


Created 02/25/2021