Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spd:lezioni14.15

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
Ultima revisione Entrambe le parti successive la revisione
magistraleinformaticanetworking:spd:lezioni14.15 [12/05/2015 alle 08:13 (9 anni fa)]
Massimo Coppola [Journal]
magistraleinformaticanetworking:spd:lezioni14.15 [26/05/2015 alle 09:05 (9 anni fa)]
Massimo Coppola [Slides, Notes and References to papers]
Linea 19: Linea 19:
   * 28/04/2015 **KDD examples** Short introduction to Knowledge Discovery in Databases and Data Mining; examples; parallelism exploitation in data mining algorithms; K-means algorithm.   * 28/04/2015 **KDD examples** Short introduction to Knowledge Discovery in Databases and Data Mining; examples; parallelism exploitation in data mining algorithms; K-means algorithm.
   * 29/04/2015 **TBB laboratory** Implementation of K-means with TBB, from example code to a running program; farm (parallel for) and reduce based parallelization of the inner loop. Tuning the TBB program for speedup.   * 29/04/2015 **TBB laboratory** Implementation of K-means with TBB, from example code to a running program; farm (parallel for) and reduce based parallelization of the inner loop. Tuning the TBB program for speedup.
-  * 05/05/2015 **Project discussion** Overall structure and scope of the course final project. +  * 05/05/2015 **TBB** TBB basic C++ concepts and algorithms (i.e. parallel skeletons). Binary splittables, range concept and blocked ranges, proportional split; parallel_for_each, parallel for; passing arguments to parallel algorithms (lamba functions vs body classes), optional arguments; parallel for 1D simplified syntax; partitioners; reduce (differences between "functional" and "imperative" forms); deterministic reduce; pipeline class and filter class (i.e. stages), strongly typed parallel_pipeline and make_filter template.    
-  * 06/05/2015 +  * 06/05/2015 **Project discussion** Overall structure and scope of the course final project. 
-  * 12/05/2015 +  * 12/05/2015 **TBB** parallel_do; containers: similarity and differences with STL containers, mutithreaded/sequential performance tradeoffs wrt software lockout, space and time overheads, relaxed/restricted semantics and feature drops, thread view consistency; container_range, extending containers to ranges, concurrent map and set templates: concurrent_hash, unordered, unordered_multi map; concurrent and unordered set; concurrent queue, bounded_queue, priority queue; concurrent vector; thread local storage; C+11 style atomics. 
-  * 13/05/2015 +  * 13/05/2015 **OpenCL introduction** Development history of modern GPUs, graphic pipeline, HW/FW implementations, load unbalance related to the distribution of graphic primitives executed, more "general purpose" and programmable core design; generic constraints and optimizations of the GPU approach; modern GPU architecture, memory optimization and constraints, memory spaces. GPGPU, and transition to explicitly general purpose programming languages for GPU. OpenCL intro and examples: framework goal, design concepts and programming abstractions (Devices/host interaction, kernels, queues). Memory spaces and Host/devices communication. 
-  * 19/05/2015 +  * 19/05/2015 **OpenCL** design concepts and programming abstractions: Devices/host interaction, kernel compilation, program objects, memory objects and kernel arguments, execution, kernel instances and workgroups, workgroup synchronization; vector types and vector operations; example with matrix multiplication. 
-  * 20/05/2015+  * <del>20/05/2015</del> lesson postponed to 22/05 
 +  * 22/05/2015 **TBB** mutex-es and locks in TBB as a lower-level synchronization mechanism for building concurrent data structures; scoped locking approach, rationale, lock implementation and overheads, tradeoffs among features (scalability, fairness, lock size as well as reentrant and yeld/block behaviour); plain mutex and recursive mutex, spin and queueing mutex; basics of transactional memory support in the CPU; speculative spin locks in TBB; read-write locks (of spin, speculative spin and queue kinds) and access upgrade/downgrade; null mutex; low-level task management and scheduling. 
 +  * 25/05/2015 **Large-graph computations in distributed memory: Spark and Graphx** Large graph computation frameworks: distributed memory and vertex-centric approach; bulk synchronous versus map&reduce; introduction to Apache Spark, functional semantics and distributed shared memory approach; Resilient Distributed Datasets basic concepts: partition, immutability, lineage; RDD transformations and actions, lazy functional evaluation and programming model, interplay of dependencies and partitioning on evaluation order, job scheduling, fault tolerance, performance, memory management and checkpointing; GraphX data model for vertexes/edges and Gather/Apply/Scatter approach to coding graph algorithms; advantages and limitations. Discussion about the final course project.
   * 26/05/2015   * 26/05/2015
 ====Slides, Notes and References to papers==== ====Slides, Notes and References to papers====
  
