SLO | EN

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

• Michael J. Quinn: Parallel programming in C with MPI and OpenMP, McGraw-Hill, 2003. • A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing: Design and Analysis of Algorithms, Second Edition, Addison Wesley, New York, 2003. • Anthony Williams: C++ Concurrency in Action, Practical Multithreading, Manning Publications, 2012. • A. S. Tanenbaum, M. van Steen: Distributed Systems: Principles and Paradigms, Second Edition, Pearson Prentice Hall, Upper Saddle River, NJ, USA, 2006. • B. Schmidt, J. Gonzalez-Dominguez, C. Hundt in M. Schlarb: Parallel programming: concepts and practice. Morgan Kaufmann, USA, 2017.

Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti

Pogojev ni.

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

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

  • : 30
  • : 30
  • : 90

  • slovensko
  • slovensko

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