ECE568

Introduction to Parallel Processing
Fall
Catalog Data: 

Graduate Course Information

===================================================

ECE 568 - Introduction to Parallel Processing

Credits: 3.00

Course Website: www.ece.arizona.edu/~ece568

UA Catalog Description: http://catalog.arizona.edu/allcats.html

Course Assessment:

Homework:  3 – 5 assignments

Project:  1 project (term paper)

Exams:  2 Midterm Exams

Grading Policy:

Typically: 50% Midterms,

                  20% Project

                  25% Homework,

                  5% Participation.

Course Summary:

This course is intended to introduce graduate students to the field of modern computer architecture design stressing speedup and parallel processing techniques. The course is a comprehensive study of parallel processing techniques and their applications from basic concepts to state-of-the-art parallel computer systems. Topics to be covered in this course include the following: First, the need for parallel processing and the limitations of uniprocessors are introduced. Next, a substantial overview and basic concepts of parallel processing and their impact on computer architecture are introduced. This will include major parallel processing paradigms such as pipelining, superscalar, superpipeline, vector processing, multithreading, multi-core, multiprocessing, multicomputing, and massively parallel processing. We then address the architectural support for parallel processing such as (1) parallel memory organization and design, (2) cache design, (3) cache coherence strategies, (4) shared-memory vs distributedmemory systems, (5) symmetric multiprocessors (SMPs), distributed-shared memory(DSM) multiprocessors, multicomputers, and distributed systems, (6) processor design (RISC, superscalar, superpipeline, multithreading, multi-core processors, and speculative computing designs), (7) communication subsystem, (8) computer networks, routing algorithms and protocols, flow control, reliable communication, (9) emerging technologies (such as optical computing, optical interconnection networks, optical memories), (10) parallel algorithm design and parallel programming and software requirements, (11) case studies of several commercial parallel computers from the TOP500 list of supercomptuers.

Prerequisite(s): 
ECE562
Textbook(s): 

No required textbooks 

Course Topics: 

1.     Introduction to Modern Computer Architectures

(a) Structure and Organization of a Typical Uniprocessor Architecture

(b) Need for Parallel Processing

(c) Parallel Classification Schemes

(d) Performance Metrics for Parallel Computers

2.     Memory Subsystem

(a) Memory Hierarchy for Parallel Systems

(b) Virtual Memory Organization

(c) Cache Memories for Parallel Processing

(d) Cache Coherence Schemes (snooping, directory based, and hybrids).

(e) Shared-memory Organization

3.     Processor Design

(a) Pipelining and Superpipelining

(b) Superpipeline Superscalar Design

(c) Multithreading

(d) multi-core design

4.     Communication Subsystem

(a) Static Networks topologies and routing

(b) Dynamic Networks topologies and routing

(c) Reconfigurable Networks

(d) Multistage Interconnection Networks

(e) Network-on-chips

(f) Optical Interconnects

5.     Multiprocessors: Bus-based SMPs

6.     Multiprocessors: Directory-based Multiprocessors

7.     Multicomputers: Distributed-memory systems

8.     Parallel Program Design and Parallel Programming

(a) Parallel Program Design Principles

(b) Parallel Programming Languages: MPI and OpenMP

9.     Emerging Technologies

10.  Future Directions in Computer Architecture

Class/Laboratory Schedule: 

Lecture:  150 minutes/week

Prepared by: 
Ali Akoglu
Prepared Date: 
April 2013

University of Arizona College of Engineering