Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
magistraleinformaticanetworking:spd:lezioni18.19 [30/05/2019 alle 12:05 (5 anni fa)] – [Slides, Notes and References to papers] Massimo Coppola | magistraleinformaticanetworking:spd:lezioni18.19 [26/07/2019 alle 16:26 (5 anni fa)] (versione attuale) – [Slides, Notes and References to papers] Massimo Coppola |
---|
* 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==== |
| 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]] | | | 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]] | |