ECE Header Logo

EEC171 – Parallel Computer Architectures

4 units – Spring Quarter

Lecture: 3 hours

Discussion: 1 hour

Prerequisite: EEC 170 or ECS 154B

Grading: Letter.

Catalog Description:

Organization and design of parallel processors including shared-memory multiprocessors, cache coherence, memory consistency, snooping protocols, synchronization, scalable multiprocessors, message passing

Expanded Course Description

  1. Introduction: An overview of parallel architecture including history and current trends
  2. Benchmarks, economics, and technology
  3. Instruction Level Parallelism
    1. Instruction and machine level parallelism
    2. In-order vs. out-of-order scheduling
    3. VLIW (static scheduling)
    4. Branch prediction and speculation
    5. Predication
    6. Trace scheduling
    7. Limits to instruction-level parllelism
  4. Thred Level Parallelism
    1. Flynn’s taxonomy
    2. Coarse- vs. fine-grained parallelism
    3. Symmetric and simultaneous multithreading
    4. Supercomputing (at a high level)
    5. Organizaiton of multiprocessor machines and programming models (shared vs. distributed memory)
    6. Memory models (consistency and coherence)
    7. Cache coherence protocols
    8. Interconnection networks
  5. Data Level Parallelism
    1. SIMD instruction sets
    2. Vector machines
    3. Massively parallel machines
    4. Manycore processors (e.g. GPUs)
    5. Data-parallel algorithms and programming models protocols, distributed shared memory and interconnection networks.

Design Projects:

The students are given three software design projects that each emphasize hardware design and analysis.

Computer Usage:

The students use a Unix workstation to:

  1. Explore instruction-level parallelism via a microprocessor simulator
  2. Execute a parallel program over a network of Unix workstations
  3. Use a data-parallel processor, such as a programmable GPU, to explore data-level parallelism.


  1. J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kauufmann Publishers.

Engineering Design Statement:

The course emphasizes the organization and design of parallel processors. In a project, homework assignments and exams students are presented with problems that require them to explore various approaches to the organization and design of parallel processors.

Relationship to Outcomes:

Students who have successfully completed this course should have achieved:

Course Outcomes ABET Outcomes
An ability to apply knowledge of mathematics, science, and engineering A
An ability to design and conduct experiments, as well as to analyze and interpret data B
An ability to identify, formulate, and solve engineering problems E
An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice. K


Professional Component:

Engineering Depth

Engineering Science: 2 units
Engineering Design: 2 units

Course overlap:

There is some overlap with ECS 158, Programming on Parallel Architectures. However, the proposed course is complementary, providing a hardware emphasis in contrast to the software emphasis of ECS 158. There is also some overlap with ECS 250C, Parallel Processing, and EEC 270, computer architecture, but both of these classes are graduate courses and more in depth/quantitative.