UPCRC Illinois Summer School on Multicore Programming - June 2009
June 22-26, 2009
Siebel Center for Computer Science
University of Illinois at Urbana-Champaign
Program
NOTE: The information below is subject to change. A final program and agenda will be published at a later date.
Scheduled topics currently include:
- Introduction to Parallelism and Multicore Technology — Marc Snir, UPCRC Illinois Co-Director
- Introduction to multicore architectures: general trends, current and future products.
- Parallelism vs. concurrency (performance/function)
- Support for parallelism in the software stack: hardware, OS, runtime, compiler.
- Brief survey of algorithmic patterns: pipeline, divide & conquer
- Brief survey of implementation patterns
- Explicit Mutlithreading — Marc Snir, UPCRC Illinois Co-Director
- Pthreads and C
- Shared memory communication and synchronization
- Pitfalls: synchronization and data races
- Parallelism with Java — Danny Dig, UPCRC Illinois
- Threads, synchronization, and concurrent classes in Java
- Thread-safety
- atomicity (with locks, with Atomic classes)
- visibility (synchronization, volatile)
- building blocks: Concurrent Collections
- Sharing objects safely
- Multi-threaded programming
- directly controlling thread management
- decoupling thread creation from management with the Executors framework
- building blocks: synchronizers (e..g, Latch, Barriers, Futures)
- Code Refactoring — Danny Dig, UPCRC Illinois
- The parallelizing process
- Introducing concurrency via concurrent libraries (e.g, AtomicInteger, ConcurrentHashMap)
- Refactorings for reducing lock contention
- Refactorings for introducing lightweight tasks
- Refactoring tools
- Shared Memory Control Parallelism with OpenMP — Clay Breshears, Intel
- Basic patterns of shared memory control parallelism: parallel loops, divide & conquer, barriers, atomic sections
- Support for control parallelism via language &mdash OpenMP
- Shared Memory Control Parallelism with TBB — Clay Breshears, Intel
- Support for control parallelism via libraries and frameworks — TBB
- Additional patterns: workpile, pipeline
- Code Debugging and Tuning — Clay Breshears, Intel
- Use of performance and debugging tools with OpenMP and TBB
- Data Parallelism — David Padua, UPCRC Illinois
- Basic patterns of data parallel programs: parallel aggregates, apply, reduction, scan
- Support for data parallelism via libraries and frameworks — C++ and Java
- Support for data parallelism through language — Ct
- Implicit Parallelism — David Padua, UPCRC Illinois
- Compiler parallelization
- Directives
- Coding to help parallelization
- Discussion of capabilities of parallelizing compilers and impediments to parallelization
- GPU Programming — Wen-mei Hwu, UPCRC Illinois Co-Director
- Cuda
- A Taxonomy of Parallel Programming Models — Marc Snir, UPCRC Illinois Co-Director
- Review and compare the programming models studied so far
- Mechanisms for implementing a parallel programming model: language constructs, directives, libraries, frameworks, etc.
- Desired features in parallel programming models; discussion how features of applications and of parallel architectures influence our choice of a model.
- Emerging Parallel Languages and Frameworks — Marc Snir, UPCRC Illinois Co-Director and Danny Dig, UPCRC Illinois
- Plink
- Parallel containers in Java and C#
- Special Lectures
- Intel's Multi-Core Architecture, Roadmap, and Software Products - Bob Kuhn, Intel
- Parallel Programming in Visual Studio 2010 - Daniel Moth, Microsoft
- Programming Language Research at UPCRC Illinois - Marc Snir, UPCRC Illinois Co-Director
Labs
Labs will provide hands-on experience with the various languages and tools covered in the lectures. The same few examples will be coded in different languages and tuned, to demonstrate the pros and cons of the various approaches. Each afternoon lab session will consist of a brief introduction to the programming assignments, followed by independent work periods. Teaching assistants will be available in person and on the web to help with assignments. We also intend to provide open labs in the evenings.
Your Lab Education Coordinators include:
- LEADS: Ralph Johnson and Maria Garzaran, UPCRC Illinois Faculty
- Danny Dig, UPCRC Illinois Post-Doctoral Researcher
- David Raila, UPCRC Illinois Research Programmer
- James Brodman, UPCRC Illinois Graduate Research Assistant
- Nick Chen, UPCRC Illinois Graduate Research Assistant
- Rakesh Komuravelli, UPCRC Illinois Graduate Research Assistant
- Binh Le, UPCRC Illinois Graduate Research Assistant
- Chao Mei, UPCRC Illinois Graduate Research Assistant
- I-Jui (Ray) Sung, UPCRC Illinois Graduate Research Assistant
Schedule
A more detailed agenda will be posted on the My Summer School Account at a later date. The following is provided to help with planning travel arrangements.
All times listed below are in US CENTRAL TIME. Lunch will be provided Tuesday thru Friday for on-site attendees. Casual dress.
| Monday, June 22 | Activity |
|---|---|
| 4:00 PM | Check-in/Registration |
| 5:00 PM | Reception - Wine/Appetizers |
| 6:00 PM | Opening Lecture |
| 7:30 PM | Dismiss |
| Tuesday, June 23 and Wednesday, June 24 |
9AM to 6PM - Lab begins around 2PM. Day ends with Special Lecture at 5PM. Open labs in the evenings. |
| Thursday, June 25 |
9AM to 6PM - Lab begins around 1PM. Day ends with Special Lecture at 5PM. Open labs in the evenings. |
| Friday, June 26 | Dismiss for lunch around 11:30 AM Lab open until (time tbd - 3 or 5PM?) |
We may also plan evening social events for Tuesday, Wednesday, and Thursday.