magistraleinformaticanetworking:spm:sdpm10lessons
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. | Blackboard Audio1 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 | Slides Audio1 Audio2 | Danelutto |
March 10 | 9-11am | Evolution of HPC. Clouds. Changes in the programming models for parallel and distributed architectures. Questionnaire on programming expertize. | Slides Audio1 Audio2 | Danelutto |
March 15 | 4-6pm | Parallel programming: devising concurrent activity graph. Functional and non functional code. Speedup and Amdhal law in detail. | Slides Audio1 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). | Slides Audio1 (not available) 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. | Slides Audio 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 (sample functional semantics with OcaML). Parameters of the skeletons. Compositionality (intro) with “farm of map” example. | Slides Audio1 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. | Slides Audio1 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 web page) | Slides Audio1 Audio2 Terminal dump | Danelutto |
March 30 | 9-11am | Further details on Ocaml. Typical control parallel skeletons. Composition of skeletons: functional semantics and performance related aspects. | Slides Audio1 Audio2 Terminal dump | Danelutto |
March 31 | 9-11am | Complete functional semantics with the image processing example. State handling in skeletons. Common patterns: readonly, owner writes, accumulator, resource. | Slides Audio1 Audio2 | Danelutto |
April 5 | 4-6pm | Implementation of skeleton frameworks: language vs library. Template based and macro data flow based implementations: generalities. | Slides Audio1 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. | Slides Audio1 Audio2 | Danelutto |
April 7 | 9-11am | Macro data flow implementation of skeleton framework. Introduction to performance models: latency, service time, completion time, speedup, scalability. | Slides Audio1 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. | Slides Audio1 Audio2 | Danelutto |
April 13 | 9-11am | Structured programming environments: MUESLI | Introduction slides Muesli slides | Dazzi |
April 14 | 11am-1pm | Structured programming environments: MUESLI (last part), Skandium | Skandium slides | Dazzi |
April 28 | 11am-1pm | Skeleton set design (with Cole's Manifesto principles) | Slides Audio | Danelutto |
May 3 | 4-6pm | Template design: methodology, building blocks, mechanisms (termination, fault tolerance). | Slides Audio1Audio2 | Danelutto |
May 4 | 9-11am | Template design techniques: triple buffering. Divide and conquer template (farm with feedback) | Slides Audio1Audio2 | Danelutto |
May 10 | 4-6pm | Portability (functional, performance). Compiler based and virtual machine based, with template based or macro data flow based frameworks. | Slides Audio1Audio2 | Danelutto |
May 11 | 9-11am | Problems related to distributed vs. shared memory architecture targeting. Rewriting rules for skeletons and skeleton normal form. | Slides Audio1Audio2 | Danelutto |
May 12 | 11am-12am | Presentation and discussion of the final project text. | Slides Audio1 | Danelutto |
May 12 | 12am-1pm | Effects of normal form optimization in template based and macro data flow based frameworks | Slides Audio2 | Danelutto |
May 13 | 2-4pm | Adaptivity: adaptation process, MAPE loop, concept of manager, rule systems. Behavioural skeletons: concepts, task farm behavioural skeleton. | Slides Audio1Audio2 | Danelutto |
May 17 | 4-6pm | Contracts in autonomic management of structured computations. Hierarchical coordination of autonomic managers. | Slides1Slides2 Audio1Audio2 | Danelutto |
May 18 | 9-10am | Autonomic management of multiple non functional concerns. | Slides1 Audio1 | Danelutto |
May 18 | 10-11am | Muskel framework | No slides Audio1 | Danelutto |
May 19 | 11am-1pm | Fastflow framework | Slides Audio1Audio2 | Danelutto |
May 20 | 2-4pm | Parallel design patterns | Slides Audio1Audio2 | Danelutto |
May 24 | 4-5pm | OcamlP3L skeleton framework: features, installation, sample usage on NOW/COW | Slides Audio | Danelutto |
May 24 | 5-6pm | Introduction to peer-to-peer techniques (audio file by Vaira: thanks!) | SlidesAudio | 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”) | Slides Audio1Audio2 | Danelutto |
May 26 | 11am-1pm | Wireless networks: transmission techniques, packet format, access protocols, lessons relative to the SPM course | Slides1Slides2Audio1Audio2 | 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) | Slides Audio1Audio2 | Danelutto |
June 1 | 9-10am | Final lesson: the SPM methodology revisited. | Slides Audio1 | Danelutto |
End of the lessons |
Link to the official lesson register page.
magistraleinformaticanetworking/spm/sdpm10lessons.txt · Ultima modifica: 20/03/2013 alle 07:30 (12 anni fa) da Marco Danelutto