CISC 879 - Software Support for Multicore Architectures

Professor John Cavazos
Class Time TR, 3:30pm-4:45pm
Room Number Smith Hall 102A
Office Hours TR, 11am-12pm
Held in Smith Hall 326 (SMART Lab)
Course Number CISC 879
For two decades, software developers enjoyed an increase in application performance due to a doubling of transistors in processers about every 2 years, in accordance with Moore's Law. Much of this performance gain resulted from increasing clock speeds. However, due to temperature concerns, this is no longer possible. The industry now agree that the future of architecture designs lies in multicores, i.e., processors with simpler cores running at lower frequencies. As a consequence, all computer systems today, from embedded devices to high-end servers, are being built with multicore processors. Thus software developers can no longer sit idly by ("the La-Z Boy Era") and wait for application performance to improve. In fact, application performance is likely to degrade given future generations of multicores with ever more simple cores.

Although researchers in industry and academia are exploring many different multicore hardware design choices, most agree that software for execution on multicore processors is the major unsolved problem. Unlike earlier generations of hardware evolution, this shift will have a major impact on how software is designed and developed. Developers will have to learn how to properly design their applications to utilize multicore parallelism. Opportunities to address the problem span multiple levels of the software stack. This course will focus on the entire spectrum of the software stack as it applies to multicore architectures, including libraries, tools, programming languages, compilers, runtime systems, operating systems, and hypervisors.

The first part of the course will consist of discussions about current multicore architecutures and parallel programming models. The second part of the course will involve discussing several research papers (chosen by students) pertaining to multicores. Each student will be asked to present one or two papers to the class. The third and last part of the course will consist of presentations by students of programming projects. Students will have a variety of multicore architectures available for their class projects, including Sony PlayStation 3s (containing Cell processors) and Intel Quad-core systems accelerated with GPUs.

 
Lecture (Tenative Outline)   Slides   Scribed notes   Papers / Resources / Notes 
2/12 The Multicore Revolution  Slides (PPT) No Scribe Today. Read this paper or watch the Single-Threaded vs. Multi-Threaded video.
2/14 A General Discussion on Parallelism  Slides (PPT) No Scribe Today. Read Chaps. 1-3 and 5-7 from this paper.
2/19 Laws, Equality, and the Cell  Slides (PPT) Varun NotiBala/Sameer Kulkarni
Notes (PDF)
Read Chaps. 1-3 from this paper and all of this paper.
2/20 Recommended Talk :   Margaret Martonosi (Talk Abstract) Computer Arch. Princeton Prof.
2/21 Nvidia CUDA Programming Basics  Slides (PPT) Pujan Kafle/Scott Grauer-Gray
Notes (PDF)
2/26 Patterns for Parallel Programming I  Slides (PPT) John Tully
Notes (PDF)
Read this paper.
2/26 Recommended Talk : Writing Successful Papers  (Talk Description)
2/28 Patterns for Parallel Programming II  Slides (PPT) Karthik Ravindra
Notes (PDF)
3/4 Open MP Programming  Slides (PDF) Navreet Virk
Notes (PDF)
3/5 Recommended Talk :   Ewing ("Rusty") Lusk (Talk Abstract) Leads MPI standardization.
3/6 How to Read, Critique, Write, and Present a Paper  Slides (PPT) Geoffrey Gerfin
Notes (PDF)
3/11 Cell Programming Details  Slides (PPT) Brice Dobry
Notes (PDF)
3/13 Student Paper Presentations
Patterns for Parallel Programming III 
Brice Dobry (PDF)
Patterns III (PPT)
Dimitrij Krepis
Notes (PDF)
Paper Presented By:
Brice
3/18 Student Paper Presentations
Geoffrey Gerfin(PDF)
John Tully(PDF)
Bryan Samuel Youse
Notes (PDF)
Geoffrey
John
3/20 Student Paper Presentations
Scott Grauer-Gray (PDF)
Sameer Kulkarni (PDF)
Deephan Mohan
Notes (PDF)
Scott
Sameer
3/25 Student Paper Presentations
Bryan Youse (PDF)
Dimitrij Krepis (PDF)
Ying Yu
Notes (PDF)
Bryan
Dimitrij
3/27 Student Paper Presentations
Kishen Maloor (PDF)
Ying Yu (PDF)
Yuanyuan Ding
Notes (PDF)
Kishen
Ying
4/1 - 4/3 Spring Break
4/8 Student Paper Presentations
Pujan Kafle (PDF)
Deephan Mohan (PDF)
Kanik Sem
Notes (PDF)
Pujan
Deephan
4/10 Student Paper Presentations
Xuan Yu (PDF)
Yuanyuan Ding (PDF)
Keyur Malaviya
Notes (PDF)
Xuan
Yuanyuan
4/15 Student Paper Presentations
Chris Adamopoulos (PDF)
Tom St. John
Notes (PDF)
Chris
4/17 Recommended Project Plan
Student Paper Presentations
Project Plan (PDF)
Thomas St. John (PDF)
Navreet Virk (PDF)
Kishen Maloor Thomas
Navreet
4/22 Student Paper Presentations
Samuel Moelius (PDF)
Anil Nair (PDF)
Deepthi Andi
Notes (PDF)
Samuel
Anil
4/24 Student Paper Presentations
Keyur Malaviya (PDF)
Varun NotiBala (PDF)
Chris Adamopoulos Keyur
Varun
4/29 Student Paper Presentations
Kanik Sem (PDF)
Karthik Ravindra (PDF)
Xuan Yu
Notes (PDF)
Kanik
Karthik
5/1 Student Paper Presentations
Deepthi Andi (PDF)
Anil Nair
Notes (PDF)
Deepthi
5/6 Student Paper Presentations
Andew Russo()
Kishen Maloor Andrew
5/6 Cyclops 64 Presentation
Lecture: The Chapel Language
Cyclops 64 Hardware(PDF)
Cyclops 64 Software(PDF)
Chapel Slides (PDF)
Pujan Kafle
Notes (PDF)
Read this paper.
5/13 Project Reports
Scott G., Deepthi A.,Varun N.,Sameer K.
Xuan Y.,Yuanyuan D.
Andrew Russo
5/15 Project Reports
Tom St J.,Ying Y., Geoff G.,John T.
Bryan Y.,Karthik R., Chris A.,Dimitrij K.
5/20 Project Reports
Brice D.,Andrew R., Kanik S.,Keyur M.
Kisen M.,Navreet V.,Anil N.
Deephan M./Pujan K.

 

