Multicore Computing

Multicore Computing           ECGR 6090 R01/8090R01          Spring 2009

The incorporation of chip multiprocessing in commercial microprocessors from Intel, AMD, Sun Microsystems and IBM represents a paradigm shift in the computing industry. The new industry buzzword “multicore” captures the plan of doubling the number of standard cores per die with every semiconductor process generation starting with a single processor.

          The course will introduce graduate students to multicore processor architectures, analysis and design  of parallel algorithms, multicore programming, and performance evaluation. Students are expected to complete an individual project implementing a computationally intensive algorithm on a commercial multicore platform. While the course has no prerequisites, familiarity with the C programming language and computer architecture would be helpful.


Professor: Dr. Arun Ravindran, Office: WH 235A aravindr@uncc.edu Office hours: M,T,W,Th 11:00 - 12:00 pm

Textbooks:

Grama, Gupta, Karypis, and Kumar, “Introduction to Parallel Computing”, Second Ed. Addison Wesley, 2003.

Lecture slides, homework, and additional reading material will be posted on Blackboard

Suggested References:

 (1) Mattson, Sanders, and Massingill, “A Pattern Language for Parallel Programming”, Addison Wesley Software Patterns Series, 2004.

 (2) Bryant and O’Hallaron, “Computer Systems: A Programmer’s Perspective”, Prentice Hall by Bryant and O’Hallaron, 2003

 (3) Butenhof, “Programming with POSIX Threads”, Addison Wesley Professional, 1997.

 (4) “Programming the Cell Broadband Engine, Examples and Best Practices”, IBM Redbooks, 2008.

Lecture schedule (subject to change)

1. Course introduction (1 lecture)

2. Multicore platforms (2 lectures)

3. Principles of Parallel Algorithm Design (3 lectures)

4. Analytical Modeling of Parallel Programs (3 lectures)

5. Programming using the Message-Passing Paradigm (3 lectures)

6. Programming Shared Address Space Platforms (3 lectures)

Midterm Exam – March 17th, 2009.

7. Programming the Cell Broadband Engine (1 lecture)

8. Performance Evaluation Tools (2 lectures)

Grading

Midterm (30%), Project (70%).

Project

Projects will be assigned by Feb 1. Given a sequential computing algorithm you are expected to

(a) Develop an optimized sequential code in C/C++ (Deadline: Feb 15)

(b) Design and analyze a parallel implementation for the target multi-core platform predicting its performance and scalability  (Deadline: Mar 1)

(c) Implement the parallel algorithm in C/C++ on the  target multi-core platform using Phtread/OpenMP/MPI/libspe2 libraries (Deadline: Apr 1)

(d) Measure and tune the performance of the parallel code. (Deadline: Apr 20)

Final presentations and paper in IEEE conference format - April 21, 23, 28 (M.S.) and day of final exam (Ph.D.)

Important Dates