===== Distributed systems: paradigms and models ===== ==== Academic Year 2010-2011 ==== ^ Day ^ Hours ^ Argument ^ Support material ^ Teacher ^ | March 8 | 4-6pm | Introduction to course: course logistics, program, general motivation. | [[http://backus.di.unipi.it/~marcod/SPM1011/1spm0803.pdf|Blackboard]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm8mar1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm8mar2.mp3|Audio2]] | Danelutto | | March 9 | 9-11am | Motivations: technological improvements. From single core to multi core and many core. Heterogeneous multicores. GPUs and FPGAs as (parallel) coprocessors | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0903.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0903.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0903.2.mp3|Audio2]] | Danelutto | | March 10 | 9-11am | Evolution of HPC. Clouds. Changes in the programming models for parallel and distributed architectures. Questionnaire on programming expertize. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1003.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1003.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1003.2.mp3|Audio2]] | Danelutto | | March 15 | 4-6pm | Parallel programming: devising concurrent activity graph. Functional and non functional code. Speedup and Amdhal law in detail. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1503.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1503.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1503.2.mp3|Audio2]] | Danelutto | | March 16 | 9-11am | Non functional concerns in parallel programming: fault tolerance (checkpointing), power management, security. "Classical" parallel programming frameworks: network of POSIX workstations with TCP/IP interconnection. Mechanisms for creating concurrent activities (process, pthreads), for communication and synchronization (Sockets, SHM SYS V), for program deployment (rdist, rsync). | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1603.pdf|Slides]] Audio1 (not available) [[http://backus.di.unipi.it/~marcod/SPM1011/spm1603.2.mp3|Audio2]] | Danelutto | | March 22 | 4-6pm | Sample parallel program with POSIX TCP: computing the square of a stream of integers. Version 1 (no fault tolerance), Version 2: recognize worker faults, Version 3: recognize and correct worker faults. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2203.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2203.1.mp3|Audio]] [[farmPosix|Code]] | Danelutto | | March 23 | 9-11am | Algorithmic skeletons: introduction of the concept (analogies with parallel design patterns). Definition of skeletons by means of functional and parallel semantics ([[ocamlFS1|sample functional semantics with OcaML]]). Parameters of the skeletons. Compositionality (intro) with "farm of map" example. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2303.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2303.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2303.2.mp3|Audio2]] | Danelutto | | March 24 | 11am-1pm | Definition of algorithmic skeleton. Pros and cons of skeleton based programming frameworks. Pattern classes: data parallel, stream parallel and control parallel patterns. Sample data parallel skeletons: map, reduce, stencil, divide&conquer, scan. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2403.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2403.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2403.2.mp3|Audio2]] | Danelutto | |March 29 | 4-6pm | Introduction to Ocaml: data types, lists; union types, functions, recursive functions, mutually recursive functions, with examples. Installation of the package. Web site. (see also Ocaml [[ocaml-intro|web page]]) | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2903.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2903.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2903.2.mp3|Audio2]] [[http://backus.di.unipi.it/~marcod/SPM1011/dump2903.txt|Terminal dump]]| Danelutto | |March 30 | 9-11am | Further details on Ocaml. Typical control parallel skeletons. Composition of skeletons: functional semantics and performance related aspects. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm3003.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm3003.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm3003.2.mp3|Audio2]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm3003.txt|Terminal dump]]| Danelutto | |March 31 | 9-11am | [[skelfsem|Complete functional semantics]] with the image processing example. State handling in skeletons. Common patterns: readonly, owner writes, accumulator, resource. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm3103.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm3103.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm3103.2.mp3|Audio2]] | Danelutto | |April 5 | 4-6pm | Implementation of skeleton frameworks: language vs library. Template based and macro data flow based implementations: generalities. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0504.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0504.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0504.2.mp3|Audio2]] | Danelutto | |April 6 | 9-11am | Template based implementations of skeleton frameworks: phases, template library, template assignment, optimizations, sample template: task farm for mesh interconnected architectures. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0604.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0604.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0604.2.mp3|Audio2]] | Danelutto | | April 7 | 9-11am | Macro data flow implementation of skeleton framework. Introduction to performance models: latency, service time, completion time, speedup, scalability. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0704.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0704.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0704.2.mp3|Audio2]] | Danelutto | | April 12 | 4-6pm | Performance models: analytical models and models derived from queue theory. Skeleton, template and architecture models. Usage of models (at compile time, at run time and post run time). Accurate vs. approximate performance models with sample models. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1204.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1204.1.mp3|Audio1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1204.2.mp3|Audio2]] | Danelutto | | April 13 | 9-11am | Structured programming environments: MUESLI | [[http://backus.di.unipi.it/~marcod/SPM1011/DazziIntro.pdf|Introduction slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/Muesli.pdf|Muesli slides]] | Dazzi | | April 14 | 11am-1pm | Structured programming environments: MUESLI (last part), Skandium | [[http://backus.di.unipi.it/~marcod/SPM1011/Skandium.pdf|Skandium slides]] | Dazzi | | April 28 | 11am-1pm | Skeleton set design (with Cole's Manifesto principles) | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2804.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2804.mp3|Audio]] | Danelutto | | May 3 | 4-6pm | Template design: methodology, building blocks, mechanisms (termination, fault tolerance). | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0305.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0305.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm0305.2.mp3|Audio2]] | Danelutto | | May 4 | 9-11am | Template design techniques: triple buffering. Divide and conquer template (farm with feedback) | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0405.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0405.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm0405.2.mp3|Audio2]] | Danelutto | | May 10 | 4-6pm | Portability (functional, performance). Compiler based and virtual machine based, with template based or macro data flow based frameworks. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1005.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1005.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm1005.2.mp3|Audio2]] | Danelutto | | May 11 | 9-11am | Problems related to distributed vs. shared memory architecture targeting. Rewriting rules for skeletons and skeleton normal form. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1105.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1105.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm1105.2.mp3|Audio2]] | Danelutto | | May 12 | 11am-12am | Presentation and discussion of the final project text. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1205.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1205.1.mp3|Audio1]] | Danelutto | | May 12 | 12am-1pm | Effects of normal form optimization in template based and macro data flow based frameworks | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1205.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1205.2.mp3|Audio2]] | Danelutto | | May 13 | 2-4pm | Adaptivity: adaptation process, MAPE loop, concept of manager, rule systems. Behavioural skeletons: concepts, task farm behavioural skeleton. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1305.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1305.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm1305.2.mp3|Audio2]] | Danelutto | | May 17 | 4-6pm | Contracts in autonomic management of structured computations. Hierarchical coordination of autonomic managers. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1705.1.pdf|Slides1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm1705.2.pdf|Slides2]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1705.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm1705.2.mp3|Audio2]] | Danelutto | | May 18 | 9-10am | Autonomic management of multiple non functional concerns. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1805.pdf|Slides1]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1805.1.mp3|Audio1]] | Danelutto | | May 18 | 10-11am | Muskel framework | No slides [[http://backus.di.unipi.it/~marcod/SPM1011/spm1805.2.mp3|Audio1]] | Danelutto | | May 19 | 11am-1pm | Fastflow framework | [[http://backus.di.unipi.it/~marcod/SPM1011/spm1905.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm1905.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm1905.2.mp3|Audio2]] | Danelutto | | May 20 | 2-4pm | Parallel design patterns | [[http://backus.di.unipi.it/~marcod/SPM1011/Patterns.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2005.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm2005.2.mp3|Audio2]] | Danelutto | | May 24 | 4-5pm | OcamlP3L skeleton framework: features, installation, sample usage on NOW/COW | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2405.1.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2405.1.mp3|Audio]] | Danelutto | | May 24 | 5-6pm | Introduction to peer-to-peer techniques (audio file by Vaira: thanks!) | [[http://backus.di.unipi.it/~marcod/SPM1011/p2p.pdf|Slides]][[http://backus.di.unipi.it/~marcod/SPM1011/spm2405.2.WMA|Audio]] | Danelutto | | May 25 | 9-11am | P2P techniques supporting resource discovery and master/worker template implementation. Introduction to wireless computing: typical scenarios and typical problems. (This part of the course is covered by the material in "Kurose Ross, Computer Networking, a top down approach") | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2505.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm2505.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm2505.2.mp3|Audio2]] | Danelutto | | May 26 | 11am-1pm | Wireless networks: transmission techniques, packet format, access protocols, lessons relative to the SPM course | [[http://backus.di.unipi.it/~marcod/SPM1011/spm2605.1.pdf|Slides1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm2605.2.pdf|Slides2]][[http://backus.di.unipi.it/~marcod/SPM1011/spm2605.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm2605.2.mp3|Audio2]] | Danelutto | | May 31 | 4-6pm | Perspectives in the adoption of structured parallel programming techniques: Berkeley report, "commercial" libraries (TPL by Microsoft and TBB by Intel) | [[http://backus.di.unipi.it/~marcod/SPM1011/spm3105.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm3105.1.mp3|Audio1]][[http://backus.di.unipi.it/~marcod/SPM1011/spm3105.2.mp3|Audio2]] | Danelutto | | June 1 | 9-10am | Final lesson: the SPM methodology revisited. | [[http://backus.di.unipi.it/~marcod/SPM1011/spm0106.pdf|Slides]] [[http://backus.di.unipi.it/~marcod/SPM1011/spm0106.1.mp3|Audio1]] | Danelutto | | End of the lessons ||||| [[http://unimap.unipi.it/registri/dettregistriNEW.php?re=51093::::&ri=8045|Link]] to the official lesson register page.