Processors: Architecture & Programming
Prof. Mohamed Zahran
(aka Prof. Z)
mzahran AT cs DOT nyu DOT edu
Wedndays 5:10-7:00 pm
Location: WWH 1302
Office Hours: Tuesdays 2:00-4:00pm (WWH 320)
Welcome students! ... to
the Multicore Processors: Architecture
& Programming course,
edition Spring 2016.
I will keep updating this page regularly. If you have
questions related to that course feel free to email me at mzahran (at) cs.nyu.edu
. Here is some basic information:
- I am sure you have heard
the words multicore and manycore processors a lot. In this course we
will study multicore/manycore processors in details, both the hardware
and software aspects.
- We will learn:
- Why multicore processors
are here to stay?
- Why the future of computing depends on our ability
and competence to build them and deal with them?
- How to use
them to solve many real-life problems?
- What are the challenges?
are we heading?
- ... and many more questions.
- Multicore/manycore processors
present a turning point in computing history, so we better be
good at deadling with it!
- There will be no textbook
for this course. Reading
material, from research papers, will be posted on this webpage, beside
the lecture slides.
- Here is the course syllabus
- Our grader: Hung-Ting Wen gabriel.wen AT nyu DOTedu
Mailing ListSign 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.
Use the Reply command to
contribute to the current thread, but NOT to start
If quoting a previous message, try to trim off
Use a descriptive Subject: field when starting a new topic.
Do not use one message to ask two unrelated questions.
Note about using MPI:
Before doing any MPI programming, do the following once you login onto your CIMS account:
ssh to one of the computational nodes (e.g. crunchy1, crunchy3, crunchy4, crunchy5, and crunchy6 ... No crunchy2!)
Type, the following: module load openmpi-x86_64
Below you will find the reading material we will use in this course.
Next to each lecture, above, you will find the reading
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.
This list will grow as we proceed.
Programming for Multicore and Cluster Systems (You must be logged into NYU network)
- Herb Sutter, The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software, Dr. Dobb's Journal, 30(3), March 2005.
- How to survive the multicore software revolution?
- Chip Multiprocessor Architecture: Techniques to Improve Throughput and Latency (You must be logged into NYU network)
- 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)
- A Primer on Memory Consistency and Cache Coherence (You must be logged into NYU network)
- The Problem With Threads
- Transactional Memory (You must be logged into NYU network)
- The Common Case Transactional Memory Behavior of Multithreaded Programs
- Computer Architecture Performance Evaluation Methods (You must be logged into NYU network)
- Effective Performance Measurement and Analysis of Multithreaded Applications
- Performance-Aware Multicore Programming (You must be logged into NYU network)
Before executing your code, once you login onto your CIMS account ssh to one of the computational nodes
(e.g. crunchy1, crunchy3, crunchy4, crunchy5, and crunchy6 ... No crunchy2!)
- lab1: you till need tsm and tsmoptimal - Due Wed Mar 23rd 11:59pm.
- lab2: - Due Wed Apr 6th 11:59pm
- lab3: - Due Wed Apr 27th 11:59pm
Links (Geeky Stuff)
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
(targeting both software and hardware folks interested in parallel
Building Parallel Programs
trouble with multicore
to parallel computing
Landscape of Parallel Computing
Building Parallel Programs