Cilji in kompetence
Cilj predmeta je, da bodo študenti sposobni razumeti osnovne principe paralelnega in porazdeljenega računanja.
Vsebina
• Uvod: paralelni računalniški sistemi, porazdeljeni računalniški sistemi.
• Pohitritev, zmogljivost, skalabilnost paralelnih algoritmov in porazdeljenih sistemov.
• Zasnova paralelnih računalniških sistemov: pomnilnik, omrežja, vhod in izhod.
• Principi paralelnega računanja: podatkovni in kontrolni paralelizem, programski jeziki, pošiljanje sporočil in deljeni pomnilnik.
• Večjederni procesorji, niti, kritične sekcije, deljeni pomnilnik.
• Paralelizacija sekvenčnih programov: aplikacijski programski vmesnik OpenMP.
• Programiranje s pošiljanjem sporočil, standard MPI.
• Grafične procesne enote (GPE), paralelno računanje s pomočjo GPE.
• Porazdeljeni sistemi: modeli porazdeljenega procesiranja, komunikacija in sinhronizacija v porazdeljenih sistemih, porazdeljeni podatkovni sistemi (GoogleFS, HDFS). Visokozmogljivo in visokoprepustno računanje s porazdeljenimi gručami.
• Podatkovno vodeno paralelno računanje.
Metode poučevanja in učenja
• Predavanja: pri predavanjih študentje spoznajo teoretične vsebine predmeta. Predavanja se izvajajo kot klasična predavanja v frontalni obliki z diskusijo ob primerih uporabe konceptov paralelnega in porazdeljenega programiranja.
• Seminarske vaje: pri seminarskih vajah se študentje seznanijo s potekom računalniških vaj.
• Računalniške vaje: pri računalniških vajah študentje uporabljajo usvojeno znanje na konkretnih programskih problemih.
Predvideni študijski rezultati - znanje in razumevanje
Po zaključku tega predmeta bo študent sposoben:
• izkazati znanje in uporabiti porazdeljene računalniške sisteme in paralelne računalniške sisteme,
• izkazati razumevanje paralelnih programov in načrtovati paralelni program,
• identificirati, opisati in analizirati situacije, kjer so potrebne aktivnosti paralelnega in/ali porazdeljenega računanja.
Predvideni študijski rezultati - Prenosljive/ključne spretnosti in drugi atributi
• Spretnosti komuniciranja: ustni zagovor laboratorijskih vaj, pisno izražanje pri pisnem izpitu.
• Uporaba informacijske tehnologije: iskanje informacij na svetovnem spletu in uporaba programskih orodij za potrebe paralelnega procesiranja.
• Reševanje problemov: načrtovanje in implementacija paralelnih programov.
Temeljni literatura in viri
• Coulouris, G. F., Dollimore, J., Kindberg, T., & Blair, G. (2012). Distributed systems: concepts and design (5th ed., International ed., p. 1063). Addison-Wesley.
• Hwang, K., Fox, G. C., & Dongarra, J. (2012). Distributed and cloud computing: from parallel processing to the Internet of things (p. XXII, 648). Morgan Kaufmann.
• Bĺażewicz, J. (Ed.). (2000). Handbook on parallel and distributed processing (p. X, 635). Springer.
• Pacheco, P. S. (2011). An introduction to parallel programming (p. XIX, 370). Morgan Kaufmann.
• McCool, M. D., Robison, A. D., & Reinders, J. (2012). Structured parallel programming: patterns for efficient computation (p. XXVI, 406). Elsevier; Morgan Kaufmann.
• Tanenbaum, A. S., & Steen, M. van. (2007). Distributed systems: principles and paradigms (2nd ed., p. XVIII, 686). Pearson Prentice Hall.
• Grama, A. (2003). Introduction to parallel computing (2nd ed., p. XX, 636). Pearson / Addison-Wesley.
Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti
Pogojev ni.
Podrobnosti o izvedbi in ocenjevanju Pisni izpit se lahko nadomesti s kolokviji v enakem deležu 50 %.