CSCI-UA.0480-003
                        Parallel Computing                       
Prof. Mohamed Zahran   (aka Prof. Z)
mzahran AT cs DOT nyu DOT edu
M/W 2:00-3:15 pm  Location: WWH 109
Office Hours: Tuesdays 2-4pm (WWH 320)

It is all about parallelism!! 


Announcements

Welcome students! ... to the Parallel Computing course, edition Spring 2018.  I will keep updating this page regularly. If you have questions related to that course feel free to email me. 

Most of us have learned to program a single microprocessor (single core) using a high-level programming language like C/C++, Java, ... This is called sequential programming. We feel very comfortable with this because we think in sequential way and give the machine statements to be executed in sequence. However, this has to change. A microprocessor with single core no longer exists in almost all computers we are using today (including your tablets and smartphones). Most of our devices are now multicore processors. A multicore processor contains several core (called CPUs or cores) on-chip. To make the best use of these multicore chips we need to program them in-parallel. Sequential programming, for all platforms from smartphones to supercomputers, is falling out of fashion and taking back-seat to parallel programming.

How to think in parallel? How to write code in parallel to make the best use of the underlying hardware? How is that new hardware different from the traditional one? What will the future be for the software and hardware? This is the topic of this course.

Here is some basic information about this course:

Midterm exam:  March 7th (same place/time as the lecture)
Final exam:  May 14th - WWH 109 - 2-3:50pm

Getting in Touch:

By order of preference

Lecture Notes and Schedule 

Lecture date Topic Reading Comments
1 1/22 Why Parallel Computing?
  • 1.1-1.4
2 1/24 Parallel Hardware: Basics
  • 2.1-2.2
3 1/29 Parallel Hardware: Advanced
  • 2.3
4 1/31 Parallel Software: Basics
  • 2.4, 2.7
  • hw1 assigned
5 2/5 Parallel Software: Advanced
6 2/7 Performance Analysis
  • 2.6
  • hw2 assigned
7
2/12 MPI - I
  • 3.1
8 2/14 MPI - II
  • 3.2-3.3
  • 3.4.1-3.4.5
2/19 President's day - No class
9 2/21
10 2/26
11 2/28
Revision 3/5 Revision
Exam 3/7 Midterm Exam

3/12  No class: Spring Recess

3/14 No class Spring Recess
12
3/19
13 3/21
14 3/26
15 3/28
16 4/2
17 4/4
18 4/9
19 4/11
20 4/16
21 4/18
22 4/23
23 4/25
24 4/30
25 5/2
Revision 5/7 Revision




Labs




Homework Assignments 

Note: All homework assignments are equally weighted. Each assignment is due at 11:55pm of the due date through NYU classes.
You are allowed up to 3 days of late submission with (-1).

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.

General
Top500 Supercomputers in the world

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

Designing and Building Parallel Programs

The trouble with multicore

Introduction to parallel computing

The Landscape of Parallel Computing

MPI
MPI with Python
MPI tutorial
More advanced MPI tutorial

OpenMP
EPCC benchmarks for OpenMP