SLO | EN

Cilji in kompetence

Cilj predmeta je, da bodo študenti sposobni razumeti osnovne principe porazdeljenega in paralelnega računanja.

Vsebina

• Uvod: paralelni računalniški sistemi, porazdeljeni računalniški sistemi, heterogeno procesiranje. • Pohitritev (Amdahlov zakon), zmogljivost, skalabilnost paralelnih algoritmov in porazdeljenih sistemov. • Zasnova paralelnih računalniških sistemov: pomnilnik, omrežja, operacijski sistemi, večjederni procesorji, vhod in izhod. Paralelni arhitekturi SIMD in MIMD. • Principi paralelnega računanja: programski jeziki, prevajalniki, podatkovni in krmilnini paralelizem, dekompozicija podatkov, pošiljanje sporočil in deljeni pomnilnik. • Programiranje s pošiljanjem sporočil. Uvod v standard MPI in aplikacijski programski vmesnik OpenMP ter paralelnost v standardih C++. • Arhitektura grafičnih procesnih enot (GPE), paralelno računanje s pomočjo GPE. Splošno namensko računanje z GPE, spoznavanje tehnologij CUDA in OpenCL. • Omejitve in cena pri paralelnem programiranju. • Porazdeljeni sistemi: modeli porazdeljenega procesiranja, komunikacija in sinhronizacija v porazdeljenih sistemih, porazdeljeni podatkovni sistemi (GoogleFS, HDFS, HFS). Visokozmogljivo in visokoprepustno računanje s porazdeljenimi gručami in t.i. superračunalniki. Spoznavanje programskega modela MapReduce. • Podatkovno vodeno paralelno računanje. • Transakcije: lastnosti transakcij, metode zaklepanja, porazdeljene transakcije, smrtni objem.

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 heterogenega 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

Ni pogojev

  • red. prof. dr. JANEZ BREST, univ. dipl. inž. rač. in inf.

  • Računalniško delo: 50
  • Pisni izpit: 50

  • : 30
  • : 45
  • : 105

  • slovensko
  • slovensko

  • RAČUNALNIŠTVO IN INFORMACIJSKE TEHNOLOGIJE - 3.