Adv Multicore Computing Draft Syllabus


CS 6/79995 St:Adv Multicore Computing

Fall 2009

Course: CS 6/79995-001 Fall 2009
Call Number: 20402/20403 
Time: 5:30-6:45pm Tu Th Location: 121 MSB
Paul A. Farrell Office : 258
Phone : 672-9060 Mail address : farrell AT cs.kent.edu
Office Hours : TBA and by appointment  

Description: Instead of driving clock speeds and straight-line instruction throughput ever higher, the major processor manufacturers and architectures, from Intel and AMD to Sparc and PowerPC, have turned to multicore architectures. In desktop and laptop computers dual-core processors are now the norm, in servers multi-socket and up to quad-core processors are appearing, and future processors are likely to involve many more cores. In order to realize the potential of these architecture, as well as emerging paradigms represented by heterogeneous multi-core systems such as graphics processors and the IBM Cell processor contained in the Sony PS3 and the latest supercomputers being deployed by DOE laboratories. These new processors necessitate a new approch to programming using multiple threads on homogeneous and heterogeneous processors.

This course will be a mix of a lecture and seminar style course, where students will be expected to read papers and present them, and/or undertake projects and present the results, and participate in discussions on the presentations of other students.

Prerequisites:

CS 33211 Operating Systems, and, CS 33001 Computer Science II

Related Courses:

Systems Programming and Graduate courses in Parallel Computing and Algorithms

Optional Texts:

  • Multi-Core Programming - increasing performance through software multi-threading by Shameem Akhter and Jason Roberts, ISBN 0-9764832-4-6, Intel Press
  • OpenMP 3.0 Specification
  • Selected papers and online documents
  • Pthreads Programming: A POSIX Standard for Better Multiprocessing by Radford Nichols, Dick Buttlar, Jacqueline Proulx Farrell and Jackie Farrell(1996)
  • Parallel Programming in OpenMP by Rohit Chandra, et al. (2000)
  • Multithreaded Programming with pThreads by Bil Lewis and Daniel J. Berg (1997)
  • Parallel Programming with MPI  by Peter Pacheco, Morgan Kaufmann, 1998.
  • Programming with POSIX(R) Threads by David R. Butenhof (1997)
  • Using OpenMP: Portable Shared Memory Parallel Programming by Barbara Chapman, Gabriele Jost, Ruud van der Pas (2007)
  • Linux Threads Programming: Linux Concurrency And Performance by Ulrich Drepper

Course Outline:

Topics to be covered include:

  • Overview of Modern Multi-Core Architectures - Intel, AMD, IBM/Sony
  • Fundamental Concepts of Parallel and Thread Programming
  • Designing Threaded Programs in Pthreads
  • OpenMP: A Portable Solution for Threading
  • MPI: using mixed shared memory and distributed resources and the performance attainable
  • Solutions to Common Parallel Programming Problems - Locks, Non-Blocking, Thread-Safeness, Cache related issues
  • Multi-threaded Debugging Techniques
  • Heterogeneous Options: - CPU/GPU programming. GPGPU programming, Cell Processors SDK
  • Selected Readings on Virtualization in Multicore Environments
  • Selected Readings on Application Performance in Multicore Environments
Notes:
  • Assignments will be a mix of programming, performance evaluation, written questions, and a project.
  • Some of the assigments will consist in programming in C or C++ and specialized libraries or languages
  • There will be a penalty for late assignments which may amount to up to 10% per day.
  • Assignments are to be completed by the student without assistance from or collaboration with other persons, unless otherwise specifiied.
  • The final examination is nominally scheduled for 5:45 - 8:00 p.m. on Tuesday December 15
Additional Requirements:
Students with Disabilities:

In accordance with University policy, if you have a documented disability and require accommondations to obtain equal access in this course, please contact the instructor at the beginning of the semester or when given an assignment for which an accommodation is required. Students with disabilities must verify their eligibility through the Office of Student Disabilty Services (SDS) in the Michael Schwartz Student Services Center.

University Policy on Registration, Drop, Access and Plagiarism