Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
magistraleinformaticanetworking:spd:lezioni14.15 [12/05/2015 alle 08:13 (10 anni fa)] – [Journal] Massimo Coppola | magistraleinformaticanetworking:spd:lezioni14.15 [26/05/2015 alle 09:19 (10 anni fa)] (versione attuale) – [Slides, Notes and References to papers] Massimo Coppola |
---|
* 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}} | | | |
| 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\\ [[http://janders.eecg.toronto.edu/1387/readings/b_and_b.pdf|A simple intro to B&B]] | |