Projects

Most of your grade will come from two projects which will total 60% of your grade. Both projects are mandatory. Each student is encouraged to form or find a group. We are aiming for groups of 2 to 4 developers. Plan on checkpointing your project with the instructor (showing your progress) at various stages during your project. You must checkpoint at least once for the first project and at least twice for the second part of the project. These checkpoints will be part of your grade. You are not required to stay with the same group for both projects. Check the syllabus for more details.

Complete project descriptions are now available.

Class Resources:

Papers To Choose From For Student Presentations
Template for Talks
Signup Dates for Talks and Scribes (Updated)
Template for Reviews

Project 1

Handout (New Due Date: 3/18)
README for PS3 Programmers
Templates to use for Project Report

Project 2

Handout (Due Date: 5/21)

General

Class Syllabus
Scribe notes template (LaTeX)

Multicore/Parallel

OpenMP Specification
LLNL pthreads tutorial
An Introduction to Programming with Threads
Thinking Parallel Blog

Cell Specific

Cell Full-Day Workshop (Slides and Video)
IBM Journal Issue on Cell
Cell Developer's Corner
Cell Articles and Useful Links
Cell Workshop 2006 2007
CorePy: Python package for Cell
Supercomputer at LANL using Cell

GPU Specific

General-Purpose Computation Using Graphics Hardware
AMD/ATI Stream Computing Resources
NVIDIA Developer Zone
BrookGPU
GPU Talks at AstroGPU Workshop

This course material is Copyright (C) 2008 by John Cavazos and may not be used without prior written permission.