CSC/ECE 506 Architecture of Parallel Computers
 

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. 3 credit hours.

 
   

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

SOFTWARE REQUIREMENTS: Access to NCSU Unity systems through PuTTY (Windows) or ssh (Mac, Linux, Unix).


• Textbook
 

Required text: Yan Solihin, Fundamentals of Parallel Multicore Architecture, ISBN: 978-1-4822-1118-4


• Computer and Internet Requirements
 

NCSU and Engineering Online have recommended minimum specifications for computers. For details, click here.


• Instructor
 

Dr. Ed Gehringer, Associate Professor
Computer Science-Engineering
Monteith Engineering Res.Ctr 450, Box 7256
NCSU Campus
Raleigh, NC 27695


Phone
: 919-515-2066
Email: efg@ncsu.edu
Web Site: http://www4.ncsu.edu/~efg