

SW na - generátor permutací - multithreading
Existuje nějaký sw, který mi ze zadaného stringu vytvoří všechny permutace a uloží je do txt?
Ideální by bylo, aby běžel nějak vláknově..
Nevíte o něčem?
Díky za rady.
jak si ta vlákna představuješ?
Nakonec budeš stejně omezen I/O přístupem do toho výstupního souboru.
Šlo by to, pokud by se zapisovaly celé bloky vždy, když vlákno doběhne.
Představit si to dovedu.
Vytvoří se vlákno, které dostane k výpočtu blok. Do paměti si bude ukládat permutace. Po skončení se pak zapíše výsledek do souboru a vlákno dostane další blok.
neříkám, že by to nešlo, ale i tak si myslím, že byť jeden thread bude "výkonnější" než libovolný HDD.
Počítám s průměrnou rychlostí zápisu okolo 50MB/s, což je pří řekněme 1024písmenném řetězci cca 50000 zapsaných permutací za sekundu, což opět znamená, že jeden thread by musel vygenerovat řádově méně; osobně si myslím, že u běžných CPU a použití standardního algoritmu, který je relativně triviální a bez nutnosti použít rozhodovací větvení, viz https://cs.wikibooks.org/wiki/Java/Algoritmy/V%C3% BDpo%C4%8Det_permutrac%C3%AD ), bude největší problém právě I/O.
Ale samozřejmě můžu se mýlit, je to pouze víceméně kvalifikovaný odhad.
Tento algoritmus by při 1024 znakovém řetěczi IMHO vyžral RAM daleko dříve, než by doběhl...
Vzhladom na to ze ten disk bude pomlasi jak 1core generujuci tie permutacie, tak nepotrebujes hladat multithread aplikaciu. Hladaj akukolvek aplikaciu.
(btw. len by pri zapise mala pouzivat overlapped (asynchronne) pristupy na disk, nech to zbytocne necaka na dozapisovanie).