CPSC 689-608 Spring 2008
Selected topics in an identified area of computer science. May be repeated for credit.
Prerequisites: Approval of instructor.
Specific Course Description for this Term
Central processing units (CPUs) have undergone a revolutionary change recently. CPU vendors ran into technical hurdles (e.g., excessive heat, too high electrical power requirements, and not well understood physics) at increasing the clock speeds that have forced them to switch to putting a number of cores onto CPUs instead of a single core.
The move to a multicore architecture requires a complete change in software development in order to utilize the new CPUs effectively. No longer can programmers just see their programs run faster as clock frequencies increase. Instead coarse grained parallelism becomes of key importance to all new software development, including on single CPU systems.
The goal of the course is to study multicore CPU architectures, implications of hardware designs, software challenges, and emerging technologies relevant to software development for multicore systems. Topics include multicore microprocessors, memory hierarchy, programming models, scheduling, debugging, and memory use. How this relates to software development is the binding issue.
This course will focus on reading, analyzing, and discussing research papers related to multicore systems and developing software for this environment.
Grading
Percentage For what 10 Class participation 10 Paper evaluations 40 Class presentations 10 Presentation evaluations 30 Project
