===== Distributed Systems: Paradigms and Models (A.Y. 2013-2014) ===== Link to the [[http://unimap.unipi.it/registri/dettregistriNEW.php?re=107628::::&ri=8045|official lesson register]] page. ^ Date ^ Hour ^ Arguments ^ Support material ^ | 23/09/13 | 2-4pm | Course introduction. Hardware evolution: multicores, GPUs, cloud. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm23set.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm23set.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm23set.2.mp3|Audio 2nd hour]] | | 24/09/13 | 4-6pm | Parallelisation of sample applications: issues and advantages | [[http://backus.di.unipi.it/~marcod/SPM1314/spm24set.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm24set.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm24set.2.mp3|Audio 2nd hour]] | | 25/09/13 | 2-4pm | Kind of parallelism: data, stream and control parallelism. Measures realtive to parallelism: latency, service time, speedup and efficiency. Amdahl law. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm25set.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm25set.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm25set.2.mp3|Audio 2nd hour]] | | 30/09/13 | 2-4pm | Concurrent activity graph. Coordination of concurrent activities. Non functional concerns in parallel computing: performance, fault tolerance, security, power management. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm30set.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm30set.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm30set.2.mp3|Audio 2nd hour]] | | 1/10/13 | 4-6pm | Load balancing: static and dynamic techniques. Fault tolerance: checkpointing, replication of computing resouces. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm1ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm1ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm1ott.2.mp3|Audio 2nd hour]] | | 2/10/13 | 2-4pm | (lab) Implementation of a simple stream parallel application with POSIX-TCP/IP | [[http://backus.di.unipi.it/~marcod/SPM1314/spm2ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm2ott.1.mp3|Audio 1st+2nd hour]] | | 7/10/13 | 2-4pm | Implementation of a simple stream parallel application with POSIX/Pthreads (lab). Stream parallel patterns: pipeline, farm and loopback. Data parallel patterns: map, reduce | [[http://backus.di.unipi.it/~marcod/SPM1314/spm7ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm7ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm7ott.2.mp3|Audio 2nd hour]] | | 8/10/13 | 4-6pm | Data parallel patterns: scan, stencil, D&C. Control parallel patterns: conditional, fork/join. High level patterns (intro): BSP, Simulated annealing, Genetic algorithm. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm8ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm8ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm8ott.2.mp3|Audio 2nd hour]] | | 9/10/13 | 2-4pm | Parallel design patterns (the software engineer perspective) | [[http://backus.di.unipi.it/~marcod/SPM1314/spm9ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm9ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm9ott.2.mp3|Audio 2nd hour]] | | 14/10/13 | 2-4pm | Sample parallel patterns (D&C and geometric decomposition: discussion of the pattern description in Mattson' book. Introduction to algorithmic skeletons. | [[http://backus.di.unipi.it/~marcod/SPM1314/patsample.pdf|Blackboard 1st hour]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm14ott.pdf|Blackboard 2nd hour]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm14ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm14ott.2.mp3|Audio 2nd hour]] | | 15/10/13 | 4-6pm | Implementation of algorithmic skeletons: template based and macro data flow implementation techniques. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm15ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm15ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm15ott.2.mp3|Audio 2nd hour]] | | 16/10/13 | 2-4pm | Optimizations of a MDF interpreter executing skeleton code. Affinity scheduling in MDF implementation of skeletons. Handling state in skeletons. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm16ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm16ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm16ott.2.mp3|Audio 2nd hour]] | | 21/10/13 | 2-4pm | Handling state in skeletons: owner computes rule variables and "resource" variables. Optimizations explioting the known access pattern of non state parameter in skeleton compositions. Performance models: skeleton, template and architecture models. Exact and approximate modelling. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm21ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm21ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm21ott.2.mp3|Audio 2nd hour]] | | 22/10/13 | 4-6pm | Compile time, run time and post mortem usage of performance models. Mechanisms for code monitoring. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm22ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm22ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm22ott.2.mp3|Audio 2nd hour]] | | 23/10/13 | 2-4pm | Analytical and queue theory based modelling. Modelling of a GPU map. 2nd hour: Introduction to [[skepu-page|SKEPU]]. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm23ott2.pdf|Blackboard (2nd hour only)]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm23ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm23ott.2.mp3|Audio 2nd hour]] | | 28/10/13 | 2-4pm | SKEPU: using the system on a CPU/GPU hardware. Compiling options. Differences using a map followed by a reduce w.r.t. a mapreduce. Cole's Manifesto principles. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm28ott.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm28ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm28ott.2.mp3|Audio 2nd hour]] | | 29/10/13 | 4-6pm | Introduction to [[ff1314|FastFlow]]. How to install. Sample code. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm29ott.pdf|Blackboard (1st hour)]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm29ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm29ott.2.mp3|Audio 2nd hour]] | | 30/10/13 | 2-4pm | Introduction to [[ff1314|FastFlow]] (2): composition of skeletons, ff_node lifecycle, implementation of a master/worker pattern, map. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm30ott.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm30ott.2.mp3|Audio 2nd hour]] | | 11/11/13 | 2-4pm | Using SKEPU within FastFlow ([[sampleFFskepu|sample code]]). Vectorizing compilers ([[sampleVVcode|sample code]]). | [[http://backus.di.unipi.it/~marcod/SPM1314/spm11nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm11nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm11nov.2.mp3|Audio 2nd hour]] | | 12/11/13 | 4-6pm | Template implementation techniques: prefetching, name and time servers in COW/NOW parallel applications | [[http://backus.di.unipi.it/~marcod/SPM1314/spm12nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm12nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm12nov.2.mp3|Audio 2nd hour]] | | 13/11/13 | 2-4pm | Avoiding unnecessary synchronizations (Owner computes rule and false sharing). Client/server model for parallel computations. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm13nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm13nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm13nov.2.mp3|Audio 2nd hour]] | | 18/11/13 | 2-4pm | Introduction to Skandium (T. De Matteis, 1st hour, with [[http://backus.di.unipi.it/~marcod/SPM1314/example_code.zip|sample code]]). Portability of parallel applications (introduction of the problem) | [[http://backus.di.unipi.it/~marcod/SPM1314/SPMSkandium.pdf|Skandium Slides]][[http://backus.di.unipi.it/~marcod/SPM1314/spm18nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm18nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm18nov.2.mp3|Audio 2nd hour]] | | 19/11/13 | 2-4pm | Portability of parallel applications (second part). Job stealing. Virtual machines. Targeting heterogeneous architectures. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm19nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm19nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm19nov.2.mp3|Audio 2nd hour]] | | 20/11/13 | 2-4pm | Rewriting rules. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm20nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm20nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm20nov.2.mp3|Audio 2nd hour]] | | 25/11/13 | 2-4pm | Rewriting rules: data parallelism into stream parallelism. Adaptivity, MAPE loop and introduction to behavioural skeletons. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm25nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm25nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm25nov.2.mp3|Audio 2nd hour]] | | 26/11/13 | 4-6pm | Behavioural skeletons. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm26nov.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm26nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm26nov.2.mp3|Audio 2nd hour]] | | 27/11/13 | 2-4pm | [[ff1314|FastFlow]]: implementation of a map with a custom farm, parallel for, targeting distributed machines (Torquati) | [[http://backus.di.unipi.it/~marcod/SPM1314/distributedFastflow.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm27nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm27nov.2.mp3|Audio 2nd hour]] | | 28/11/13 | 9-11pm | Behavioural skeletons: multiple concern management. Introduction to Intel Xeon PHI. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm28nov.1.pdf|Blackboard1]][[http://backus.di.unipi.it/~marcod/SPM1314/spm28nov.2.pdf|Blackboard2]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm28nov.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm28nov.2.mp3|Audio 2nd hour]] | | 4/12/2013 | 2-4pm | Guest lesson by P. Dazzi: BSP, Pregel and the need for Parallel Graph Processing | [[http://hpc.isti.cnr.it/~dazzi/wp-content/uploads/2013/12/BSP-Pregel-and-the-need-for-Graph-Processing.pdf|slides]] [[http://hpc.isti.cnr.it/~dazzi/wp-content/uploads/2013/12/CComps.tgz|Code]] | | 05/12/13 | 2-4pm | First view on the final project: arguments of the application and skeleton project classes. RISC-pbb: motivations and components, legal compositions, sample skeletons implemented with RISC-pbb (farm and map). | [[http://backus.di.unipi.it/~marcod/SPM1314/spm05dic.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm05dic.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm05dic.2.mp3|Audio 2nd hour]] | | 09/12/13 | 2-4pm | More on RISC-pbb: BSP and Google MAPREDUCE implementation through RISC-pbb. Final project official presentation. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm09dic.pdf|Blackboard 1st hour]] [[http://backus.di.unipi.it/~marcod/SPM1314/riscpbb.pdf|RISC-pbb paper excerpt]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm09dic.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm09dic.2.mp3|Audio 2nd hour]] | | 10/12/13 | 4-6pm | Peer2peer & parallel computing. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm10dic.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM/p2p.pdf|Slides p2p]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm10dic.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm10dic.2.mp3|Audio 2nd hour]] | | 11/12/13 | 2-4pm | [[http://backus.di.unipi.it/~marcod/SPM/20octFirst.m4v|Muesli]], Sketo | [[http://backus.di.unipi.it/~marcod/SPM1314/spm11dic.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm11dic.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm11dic.2.mp3|Audio 2nd hour]] | | 16/12/13 | 2-4pm | Supporting extensions of the skeleton/pattern set in structured frameworks (implementation template or macro data flow based) | [[http://backus.di.unipi.it/~marcod/SPM1314/spm16dic.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1314/spm16dic.1.mp3|Audio 1st hour]][[http://backus.di.unipi.it/~marcod/SPM1314/spm16dic.2.mp3|Audio 2nd hour]] | | 17/12/2013 | 4-6 | Parallelizing applications and designing parallel pattern implementations: sample from previous year projects. | [[http://backus.di.unipi.it/~marcod/SPM1314/spm17dic.pdf|Blackboard]] |