Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spd:lezioni18.19

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
magistraleinformaticanetworking:spd:lezioni18.19 [28/05/2019 alle 08:17 (5 anni fa)]
Massimo Coppola
magistraleinformaticanetworking:spd:lezioni18.19 [26/07/2019 alle 16:26 (5 anni fa)] (versione attuale)
Massimo Coppola [Slides, Notes and References to papers]
Linea 17: Linea 17:
   * 15/04/2019 **TBB** TBB introduction. Develompment history and current status: abstraction and implementation layers. Task-based description vs thread-based one, scalability and automatic management of hierarchical parallelism. Basic abstractions and algorithms.    * 15/04/2019 **TBB** TBB introduction. Develompment history and current status: abstraction and implementation layers. Task-based description vs thread-based one, scalability and automatic management of hierarchical parallelism. Basic abstractions and algorithms. 
   * 29/04/2019 **TBB** Parallel_for : ranges, partitioners, grain size for parallelism exploitation. C++ lambda expressions.   * 29/04/2019 **TBB** Parallel_for : ranges, partitioners, grain size for parallelism exploitation. C++ lambda expressions.
-  * 02/05/2019 **MPI LAB**  +  * 02/05/2019 **MPI LAB** Correction and discussion of previously assigned MPI exercises.  
-  * 06/05/2019 **TBB LAB** Basics of parallel for. Parallel computation and returning computation results. +  * 06/05/2019 **TBB LAB** Basic examples of TBB parallel for. Performing parallel computations on ranges and returning computation results. 
-  * 09/05/2019 (3h 14:30 -- 17:30) **TBB** TBB parallel containers: variants of maps, queues and vectors with higher concurrent performance and modified semantics with respect to STL. **TBB LAB**+  * 09/05/2019 (3h 14:30 -- 17:30) **TBB** TBB parallel containers: variants of maps, queues and vectors with higher concurrent performance and modified semantics with respect to STL. **TBB LAB** Mandelbrot set computation with a parallel for.
   * <del>13/05/2019</del> Rescheduled   * <del>13/05/2019</del> Rescheduled
-  * 16/05/2019 (3h 14:30 -- 17:30) **TBB** TBB mutexes variants and usage. Explicitly setting the thread-parallelism level (Task Scheduler, Task Arena). **TBB LAB** Experiments with Mandelbrot parallel for with varying thread count and computation load. +  * 16/05/2019 (3h 14:30 -- 17:30) **TBB** TBB mutexes variants and their usage. Explicitly setting the thread-parallelism level (Task Scheduler, Task Arena). **TBB LAB** Experiments with Mandelbrot parallel for with varying thread count and computation load. 
-  * 20/05/2019 **OpenCL** OpenCl intro. +  * 20/05/2019 **OpenCL** OpenCL intro. Design concepts and programming abstractions: Devices/host interaction, context, kernel, command queues; execution model; memory spaces and memory consistency in OpenCL
-  * 23/05/2019 (3h 14:00 -- 17:00) **OpenCL** Basic concepts of OpenCL 1 applied : simple array operations, matrix multiplication and related workgroup optimizations, simple parallel reduction and thread cooperation.+  * 23/05/2019 (3h 14:00 -- 17:00) **OpenCL** OpenCL C/C++ subset for kernels; kernel compilation, program objects, memory objects and kernel arguments, code execution, kernel instances and workgroups, workgroup synchronization; portability and chances for load balancing: mapping OpenCL code onto both the GPU and the CPU; examples of vector types and vector operations. Basic concepts of OpenCL 1 applied to program contruction: simple array operations, matrix multiplication and related workgroup optimizations, simple parallel reduction and thread cooperation.
   * <del>27/05/2019</del> rescheduled due to EU election break.   * <del>27/05/2019</del> rescheduled due to EU election break.
