Kratki kurs: Uvod u paralelno programiranje

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.

Paralelno programiranje je osnova modernog računarstva viskoih performansi

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.