Multicore Processors: Architecture & Programming
Prof. Mohamed Zahran   (aka Prof. Z)
mzahran AT cs DOT nyu DOT edu
Wednesdays 7:10-9:00 pm  Location: WWH 101
Office Hours: Weds 4-6pm (and by appointment) WWH 320


Welcome students! ... to the Multicore Processors: Architecture & Programming course, edition Fall 2012.  I will keep updating this page regularly. If you have questions related to that course feel free to email me at mzahran (at) . Here is some basic information:

We have two graders for the course:
Jyotsna Karunganni Narayanan  jkn242 (at)
Tao He  th1133 (at)

Mailing List

Sign up for the Mailman mailing list for the course, if the system hasn't signed you already. 
You can do so by clicking here. Please follow the mailing list etiquette. 


(Numbers in the reading assignments refer to the reading material list)

Lecture                                                      reading                 

Multicore/Manycore Revolution                                Section 1.2 from #1, Section 1 from #2

Parallelism and Concurrency                                     Sections 2.2 and 2.3 in #1 Section 2 from#2, Section 1.2 from #3

The Memory System .. You can't Ignore it!               Chp 1 from #4  and Chp 2 from  #5

Know Your Hardware         

Overview of Parallel Programming                            3.1, 3.2, and 3.3 from #1

Threads ... Pthreads                                                  3.7 from #1 and ( This tutorial  or This tutorial  ) and skim  #6

OpenMP: Control vs Simplicity Tradeoff                   6.3 from #1

Other Concurrency Platforms                                    Sections 3, 4, 5, and 6 from #2

Performance Evaluation                                             #8 and #9 Section 2.1, 2.2, 2.3, 2.4, and 2.5, #10

Heterogeneous Multicore                                           #11

Transactional Memory                                                #12 Sections 1.3, beginning of chp 2 till end of 2.1, and #13

Putting It All Together

Reading Material

Below you will find the reading material we will use in this course.
Next to each lecture, above, you will find the reading assignment. 
It indicates a number, corresponding to the list below, and section(s)
to read from that material. If no section numbers  are indicated, it means you need to read the whole thing.
  1. You must be logged into NYU network: Parallel Programming for Multicore and Cluster Systems
  2. How to survive the multicore software revolution?
  3. Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency   (You must be logged into NYU network)
  4. The Memory System: You Can't Avoid It, You Can't Ignore It, You Can't Fake It   (You must be logged into NYU network)
  5. A Primer on Memory Consistency and Cache Coherence   (You must be logged into NYU network)
  6. The Problem With Threads  
  7. Serialization Sets: A Dynamic Dependence-Based Parallel Execution Model
  8. IPC considered harmful for multiprocessor workloads
  9. Computer Architecture Performance Evaluation Methods (You must be logged into NYU network)
  10. Effective Performance Measurement and Analysis of  Multithreaded Applications
  11. Single-ISA Heterogeneous Multi-Core Architectures for Multithreaded Workload Performance
  12. Transactional Memory (You must be logged into NYU network)
  13. Unlocking Concurrency


lab1: You will need memory configuration and cpu configuration  files to this lab.
If you get errors due to the lack of 32-bit libraries, you can use the following legacy 32-bit machine for compilation.    
(Due Sep 26th)
Comments from our graders about Lab 1 submissions

Lab2: You will need the multicore configuration file and the memory configuration file.
(Due Oct  24th)
Comments from our graders about Lab 2 submissions

Homeworks Assignments

HW1  (Due Sep 19th)  Sol  Comments

HW2 (Due Oct 17th)   Sol  Comments    

HW3 (Due Nov 7th)           Comments


We will be using the multi2sim simulator in many of our labs and projects.
Here is a quick tutorial prepared by our grader. However, I highly encourage you
to go over the manual.

More information about each of the following milestones will be posted as we progress.

Project description report - Due Oct 10th

Literature survey and roadmap - Due Oct 31st

Design and experimental setup - Due  Nov 14th

Presentations - Dec 5th

Final Report - Due Dec 12th


Interesting Links (Geeky Stuff)

If you have an interesting link, please email it to the instructor and it will find its way to this page (with an acknowledgment to you of course!).

The New Era of Inexpensive Supercomputing  (Thanks to Kyle Galloway for the link)

Future Chips (targeting both software and hardware folks interested in parallel programming)

Designing and Building Parallel Programs

Multicore info

The touble with multicore

Computer Architecture

Introduction to parallel computing

The Landscape of Parallel Computing

Designing and Building Parallel Programs

Intel Thread Building Blocks

OpenMP Specifications