Indice

SPM 2017 recovery edition lessons

Sep. 19

2h: Introduction to the course, structure of the lessons, hardware evolution and the urgency of parallel/distributed computing dictated by parallel hw (multicore CPUs, GPUs, clusters).


Assignment: look at top500.org and green500.org and try to figure out evolution of parallel machines through the “statistics” graphs in the lists.

Sep. 26

2h: Examples of parallel execution of different kind of real life tasks:

How the tasks may be executed by a single person and by number of cooperating persons. Different way of executing tasks in parallel. Effect of “slow” persons recruited to execute a task. Figuring out general principles out of this: patterns, mechanisms, overheads, …


Blackboard

Oct. 3

2h: Finding concurrency aspects:

2h: Mechanisms to implement parallel computations on multicores

(apologize I miss the last period of the lesson of the afternoon, due to my mistake)

BlackBoard1BlackBoard2

Assigment: write a program using Cilk and C++ threads “translating” a book in parallel, where:

Oct 10

2h: Time and parallelism related measures

Blackboard

Assignment: write a program using C++ threads counting word occurrences in a text.

Oct 17 (morning)

2h: Access to lab machines. More on mechanisms in C++ for concurrency.

Blackboard

Oct 17 (afternoon)

2h: overheads and counter measures

Blackboard

Assignment: look for overheads in translate book and word count assignments.

Oct 24

2h: more on overheads (NUMA memory, false sharing). Introduction to vectorization (with sample code). Tools for checking sequential/vector code performance.

Blackboard

Assignment (1): single Jacobi iteration (as in the blackboard PDF). Create randomly generated matrix A and vectors B and X and run a single iteration of the Jacobi method verifying that the code is properly vectorized and measuring the increase in speed due to vectorization (optimization of the sequential code in general)

Assignment (2): consider a large matrix (4-8K rows/columns at least) and measure the improvement w.r.t. non optimized sequential computation of a single Jacobi iteration

Nov 7

2h: Introduction to parallel patterns/skeletons

Blackboard

Assignment

14 Nov

2h:

Sample code

Parallel design patterns and algorithmic skeletons

Blackboard

Assignment:

Nov 21

2h

PDF

Assignments

Nov 28

2h

PDF

Assignments

Afternoon lesson

by David Del Rio Astorga: 1h

December 12

Morning: 2h

H1H2

Afternoon: 2h (By Massimo Torquati)

End of lessons