ECS 158 PROGRAMMING ON PARALLEL ARCHITECTURES
(4) III
Lecture: 3 hours
Prerequisites: Course ECS
150; ECS 154B recommended
Grading: Letter; two midterms (20% each), final exam
(40%) and programming work (20%)
Catalog Description:
Techniques for software development using the shared-memory and
message-passing paradigms, on parallel architectures and networks of workstations.
Locks, barriers and other techniques for synchronization. Introduction
to parallel algorithms.
Expanded Course Description:
- Programming Paradigms
- Shared-memory
- Message-passing
- Bulletin-board (tuple space)
- Distributed shared memory (DSM)
- Software packages: MPI, PVM, Linda, p4, Adsmith, pthreads
- Overview of Parallel Architectures
- Shared-memory and message-passing hardware
- Interconnect structures, e.g. bus, crossbar,Omega-net, mesh
- Cache coherency
- Interprocess Synchronization
- Review of operating systems material: Processes, timesharing, OS-based
interprocess synchronization
- Synchronization hardware, e.g. test-and-set and fetch-and-add instructions
- Locks, barriers
-
Latency Problems
- Memory/network delays
- Latency hiding, e.g. using nonblocking messages
Collective Communication
- Broadcast, scatter/gather, all-scatter/all-gather
Overview of Parallel Applications
- Sorting, database
- Graph algorithms
- Scientific computing
Textbook:
Instructor's class notes.
Computer Usage:
Extensive programming assignments on our CSIF networked machines.
The shared-memory work is done using Adsmith and the MulSim simulator,
and the message-passing component using MPI.
Engineering Design Statement:
Students in the course write sophisticated, systems-level programs
according to their own design. Many of the programs involve analysis of
tradeoffs between efficient use of the hardware and ease of programming.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
Goals:
Student will:
- learn techniques of software development using the shared-memory and
message-passing paradigms on parallel architectures and networks of workstations
- be introduced to parallel algorithms
-
Student Outcomes:
- An ability to apply knowledge of mathematics, science, and engineering
- An ability to design and conduct experiments, as well as to analyze and interpret data
- An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
- A knowledge of contemporary issues
Instructors: M.
Farrens, N. Matloff , R.
Pandey, K. Ma
Prepared By: N. Matloff (November 2003)
Overlap Statement:
Comparison of this course with other existing courses does not indicate
any significant overlap.
Back to Course Descriptions