Paralelno programiranje

Opis predmeta

Predmet ukazuje na potrebu za razvojem algoritama koji su u stanju iskoristiti sve veći potencijal dostupne računalne moći u obliku velikog broja raspoloživih računala. Upoznaju se principi razvoja paralelnih algoritama. Predstavalju se odgovarajući modeli paralelnih računala i paradigme paralelnih programa. Opisano je korištenje tehnologija razvoja paralelih algoritama u raznim računalnim okruženjima. Posebna pažnja se posvećuje mogućnosti razvoja modularnih paralelnih programa namijenjenih za rad u složenijem paralelnom sustavu.

Opće kompetencije

Studenti se upoznaju s postojećim modelima paralelnih računala i načinima paralelnog programiranja. Upoznaje se model sinkronog paralelnog računala te algoritmi za taj model. Studenti će moći primijeniti općeniti postupak razvoja paralelnog programa uz postizanje željenih svojstava algoritma. Kroz praktičan rad studenti stječu iskustvo u razvoju paralelnih aplikacija i upoznaju se sa programskim alatima za njihovu izradu. Studenti provode kvantitativnu analizu algoritma koja omogućava odabir odgovarajuće metodologije prije implementacije te analizu učinkovitosti gotovog programskog proizvoda.

Ishodi učenja

  1. opisati modele paralelnih računala i paralelnog programiranja
  2. opisati model PRAM računala
  3. primijeniti model PRAM računala u paralelnom programiranju
  4. primijeniti MPI tehnologiju za razvoj paralelnih programa
  5. prepoznati faze oblikovanja paralelnog algoritma
  6. kombinirati elemente razvoja paralelnog algoritma
  7. ocijeniti učinkovitost i prilagodljivost paralelnog algoritma

Oblici nastave

Predavanja

Nastava na predmetu organizirana je u dva nastavna ciklusa. Prvi ciklus sastoji se od 7 tjedana nastave i međuispita, a adrugi ciklus od 6 tjedana nastave i završnog ispita. Nastava se provodi kroz ukupno 15 tjedana.

Provjere znanja

Međuispit. Završni ispit.

Konzultacije

Raspored konzultacija bit će objavljen na prvom predavanju

Programske vježbe

Programski se rješavaju zadaci u 4 laboratorijske vježbe.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Domaće zadaće 0 % 12 % 0 % 0 %
Prisutnost 0 % 3 % 0 % 0 %
Međuispit: Pismeni 0 % 35 % 0 %
Završni ispit: Pismeni 0 % 50 %
Ispit: Pismeni 50 % 50 %
Ispit: Usmeni 50 %
Napomena / komentar

Sve domaće zadaće trebaju biti predane (bez obzira na broj bodova) kao preduvjet polaganja predmeta

Tjedni plan nastave

  1. Modeli paralelnih računala. Paradigme paralelnih programa. Svojstva paralelnih programa. Pretvorba slijednog u paralelni program.
  2. MPI - Message Passing Interface standard
  3. Model sinkronog paralelnog računala sa zajedničkom memorijom (PRAM).
  4. Algoritam zbroja prefiksa. Primjene algoritma.
  5. Asinkrono paralelno računalo (APRAM). Složenost modela i programa.
  6. Općeniti postupak oblikovanja paralelnih algoritama. Faze oblikovanja.
  7. Podjela algoritma. Definiranje komunikacijske strukture.
  8. (Međuispit)
  9. Aglomeracija zadataka u paralelnom programu. Pridruživanje zadataka procesorima.
  10. Primjeri oblikovanja paralelnih algoritama.
  11. Principi evolucijskih i genetskih algoritama. Postupci paralelizacije genetskog algoritma. Izvedbe paralelnih evolucijskih programa.
  12. Kvantitativna analiza paralelnog algoritma. Ocjene performansi algoritma.
  13. Analiza prilagodljivosti paralelnog algoritma. Provjera modela i implementacije algoritma.
  14. Razvoj modularnih paralelnih programa. Podrška modularnom programiranju unutar MPI standarda.
  15. (Završni ispit)

Studijski programi

Sveučilišni diplomski
Programsko inženjerstvo i informacijski sustavi (profil)
Predmeti specijalizacije profila (2. semestar)
Računalno inženjerstvo (profil)
Predmeti specijalizacije profila (2. semestar)
Računarska znanost (profil)
Predmeti specijalizacije profila (2. semestar)

Literatura

I. Foster (1995.), Designing and Building Parallel Programs, Addison-Wesley
J. Reif (ed.) (1993.), Synthesis of Parallel Algorithms, Morgan Kaufmann
W. Gropp, E. Lusk, A. Skjellum (1999.), Using MPI, 2nd ed., MIT Press

Izvedba

ID 34524
  Ljetni semestar
4 ECTS
R1 Engleski jezik
R1 E-učenje
30 Predavanja
0 Auditorne vježbe
0 Laboratorijske vježbe

Ocjenjivanje

88 izvrstan
75 vrlo dobar
63 dobar
50 dovoljan