magistraleinformaticanetworking:spd:lezioni13.14
Questa è una vecchia versione del documento!
Journal of Lessons, SPD year 2013-2014
Journal
- 24/02/2014 Course introuction. Message Passing Interface - Evolution of the MPI standard, linked library approach, integration with other software layers: MPI as a support for parallel applications, parallel libraries and parallel languages.
- 27/02/2014 MPI - Basic concepts: communicators, point-to-point and collective communications, data types.
- 04/03/2014 MPI - Communication semantics and buffers; primitive datatypes, data conversion and packing; derived datatypes, typemaps and type signatures, constructors: contiguous, vector, Hvector, Indexed, Hindexed; MPI_Type_Commit and MPI_Type_Free.
- 05/03/2014 MPI - Point to point communication modes for the send (standard, buffered, synchronous, ready); blocking and non-blocking behaviour (incomplete send and recv); request objects; waiting and testing.
- 11/03/2014 Lab Time - MPI - basic communications, datatypes, asynchronous communications with defined buffering degree via non-blocking primitives.
- 18/03/2014 MPI - communicators and groups, motivation and use as programming / implementation abstraction; basic groups, extracting information, construction of groups; communicator operations : duplication, creation (MPI1 and MPI2 semantics), free, splitting.
- 19/03/2014 MPI - Collective communications : definition, semantics and relationship with communicators; implicit serialization and potential deadlocks; classes of primitives (synhronization, one-to-all, all-to-one, all-to-all, computing collectives). In-place communications. Variable versions of common collectives.
- 25/03/2014 Thread Building Blocks - purpose, runtime, supported abstractions; tasks vs threads; parallel_for, ranges and partitioners; task scheduling and grain size; quick survey of use of lambda expression, containers and mutexes.
- 26/03/2014 MPI - reduce, scan and custom operators. Struct derived datatypes, extent and size related primitives.
midterm test break
- 08/04/2014 Short introduction to Knowledge Discovery in Databases and Data Mining. Parallelism exploitation in data mining algorithms.
- 09/04/2014 Lab time - MPI - K-means: sequential K-means and its parallelization.
- 15/04/2014 Lab time - MPI - K-means. (reference to Montecarlo method, use of parallel pseudorandom number generators)
- 16/04/2014 Lab time - MPI - K-means.
Easter break
29/04/2014(Didactic activity stopped due to elections of representatives of students)- 30/04/2014 Introduction to GPU computing and OpenCL - Evolution of modern GPU subsystems: 2D/3D graphics and the basic graphic pipeline; implementation in Hardware/firmware; parallelization and load balancing among GPU stages, unification of the stage model and transition to firmware and software pipelines; first programmable GPUs and GPGPU via exploitation of graphics primitives. Modern GPU computational model and its hardware optimizations: absence of R/W conflicts, memory bus optimization for bandwidth over latency, large block of cores with high ALU density, common instruction logic and hardware threading support. SIMD-like programming model, non deterministic thread scheduling of threads to cores. Proprietary programming environments vs OpenCL.
- 06/05/2014 Introduction to OpenCL -
- 07/05/2014 lesson canceled (illness)
- 09/05/2014 lesson canceled (illness) (Teaching Room B, 14-18)
- 13/05/2014 Project and final examination replanning For the current year the final examination will be based on the project alone. A project topic can still be proposed by the student, otherwise a standard project will be assigned by default. Please see the main page for this year's course for further detail.
- 14/05/2014 OpenCL - Memory Model, Execution, built-in kernels; virtual memory and logic address translation in OpenCL; types of memory sharing and related consistency models (coarse / fine sharing and system sharing); nested parallelism via child kernel activation; generic address space in OpenCL 2 and cast rules; built in functions; C11 atomics in local and global memory (memory orders, scope, supported types); 2D and 3D images; pipes
- 16/05/2014 (Teaching Room B, 14-16, and Lab. M, 16-18) TBB - Reduce pattern, functional and object oriented forms; reduce deterministic variant; pipeline pattern: pipeline and filter classes; strongly typed parallel_pipeline form; parallel_do.
- 20/05/2014 TBB - extending containers to container ranges; generic TBB containers: various concurrent map and set templates, and differences from STL equivalents (hash map, unordered map and multimap, concurrent set, bounded queue and concurrent priority queue, concurrent vector); thread local storage.
- 21/05/2014 TBB / TBB lab : TBB/C++11 atomics, TBB mutexes; K-means with TBB.
- 27/05/2014 Lab Time – OpenCL – implementation of the K-means core algorithm in OpenCL.
Slides, Notes and References to papers
Date | Slides | Notes | Other information |
---|---|---|---|
24–27/02/14 | Course intro MPI slides part 1 | ||
04/03/14 | MPI slides part 2 | ||
05/03/14 11/03/14 | MPI slides part 3 | ||
18–19/03/14 | MPI slides part 4 MPI slides part 5 | ||
25/03/14 | Slides on TBB, part 2 | ||
26/03/14 | |||
08/04/14 | no slides | parallel data mining notes | |
08–09/04/14 | TBA | K-means sequential code | See the Dhillon/Modha paper on the main page. |
15/04/14 16/04/14 | TBA | For a quick introduction to Montecarlo methods in the parallel see chapter 3 of the Wilkinson-Allen (sect. 3.2.3 in 2nd edition). | |
30/04/14 06/05/14 14/05/14 | GPGPU introduction Overview of OpenCL 1.2 from Khronos Group (2010) used during the lessons Overview of OpenCL 2.0 from Khronos Groups (2013) | Slides on OpenCL from NVidia (2009) Overviews about related technologies can be found in the Khronos presentation library https://www.khronos.org/developers/library/) more details about the different OpenCL specifications (specs, reference cards, online manuals) in the Khronos OpenCL main page https://www.khronos.org/opencl/ |
|
16/05/14 | Slides on TBB, part 3 | ||
20/05/14 | Slides on TBB, part 4 | ||
21/05/14 | Slides on TBB, part 5 | Example code for k-means from the McCool-Robinson-Reinders textbook | |
27/05/14 | a simple tutorial about installing OpenCL on Linux |
magistraleinformaticanetworking/spd/lezioni13.14.1406835836.txt.gz · Ultima modifica: 31/07/2014 alle 19:43 (10 anni fa) da Massimo Coppola