-^ Date ^ Slides ^ Notes ^ Other information |+^ Date ^ Slides ^ Notes ^ References / Other information |
 | 24/02 | {{:magistraleinformaticanetworking:spd:2015:spd_feb_2015.pdf|Course introduction}} |         | | 24/02 | {{:magistraleinformaticanetworking:spd:2015:spd_feb_2015.pdf|Course introduction}} |         |
 | 24/02, 25/02 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson1.pdf|MPI part I}} |         | | 24/02, 25/02 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson1.pdf|MPI part I}} |         |
-| 03/03, 11/03 |  {{:magistraleinformaticanetworking:spd:2015:mpi-lesson2.pdf|MPI part II -- updated on 11/03 with corrections, more examples, struct datatype}} |         |+| 03/03, 11/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson2.pdf|MPI part II -- updated on 11/03 with corrections, more examples, struct datatype}} |         |
 | 04/03, 11/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson3.pdf|MPI part III -- updated on 11/03 with canceling of requests}}   {{:magistraleinformaticanetworking:spd:2015:mpi-lesson4.pdf|MPI part IV}} |         | | 04/03, 11/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson3.pdf|MPI part III -- updated on 11/03 with canceling of requests}}   {{:magistraleinformaticanetworking:spd:2015:mpi-lesson4.pdf|MPI part IV}} |         |
 | 18/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson5.pdf|MPI part V -- updated on 24/03}} |         | | 18/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson5.pdf|MPI part V -- updated on 24/03}} |         |
Linea 37: Linea 39:
 | 24/03, 25/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson6.pdf|MPI part VI}}      |   | | 24/03, 25/03 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson6.pdf|MPI part VI}}      |   |
 | 31/03 | {{:magistraleinformaticanetworking:spd:2015:tbb-lesson1.pdf|TBB part I}}    |  |   | | 31/03 | {{:magistraleinformaticanetworking:spd:2015:tbb-lesson1.pdf|TBB part I}}    |  |   |
-| 01/04 |  //MPI part VII (MPI-IO)//   |  |   | +| 01/04 | {{:magistraleinformaticanetworking:spd:2015:mpi-lesson7.pdf|MPI part VII (MPI-IO)}} //5 slides with examples are missing// |  |   | 
-| 28/04 |  |  | {{:magistraleinformaticanetworking:spd:spd13-14-paralleldatamining_notes_ch2_3.pdf|Notes on parallel DM}} {{:magistraleinformaticanetworking:spd:spd11-12-dhillon-modha-corretto_parkmeans.ps|Dhillon and Modha TR on K-means}}  |+| 28/04 |  | {{:magistraleinformaticanetworking:spd:spd13-14-paralleldatamining_notes_ch2_3.pdf|Notes on parallel DM}} {{:magistraleinformaticanetworking:spd:spd11-12-dhillon-modha-corretto_parkmeans.ps|Dhillon and Modha TR on K-means}}  |
 | 29/04 |  |  | {{:magistraleinformaticanetworking:spd:spd11-12-k-means-code.tgz|K-means example code in C}} | | 29/04 |  |  | {{:magistraleinformaticanetworking:spd:spd11-12-k-means-code.tgz|K-means example code in C}} |
-| 05/05 |  |  | {{:magistraleinformaticanetworking:spd:2015:tbb-lesson_2.pdf|TBB Lesson 2}}  |+| 05/05, 12/05 | {{:magistraleinformaticanetworking:spd:2015:tbb-lesson_2.pdf|TBB Lesson 2}} {{:magistraleinformaticanetworking:spd:2015:tbb-lesson3.pdf|TBB Lesson 3}} |   | 
 +| 13/05, 19/05 | {{:magistraleinformaticanetworking:spd:2015:gpgpu_lesson1.pdf|GPU computing Lesson 1}} |  | {{:magistraleinformaticanetworking:spd:2015:opencl-intro-tim-mattson.pdf|Intro to OpenCL by Tim Mattson}} 
 +| 22/05 |  |  |  | 
 +| 25/05 | {{:magistraleinformaticanetworking:spd:2015:intro_apache_spark.pdf|Intro to Spark and Graphx}} |  |  | 
 +| 26/05 |  |  | [[http://www.ercis.org/sites/default/files/publications/2012/ercis_wp_no_7.pdf|B&B in Muesli]] note that here the B&B tasks are never evaluated concurrently \\ [[http://link.springer.com/journal/10479/10/1/page/1|Annals of Operation Research Journal, issue on Branch and bound]] quite a theoretical approach survey, see chapter 2 \\ See also Introduction to Parallel Computing (2nd ed.) by Vipin Kumar et. al., Chapter 11 | 
magistraleinformaticanetworking/spd/lezioni14.15.txt · Ultima modifica: 26/05/2015 alle 09:19 (9 anni fa) da Massimo Coppola