Opis kratkog kursa
Message Passing Interface (MPI) je moćan standard za paralelno programiranje, omogućavajući programerima da pišu skalabilne i efikasne aplikacije za sisteme distribuirane memorije. Ovaj dvodnevni kurs je osmišljen da polaznike upozna sa osnovama MPI programiranja, opremivši ih znanjem i praktičnim vještinama potrebnim za razvoj paralelnih aplikacija. Kroz interaktivne sesije, praktične vježbe i primjere iz stvarnog svijeta, učesnici će steći čvrstu osnovu u MPI konceptima, sintaksi i tehnikama implementacije. Bilo da ste novi u paralelnom programiranju ili želite da poboljšate svoje vještine, ovaj kurs će vam pružiti osnovne alate za iskorištavanje moći MPI-a za računanje visokih performansi.

Sadržaj kursa
Dan 1: Osnove MPI programiranja
- Sesija 1: Uvod u paralelno računanje i osnove MPI
- Pregled paralelnog računarstva
- Uvod u MPI i njegovu arhitekturu
- Sesija 2: Komunikacija od tačke do tačke
- Razumijevanje prosljeđivanja poruka
- MPI operacije slanja i primanja
- Praktični primjeri komunikacije od tačke do tačke
- Sesija 3: Kolektivne komunikacijske operacije
- Uvod u kolektivnu komunikaciju
- Emitujte, raspršite, skupite i smanjite operacije
- Praktične vježbe sa kolektivnom komunikacijom
- Sesija 4: Otklanjanje grešaka i profilisanje MPI programa
- Uobičajene tehnike otklanjanja grešaka za MPI programe
- Alati za profilisanje i analizu performansi
Dan 2: Napredni koncepti i aplikacije
- Sesija 1: Napredne komunikacijske tehnike
- Neblokirajuća komunikacija (MPI_Isend, MPI_Irecv)
- Sinhronizacija i barijere u MPI
- Sesija 2: Topologije procesa i virtuelizacija
- Kartezijanske i grafske topologije u MPI
- Efikasno preslikavanje procesa na hardver
- Sesija 3: Razvoj paralelnih aplikacija sa MPI
- Dizajniranje paralelnih algoritama koristeći MPI
- Studije slučaja aplikacija u stvarnom svijetu
- Sesija 4: Najbolje prakse i budući pravci u MPI programiranju
- Optimizacija performansi u MPI programima
- Budući trendovi u paralelnom programiranju
Ishodi učenja
Do kraja ovog kursa polaznici će moći da:
- Razumeju osnovne koncepte paralelnog računanja i ulogu MPI-a u sistemima distribuirane memorije.
- Pišu osnovne MPI programe koristeći operacije od tačke do tačke i kolektivne komunikacije.
- Otklanjaju grešaka, profilisanje i optimizacija MPI aplikacija za poboljšane performanse.
- Projektuju i razvijaju skalabilne paralelne aplikacije koristeći najbolje prakse u MPI programiranju.