-  * 28/05/2019 **OpenCL** +  * 28/05/2019 **OpenCL** OpenCL 1.2 and beyond. OpenCL event generation and handling (event barriers) for inter-queue, non local synchronization. OpenCL 2.0 and 2.1 features: shared virtual memory (GPU/CPU memory space overlaying); nested kernels and recursive parallelism without host/device interaction; generic address space as a tool to avoid source code duplication; C11 atomics in OpenCL 2.0; pipes. OpenCL 2.1: moving towards the use of a proper subset of C++14 for kernels (e.g. templates, overloading, lambda f.), allowing single-source joint OpenCL and non-OpenCL programming (SYCL) and providing a more homogeneous and organized semantics. The SPIR-V interoperable, symbolic GPU machine code representation and its use in the LLVM based development toolset.  
-  * 30/05/2019 (3h 14:00 -- 17:00) **OpenCL LAB**+  * 30/05/2019 (3h 14:00 -- 17:00) **OpenCL LAB** Exercises from the GIT examples: exercises 4 and 5 (vector addition), 6 (matrix multiplication), 7 and 8 (exploiting private memory).
  
 ====Slides, Notes and References to papers==== ====Slides, Notes and References to papers====
Linea 40: Linea 40:
 | 21/03  | {{ :magistraleinformaticanetworking:spd:2019:mpi-lesson6.pdf |MPI Lesson 6}} |     | | 21/03  | {{ :magistraleinformaticanetworking:spd:2019:mpi-lesson6.pdf |MPI Lesson 6}} |     |
 | 25/03, 28/03  |  | {{ :magistraleinformaticanetworking:spd:spd13-14-paralleldatamining_notes_ch2_3.pdf | Introductory notes about Data Mining}} {{ :magistraleinformaticanetworking:spd:spd11-12-dhillon-modha-corretto_parkmeans.ps |Dhillon and Modha Tech.R. on K-means}} {{ :magistraleinformaticanetworking:spd:2016:k-means3.tgz |Sequential reference code for K-means}}  |   | | 25/03, 28/03  |  | {{ :magistraleinformaticanetworking:spd:spd13-14-paralleldatamining_notes_ch2_3.pdf | Introductory notes about Data Mining}} {{ :magistraleinformaticanetworking:spd:spd11-12-dhillon-modha-corretto_parkmeans.ps |Dhillon and Modha Tech.R. on K-means}} {{ :magistraleinformaticanetworking:spd:2016:k-means3.tgz |Sequential reference code for K-means}}  |   |
-| TBB - 04-05/2019        {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson1.pdf |}}  {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson2.pdf |}} {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson3.pdf |}} {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson4.pdf |}}  +| TBB - 04-05/2019       | {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson1.pdf |}}  {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson2.pdf |}} {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson3.pdf |}} {{ :magistraleinformaticanetworking:spd:2019:tbb-lesson4.pdf |}}  | These presentations cover the TBB lessons scattered over April and May. TBB exercises have been added to the exercise collection {{ :magistraleinformaticanetworking:spd:2019:exercise-collected.pdf |Collection of exercises}} |  | 
-| OpenCL 20/05, 23/05| {{ :magistraleinformaticanetworking:spd:2015:opencl-intro-tim-mattson.pdf |Open CL 1.0 intro and tutorial}} |  | [[https://www.khronos.org/sycl/ | about SYCL on Khronos portal]] [[https://www.khronos.org/registry/SYCL/| See SYCL specification 1.2. from April 2019]]| +| OpenCL 20/05, 23/05| {{ :magistraleinformaticanetworking:spd:2015:opencl-intro-tim-mattson.pdf |Open CL 1.0 intro and tutorial}} |  | [[https://www.khronos.org/sycl/ | about SYCL on Khronos portal]] [[https://www.khronos.org/registry/SYCL/| See SYCL specification 1.2. from April 2019]]| 
 +| OpenCL 28/05, 30/05 | {{ :magistraleinformaticanetworking:spd:2018:opencl_e_survey.pdf |Open CL changes from 1.0 to 2.0}} {{ :magistraleinformaticanetworking:spd:2019:ocl_g_opencl_sycl_2019.pdf |OpenCL 2019 IWOCL Keynote}} | For the OpenCL lab session, on latest OSX remember to define CL_SILENCE_DEPRECATION in order to avoid spurious warnings  | [[https://github.com/HandsOnOpenCL/Exercises-Solutions.git| GIT URL to HandsOnOpenCL Exercises]] | 
magistraleinformaticanetworking/spd/lezioni18.19.1559031462.txt.gz · Ultima modifica: 28/05/2019 alle 08:17 (5 anni fa) da Massimo Coppola