Cieľ: vyskúšať si spoluprácu procesov cez členstvo v skupine. Group funkcie:
bariéra, reduce, scatter, gather, join, leave, broadcast,
gsize. Program trsg (the r s g).
Skopírujte si celý adresár ~dobrucky/group
(2 súbory) niekam k sebe, trebárs tiež priamo do domovského adresára.
Skontrolujte súbor Makefile
(- nastavte si cestu kam budete ukladať object subory a
vykonateľné programy pre PVM).
Skompilujte príkazom make
na všetkých typoch architektúr. (ssh stroj "cd group;make")
Naštartujte PVM (stačí na jedinom stroji - arrakis) a vykonajte skompilovaný
program trsg.
Úloha- otázky:
- k čomu je potrebná synchronizácia cez bariéru? Skúste ju zakomentovať a
vysvetlite, aká chyba môže nastať. (Podľa manuálu k funkcii
pvm_reduce treba procesy synchronizovať explicitne. Musí byť
stabilný počet členov v skupine, pokiaľ root neukončí reduce.)
- kedy inokedy dochádza k synchronizácii procesov?
Poznámka: ak group server nebeží na arrakis-ovi, tak budú problémy, keďže sa
navzájom nevidia sc a slc.
Po skončení zmažte nepotrebné binárky!
(make clean)
Taktiež zastavte PVM démonov! (pvm> halt)
Podrobné informácie o algoritme a pôvodné zdrojové kódy nájdete v inštalácii
PVM ($PVM_ROOT/gexamples/trsg.c) alebo aj tu).
K nim bolo vhodné spraviť nejaký Makefile.