Opis kratkog kursa
Paralelno računarstvo je osnova modernog računarstva visokih performansi, omogućavajući izvršavanje složenih proračuna podelom zadataka na više procesora. Ovaj dvodnevni kurs pruža sveobuhvatan uvod u paralelno računarstvo, pokrivajući paradigme dijeljene i distribuirane memorije. Učesnici će istražiti osnovne principe paralelizma, naučiti modele programiranja kao što su OpenMP i MPI i steći praktično iskustvo u dizajniranju paralelnih aplikacija. Bilo da ste početnik ili želite da proširite svoje razumevanje paralelnog računarstva, ovaj kurs će vas opremiti alatima i tehnikama za efikasno iskorištavanje moći višejezgrenih i distribuiranih sistema.

Sadržaj kursa
Dan 1: Osnove paralelnog računarstva
- Sesija 1: Uvod u paralelno računanje
- Pregled koncepta paralelnog računarstva
- Vrste paralelizma: zadatak, podaci i cevovod
- Arhitektura dijeljene memorije u odnosu na distribuiranu
- Sesija 2: Modeli programiranja za paralelno računanje
- Pregled OpenMP (dijeljena memorija) i MPI (distribuirana memorija)
- Ključne razlike i slučajevi upotrebe za svaki model
- Sesija 3: Osnove programiranja zajedničke memorije sa OpenMP-om
- Uvod u OpenMP direktive i sintaksu
- Paralelne regije, dijeljenje posla i konstrukcije sinhronizacije
- Sesija 4: Osnove programiranja distribuirane memorije sa MPI
- Uvod u MPI komunikacijski model
- Osnove komunikacije od tačke do tačke (slanje/primanje).
Dan 2: Napredne teme u paralelnom računarstvu
- Sesija 5: Napredne OpenMP tehnike
- Model zadataka, ugniježđeni paralelizam i upravljanje nitima
- Podešavanje performansi sa politikama planiranja
- Sesija 6: Napredne MPI tehnike
- Kolektivne komunikacijske operacije (emitovanje, raspršivanje, prikupljanje)
- Neblokirajuća komunikacija i topologije procesa
- Sesija 7: Najbolje prakse u paralelnom računarstvu
- Dizajniranje skalabilnih, efikasnih i održivih paralelnih programa
- Sesija 8: Studije slučaja
- Realne primjene paralelnog računarstva u različitim domenima
Ishodi učenja
Do kraja ovog kursa polaznici će moći:
- Shvate osnovne koncepte paralelnog računarstva i njegovu važnost u sistemima visokih performansi.
- Razlikuju modele programiranja dijeljene memorije (OpenMP) i distribuirane memorije (MPI).
- Pišu osnovne paralelne aplikacije koristeći OpenMP za sisteme dijeljene memorije i MPI za distribuirane memorijske sisteme.
- Dizajniraju skalabilna paralelna rješenja za probleme iz stvarnog svijeta koristeći najbolje prakse u paralelnom programiranju.