magistraleinformaticanetworking:spd:lezioni17.18
Journal of Lessons, SPD year 2017-2018
Journal
- 19/02/2018 Course introduction Parallel programming frameworks and high-level approach to parallel programming over different platforms: MPI, TBB and OpenCL as main examples; course organization and prerequisites; reference books and studying material.
MPI (Message Passing Interface) standard : brief history and aim of the standard, single program / multiple data execution model, compilation and linkage model; issues in supporting multiple programming languages and uses (application, utility library and programming language support) with a static compilation and linkage approach. Portability in parallel programming: functional and non-functional aspects, performance tuning and performance debugging. - 23/02/2018 MPI basic concepts MPI as a parallel framework that supports a structured approach to parallel programming. Basic concepts of MPI: communicators (definition, purpose, difference between inter and intra-communicators, process ranks); point to point communication (concepts of envelope, local/global completion, blocking/non-blocking primitive, send modes); collective communications (definition, communication scope, global serialization, freedom of implementation in the standard); MPI datatypes (basic meaning and use, primitive / derived datatypes, relationship with sequential language types).
- 26/02/2018 MPI MPI library initialization and basic MPI usage; point to point communication semantics (buffer behaviour, receive, wildcards, status objects, MPI_PROC_NULL), basic and derived MPI datatypes (purpose as explicitly defined meta-data provided to the MPI implementation, multiple language bindings, code-instantiated metadata, examples). MPI datatypes (semantics, typemap and type signature, matching rules for communication, role in MPI-performed packing and unpacking); core primitives for datatype creation ( MPI_Type_* : contiguous, vector, hvector, indexed, hindexed, struct; commit, free) and examples.
- 02/03/2018 MPI Lab session – Basic program structure. Simple ping-pong program; adapting to available parallelism, extending to multi-process interaction; cut&paste and if-based programming pitfalls in MPI. Assigned homework: using point-to-point with simple primitive datatypes, performing and checking some computation; using derived datatpyes.
- 09/03/2018 MPI point to point communication modes (MPI_BSEND, MPI_SSEND; MPI_RSend usage); non-blocking communication (Wait and Test group of primitives, semantics, MPI_Request object handles to active requests); canceling and testing cancellation of non-blocking primitives (issues and pitfalls, interaction with MPI implementation, e.g. MPI_finalize); communicators and groups (communicator design aim and programming abstraction, local and global information, attributes and virtual topologies, groups as local objects, primitives for locally creating and managing groups); intracommunicators (basic primitives concerning size, rank, comparison); communicator creation as a collective operation, MPI_Comm_create basic and general case.
12/03/2018Rescheduled to 18/04- 16/03/2018 MPI
- 19/03/2018 MPI – MPI Lab
- 23/03/2018 TBB
- 26/03/2018 TBB
- 13/04/2018 TBB
- 16/04/2018 TBB TBBLab
- 18/04/2018 TBB Lab
- 20/04/2018
- 23/04/2018
27/04/2018Rescheduled to 9/0530/04/2018Rescheduled to 16/05- 04/05/2018 GPU intro OpenCL
- 07/05/2018 OpenCL
- 09/05/2018 (Rooom L1) OpenCL
- 11/05/2018 TBB LAB time
- 14/05/2018
- 16/05/2018 (Rooom L1)
18/05/2018Rescheduled to 23/05- 21/05/2018
- 23/05/2018 (Room L1) OpenCL LAb Time
- 25/05/2018 OpenCL LAb Time
- 28/05/2018
Slides, Notes and References to papers
Date | Slides | Notes | References / Info |
---|---|---|---|
19/02 | Course introduction | ||
19/02, 23/02 | MPI lesson 1 | ||
MPI lesson 2 | |||
02/03 | MPI Lab exercises | Slides from last year | |
09/03 | MPI lesson 3 | ||
09/03, 16/03 | MPI lesson 4 | ||
16/03 | MPI lesson 5 | ||
23/03, 26/03 | TBB lesson 1 TBB lesson 2 | ||
26/03, 13/04 | TBB lesson 3 | ||
13/04, 16/04 | TBB lesson 4 (alpha) | ||
16/04, 18/04 | TBB Lab | scheletro mandelbrot.cc | |
20/04 | Introductory notes about Data Mining Dhillon and Modha Tech.R. on K-means Sequential reference code for K-means | ||
23/04 | TBB lesson 5 | ||
04/05, 07/05, 09/05 | Intro to GPU based computing Intro to OpenCL - A Survey of Open CL - E - version 1 | ||
11/05 | TBB Lab version 2 | ||
23/05, 25/05 | OpenCL Lab | Non tutti gli esercizi sono rilevanti | Sample OpenCL 1.2 code fron NVIDIA, expected to work on the TESLA K20 GIT URL to HandsOnOpenCL Exercises |
28/05 | Xeon + FPGA Final slides |
magistraleinformaticanetworking/spd/lezioni17.18.txt · Ultima modifica: 28/05/2018 alle 14:23 (7 anni fa) da Massimo Coppola