===== SPM 2011-2012 ===== ==== Lessons ==== [[http://unimap.unipi.it/registri/dettregistriNEW.php?re=68458::::&ri=8045|This]] is the link to the official lesson register ^ Day ^ Hours ^ Arguments ^ Support material ^ | Feb 22 | 2 | Introduction to the course, program, support material. Motivations | [[http://backus.di.unipi.it/~marcod/SPM1112/spm220212.1.pdf|Blackboard dump (1)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm220212.2.pdf|Blackboard dump (2)]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm220212.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm220212.2.mp3|Audio (2nd hour)]] | | Feb 23 | 2 | Evolution of CPU, supercomputers. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm230212.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm230212.1.mp3|Audio (1st hour)]] (Second hour missing) | | Feb 24 | 2 | More on supercomputers and GPUs. Cloud computing concepts. Urgencies related to parallel programming | [[http://backus.di.unipi.it/~marcod/SPM1112/spm240212.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm240212.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm240212.2.mp3|Audio (2nd hour)]] | | Feb 29 | 2 | Parallel programming: the concept. Concurrent activity graph. Coordination. Amdhal law | [[http://backus.di.unipi.it/~marcod/SPM1112/spm290212.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm290212.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm290212.2.mp3|Audio (2nd hour)]] | | Mar 01 | 2 | Concept of overhead and impact on the Amdhal law. Performance: latency and service time definition. Further non functional concerns: load balancing and fault tolerance | [[http://backus.di.unipi.it/~marcod/SPM1112/spm010312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm010312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm010312.2.mp3|Audio (2nd hour)]] | | Mar 02 | 2 | Fault tolerance: chekpointing, alternative approach in master/worker parallel computation. Other non functional concerns: power management, security. Traditional approaches to the management of non functional concerns (schema). | [[http://backus.di.unipi.it/~marcod/SPM1112/spm020312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm020312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm020312.2.mp3|Audio (2nd hour)]] | | Mar 07 | 2 | POSIX/TCP programming framework: syscalls for concurrent activities setup (processes: fork, exec, join; threads: pthread_create, pthread_join), for communication and synchronization (SYS V semaphores, shared memory and message queues; Sockets). Commands to launch a parallel application on a cluster. Problem of channel names: two phase protocol to resolve channel names. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm070312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm070312.mp3|Audio]] | | Mar 08 | 2 | Sample parallel code POSIX/TCP (unoptimized). Introduction to the concept of skeleton library: user view and advantages over traditional parallel programming models. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm080312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm080312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm080312.2.mp3|Audio (2nd hour)]] | | Mar 09| 2 | Skeleton concept: functional and parallel semantics. Data parallel skeletons: map, reduce, scan, stencil. Stream parallel skeletons: farm, pipeline. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm090312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm090312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm090312.2.mp3|Audio (2nd hour)]] | | Mar 14 | 2 | Skandium programming framework (lesson given by P. Dazzi) | Slides and material available [[http://hpc.isti.cnr.it/~dazzi/?cat=6|here]] | | Mar 16 | 1 | SkeTo programming framework (lesson given by P. Dazzi) | | | Mar 21 | 2 | FastFlow programming framework | [[http://backus.di.unipi.it/~marcod/SPM1112/spm210312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm210312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm210312.2.mp3|Audio (2nd hour)]][[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/sdpm12support|Sample code]]| | Mar 21 | 1 | SkeTo: sample applications (lesson given by P. Dazzi) | | | Mar 22 | 1 | FastFlow programming framework: performance | [[http://backus.di.unipi.it/~marcod/SPM1112/spm220312.1.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm220312.1.mp3|Audio]] | | Mar 22 | 1 | Skeletons: nesting of skeletons, data and stream parallel skeleton nesting, two tier nesting model. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm220312.2.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm220312.2.mp3|Audio]] | | Mar 23 | 2 | More on skeletons: divide&conquer, branch&bound (just outlined), if-then-else and speculative parallelism. Structured state sharing. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm230312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm230312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm230312.2.mp3|Audio (2nd hour)]] | | Mar 28 | 2 | Implementation of skeletons: implementation templates and macro data flow | [[http://backus.di.unipi.it/~marcod/SPM1112/spm280312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm280312.mp3|Audio]] | | Mar 29 | 2 | Experiment with FastFlow: round robin vs. autoscheduling with stream of variable lenght tasks (code and experiments). Template based vs. macro data flow based implementation of skeletons: pros and cons of the two approaches. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm290312.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm290312.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm290312.2.mp3|Audio (2nd hour)]] | | Apr 12 | 2 | Performance models. Base measures. Derived measures. Different kind of performance models: approximated vs. detailed, skeleton/pattern, implementation and architecture models. Sample performance modelling: reduce pattern latency. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm120412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm120412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm120412.2.mp3|Audio (2nd hour)]] | | Apr 13 | 2 | Performance models. Performance of pipeline on COW/NOW and multicores. Usage of performance models to evaluate transformation of pattern compositions, to assign resources to patterns, to compare alternative implementations. Performance model usage in Calcium to give hints on performance optimization to the programmer. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm130412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm130412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm130412.2.mp3|Audio (2nd hour)]] | | Apr 18 | 2 | Modelling farm performance. MISD and MISD completion time performance. Introduction to parallel design patterns. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm160412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm160412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm160412.2.mp3|Audio (2nd hour)]] | | Apr 19 | 2 | Parallel design patterns: design spaces, patterns, algorithmic skeletons vs. design patterns. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm190412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm190412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm190412.2.mp3|Audio (2nd hour)]] | | Apr 20 | 2 | Template design: features of target architectures (COW/NOW, multicore, GPU), mapreduce template for shared memory multicore. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm200412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm200412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm200412.2.mp3|Audio (2nd hour)]] | | Apr 26 | 2 | Template design: sample Reduce template with FastFow ([[http://backus.di.unipi.it/~marcod/SPM1112/reduce.cpp|code]]). Termination handling. Double/triple buffering. Cache related optimizations: thread pinning, prefecth. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm260412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm260412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm260412.2.mp3|Audio (2nd hour)]] | | Apr 27 | 2 | Template design: engineered version of the reduce template ([[http://backus.di.unipi.it/~marcod/SPM1112/reduce.hpp|code]][[http://backus.di.unipi.it/~marcod/SPM1112/sample_reduce.cpp|sample usage code]]). Usage of centralized servers to set up parallel/distributed computations: name server (channel names), time server. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm270412.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm270412.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm270412.2.mp3|Audio (2nd hour)]] | | May 02 | 2 | Presentation of the final [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/spm1112proj?&#project|project]]. Portability (functional and performance) issues. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm020512.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm020512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm020512.2.mp3|Audio (2nd hour)]] | | May 03 | 2 | Adaptivity: problems related to variations in target architecture load and to different phases in applications. MAPE loops. Behavioural skeleton concept. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm030512.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm030512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm030512.2.mp3|Audio (2nd hour)]] | | May 04 | 2 | Hierarchical managers in Behavioural skeletons. Managers dealing with multiple concerns. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm040512.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm040512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm040512.2.mp3|Audio (2nd hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/ipdps-slides.pdf|Slides Hierarchical Management]] | | May 9 | 2 | [[http://www.wi.uni-muenster.de/pi/forschung/Skeletons/|Muelsi]] skeleton framework (by P. Dazzi) | For slides and code see [[http://hpc.isti.cnr.it/~dazzi/?cat=6|Dazzi's web page]] | | May 10 | 2 | [[http://www.ida.liu.se/~chrke/skepu/|SkePU]] skeleton framework (Introduction to SkePu skeletons [[http://didawiki.cli.di.unipi.it/lib/exe/fetch.php/magistraleinformaticanetworking/spm/skepuintro.pdf|here]]) (SkePu program source used for the exercises may be found [[skepu_sample|here]]) | [[http://backus.di.unipi.it/~marcod/SPM1112/spm100512.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm100512.mp3|Audio]] | | May 11 | 2 | Co-exploitatoin of different programming frameworks: FastFlow pipeline with SkePU map stage (source code of the sample FF pipeline with SkePU map stage [[skepu_ff|here]]). Rewriting rules: general concepts, sample rules, evaluation of alternative rewritings of the same skeleton program. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm110512.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm110512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm110512.2.mp3|Audio (2nd hour)]] | | May 16 | 2 | Client-server and Peer-to-peer patterns. Generalities. Client server vs. p2p in file sharing. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm160512.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm160512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm160512.2.mp3|Audio (2nd hour)]] | | May 17 | 2 | Extending FastFlow to cluster/network of workstations (M. Torquati, dnode version of FF available [[http://backus.di.unipi.it/~marcod/SPM1112/fastflow_dnode.tgz|here]]). Different implementations of a file sharing application: with centralized servers (Napster), completely distributed (Gnutella). | [[http://backus.di.unipi.it/~marcod/SPM1112/distributedFastflow.pdf|"Distributed" FastFlow slides]][[http://backus.di.unipi.it/~marcod/SPM1112/spm170512.2.pdf|Blackboard dump]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm160512.1.mp3|Audio (P2P)]] | | May 18 | 2 | Peer2peer: more on p2p techniques. Usage of p2p techniques for resource discovery and master worker computations. | [[http://backus.di.unipi.it/~marcod/SPM1112/spm180512.notes.pdf|Blackboard]][[http://backus.di.unipi.it/~marcod/SPM1112/spm180512.slides.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm180512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm180512.2.mp3|Audio (2nd hour)]] | | May 23 | 2 | Wireless networks: introduction | [[http://backus.di.unipi.it/~marcod/SPM1112/spm230512.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm230512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm230512.2.mp3|Audio (2nd hour)]] | | May 24 | 2 | Wireless networks: 802.11 details. "SPM methodology": how to develop structured parallel applications (part 1). | [[http://backus.di.unipi.it/~marcod/SPM1112/spm240512.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm240512.1.mp3|Audio (1st hour)]][[http://backus.di.unipi.it/~marcod/SPM1112/spm240512.2.mp3|Audio (2nd hour)]] | | May 25 | 2 | "SPM methodology": how to develop structured parallel applications (part 2), how to develop a RTS for a parallel design pattern (Parmap in Ocaml) | [[http://backus.di.unipi.it/~marcod/SPM1112/spm250512.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1112/spm250512.mp3|Audio]] | | End of lessons |||| [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/start|Back to SPM home page]]