Module: | Parallel and Distributed Computing |
Module numbers: | 41.4874 [PVL 41.4875] |
Language: | english |
Study programme: | Dualer Master 2013 - Katalog AS: Anwendungs- und systemorientierte Module JIM 2013 - Elective Catalogue J Master 2013 - Katalog AS: Anwendungs- und systemorientierte Module JIM 2006 - Courses Master 2006 - Katalog AS: Anwendungs- und systemorientierte Module Master 2006 - Vertiefung AE: Application Engineering Master 2006 - Vertiefung TK: Telekommunikation Master 2006 - Vertiefung TS: Technische Systeme MN Data Science 2016 - Katalog DS-I: Data Science - Informatik |
Type of course: | V+P = Lecture+Practical |
Weekly hours: | 2+2 |
Credit Points: | 6 |
Exam: | written exam |
Registering for exam | explicitly and independent of booking |
PVL (e.g. Practical): | not graded (ungraded practical) |
Frequency of offering: | inactive |
Required knowledge: | Experience with C++ programming is a prerequisite for the practical course. |
Learning objectives: | Students should learn how to first plan, then build and then maintain parallel and distributed systems. More precisely, they should be able to:
- analyze problems and algorithms to discover implicit (theoretical) parallelism,
- find the appropriate degree of granularity for a given problem (i.e. choose between fine-grained and coarser grained parallelism in the real world),
- use both the shared memory and the message passing paradigms,
- choose between the shared memory and the message passing paradigms for a given problem,
- use, and choose between, currently available tools (programming languages, libraries, etc.) for constructing parallel software,
- apply best practice design processes and design patterns.
|
Content: | - Introduction to the terminology and basic concepts for parallel and distributed computing
- Models of parallel computation
- theoretical models such as PRAM and Dataflow Graphs
- hardware models e.g. SIMD, MIMD, SPMD
- parallel patterns found in computer architecture, e.g. vector computers, pipelining, superscalar and VLIW
- network topologies
- Methods and Patterns for Parallel Architectures (s. Literature)
- Discovering (fine-grain) parallelism
- Partitioning and Agglomeration in order to optimize granularity
- Mapping parallel solutions onto available hardware
- Shared memory paradigm (using C++11, Java & OpenMP)
- The message passing paradigm (using MPI)
- Current trends (e.g. General Purpose Graphics Processor Units, Many-Core Chips, Grid & Cloud Computing)
|
Literature: | Main Text
- T. G. Mattson, B. A. Sanders & B. L. Massingill, Patterns for Parallel Programming, Addison-Wesley (Pearson Education), 2005
Also helpful:
- Clay Breshears, The Art of Concurrency, O Reilly Media Inc, 2009.
- Ian Foster, Designing and Building Parallel Programs, Addison-Wesley Publishing, 1995. Cf. http://www.mcs.anl.gov/~itf/dbpp/
- A. Tanenbaum, M. van Steen, Distributed Systems. Principles and Paradigms, Prentice Hall International; 2nd Edtion, 2006
|
Lecture style / Teaching aids: | Seminaristic Lecture Internship in group of 2 persons with written work Tools: Slides / Script, On-line References |
Responsibility: | Ronald Moore |
Released: | WS 2013/2014 |
Professional competencies: | - formal, algorithmic, mathematical competencies: medium
- analytical, design and implementation competencies: high
- technological competencies: high (Software Development, System Optimization, System Architecture)
- capability for scientific work: low
|
Interdisciplinary competencies: | - project related competencies: low
- interdisciplinary expertise: basic technical and natural scientific competence
- social and self-competencies: ability to work in a team, analytical competence, judging competence, deciding competence, competence of knowledge acquisition, fluency
|