Zdravim,
mám jeden dotaz. Dělám skript jako úkol, co zkouší pralelizovat hledání v souborech. Respektivě jde o porovnání sériového a paralélního přístupu. Používám modul multiprocessing. Pokud s ním má někdo zkušenosti, tak bych potřeboval pomoc.
Program vytvoří čtyři subprocesy spojené frontou z modulu multiprocessing. Ve frontě jsou cesty k souborům. Každý subproces si vždy vyzvedne jednu cestu, soubor otevře, prohledá, když najde co potřebuje, zapíše do druhé fronty a hledá dál. Takhle ty subprocesy pracují dokud je něco v té první frontě. Na konci se vše vypíše. Problém je v tom, že to není deterministické. Při prvním spuštění se to chová divně. Při druhém a dalším, jsou evidentně v OS ty soubory co se mají zpracovat už nakešované a program už běží standardně. Při prvním spuštění, kdy asi vše musí číst z disku tak to vrací různý počet nalezní nebo se třeba jeden subproces ani nepustí. Při dalším kmitaj všechny a vrací to už stejné výsledky srovnatelné s sériovým prohledáváním. Nevím jestli to nějak pohnojí to že to nestíhá číst z disku ale zámky a semafory tam mám a evidentně fungují, protože při dalším spuštění to jede normálně. Pokud by někdo tušil, tak se prosím ozvětě. Pošlu i pak zdrojáky.