Preskoči na glavno vsebino

Porazdeljeni sistemi

2026/2027
Program:
Interdisciplinarni univerzitetni študijski program 1. stopnje Računalništvo in matematika
Letnik:
3 letnik
Semester:
prvi
Vrsta:
izbirni
ECTS:
6
Jezik:
slovenski
Nosilec predmeta:

Uroš Lotrič

Ure na teden – 1. semester:
Predavanja
3
Seminar
0
Vaje
2
Laboratorij
0
Vsebina

1. Arhitektura vzporednih sistemov.

2. Sočasnost, procesi in niti: prepletanje, vzporedenje, vrstni red izvajanja, preklapljanje med nitmi.

3. Delo z nitmi: ustvarjanje, pridruževanje, težave.

4. Sočasen dostop do skupnih podatkov: tvegano stanje in medsebojno izključevanje, atomične operacije.

5. Sinhronizacija dogodkov: smrtni objem, pogojne spremenljivke, pregrada.

6. Vzorci: semaforji, izdelovalec-porabnik, bralci in pisatelji, bazen nalog.

7. Večnitnost v praksi: varno delo z nitmi, prednosti večnitnih programov, modeli večnitnih programov

8. Arhitektura grafičnih pospeševalnikov.

9. Programiranje grafičnih pospeševalnikov.

10. Porazdeljeni sistemi: prednosti in izzivi, mrežni protokoli, sistemi odjemalec-strežnik, klicanje oddaljenih funkcij (RPC).

11. Modeli sistemov in napake: sinhroni, delno sinhroni in ne sinhroni, odpoved sistema, napake in odpornost na napake, bizantinske napake in problem dveh generalov.

12. Čas in razvrščanje dogodkov: fizične ure, univerzalni čas, sinhronizacija in polzenje časa, protokol NTP, vzročnost.

13. Logični čas: Lamportova ura, vektorske ure, protokol širjenja informacij.

14. Podvajanje in sklepčnost: konsistentnost replik, branje po pisanju, podvajanje z avtomati stanj, podvajanje z voditeljem.

15. Soglasje: izbiranje voditelja, algoritem Raft.

16. Porazdeljeni sistemi na primerih iz prakse: soglasje, vzročno širjenje, dvostopenjsko potrjevanje.

Temeljni literatura in viri
  1. P.S. Pacheco. An Introduction to Parallel Programming, Morgan Kaufman, 201
  2. V. Alessandrini, Shared Memory Application Programming, Concepts and strategies in multicore application programming, Morgan Kaufmann, 2016.
  3. B.R. Gaster et al. Heterogeneous computing with OpenCL. Morgan Kaufmann, 201
  4. A.S. Tanenbaum and M. van Steen. Distributed systems, 3rd edition, CreateSpace Independent Publishing Platform, 2017.
  5. G. Couloris et al. Distributed Systems: Concepts and Design. Pearson, 2012.
Cilji in kompetence

Razumeti temeljne koncepte in načela vzporednih in porazdeljenih sistemov s stališča računalniške arhitekture, algoritmov in programskih modelov, razviti spretnosti in tehnike za načrtovanje, vzpostavitev in testiranje vzporednih in porazdeljenih aplikacij z uporabo izbranih programskih jezikov in orodij, znati oceniti smiselnost uporabe različnih modelov in pristopov za doseganje želenega cilja, uporabiti pridobljeno znanje o vzporednih in porazdeljenih sistemih za reševanje pogostih problemov in izzivov.

Predvideni študijski rezultati

Po uspešnem zaključku predmeta bo študent poznal tipične vzporedne in porazdeljene računalniške sisteme. Pri vzporednih sistemih bo imel poglobljeno znanje o delu z nitmi, znal bo identificirati probleme v večnitnih aplikacijah in jih razreševati z uporabo znanih konceptov. Poznal bo orodja, ki jih izbrani programski jeziki ponujajo za nadzor nad delovanjem niti in bo sposoben oceniti vpliv različnih pristopov na robustnost, zmogljivost in pravilnost delovanja aplikacije. Spoznal se bo z arhitekturo grafičnih pospeševalnikov in konceptom razbremenitve glavnega procesorja pri njihovem programiranju. Poznal bo arhitekture porazdeljenih sistemov in vpliv mrežne povezave na njihovo delovanje ter različne programske modele in abstrakcije, kot je protokol RPC, in njihovo uporabo v izbranih programskih jezikih. Razumel bo koncepte kot so logični čas in vzročnost in odpornost na napake. Spoznal bo pristope k replikaciji podatkov ter algoritme za določanje soglasja in izbiranje voditelja.

Metode poučevanja in učenja

Predavanja, seminarji, laboratorijske vaje, projektno delo na laboratorijskih vajah, individualne domače naloge.

Načini ocenjevanja

Način (ustno izpraševanje, domače naloge, projektno delo):

Domače naloge

Ustni izpit
Ocene: 6-10 pozitivno, 5 negativno
(v skladu s Statutom UL).

Reference nosilca
  1. SILVA, Catarina, LOTRIČ, Uroš, RIBEIRO, Bernardete, DOBNIKAR, Andrej. Distributed text classification with an ensemble kernel-based learning approach. IEEE trans. syst. man cybern., Part C Appl. rev., May 2010, vol. 40, 287-297
  2. CANKAR, Matija, ARTAČ, Matej, ŠTERK, Marjan, LOTRIČ, Uroš, SLIVNIK, Boštjan. Co-allocation with collective requests in grid systems. Journal for universal computer science, 2013, vol. 96, 282-300
  3. LOTRIČ, Uroš, PILIPOVIĆ, Ratko, BULIĆ, Patricio. A hybrid radix-4 and approximate logarithmic multiplier for energy efficient image processing. Electronics. May 2021, vol. 10, 1-20
  4. PILIPOVIĆ, Ratko, BULIĆ, Patricio, LOTRIČ, Uroš. A two-stage operand trimming approximate logarithmic multiplier. IEEE transactions on circuits and systems. I, Regular papers. Jun. 2021, vol. 68, 2535-2545
  5. PILIPOVIĆ, Ratko, RISOJEVIĆ, Vladimir, BOŽIČ, Janko, BULIĆ, Patricio, LOTRIČ, Uroš. An approximate GEMM unit for energy-efficient object detection. Sensors. Jun. 2021, vol. 21, 1-19 Celotna bibliografija je dostopna na SICRIS: https://bib.cobiss.net/biblioweb/biblio/si/slv/cris/16109