4. gyakorlat
Összefésülés
Vizsgáljuk meg, hogy milyen módon párhuzamosítható az összefésülés algoritmusa!
Nézzük meg a merge nevű mintaprogram megoldását!
Termelő-fogyasztó probléma
VAR chan: CHANNEL OF INTEGER;
Készítsünk egy programot, amelyben egy Publisher egész számokat tesz közzé, majd a Subscriber annyi műveletet végez el, amennyi a kapott számértékben szerepel. (Azért annyit, hogy változatosak legyenek a számítási idők.) Tegyük fel, hogy összesen 5 ilyen üzenet lesz!
Módosítsuk a programot úgy, hogy két Publisher is van!
Módosítsuk a programot úgy, hogy két Subscriber fut párhuzamosan!
Kombináljuk az előző kettőt!
Pipeline párhuzamosítás
Vizsgáljuk meg a Fibonacci sorozat elemeit számító programot!
Készítsünk egy olyan programot, amelyik egy egész számnak kiszámítja a nála kisebb, legnagyobb osztóját, meghatározza annak a köbét, majd kiszámítja annak négyzetgyökét! Adjuk meg a programot szekvenciális és pipeline-al történő párhuzamosítás formájában! Írassuk ki az egyes részeredményeket futás közben!
Zárolási mechanizmusok
Készítsünk példát a Lost update problémára, majd javítsuk ki SPINLOCK segítségével!
Készítsünk olyan példát, amelyben a lock használata feleslegesen rontja a számítási teljesítményt! (Például tömb elemeihez való hozzáférés kapcsán.)
Nézzük meg a hisztogram és a közelítő integrál számításához tartozó párhuzamos algoritmusokat!