Dekuji za reakce. Je to software MS-DIAL z Japonska
http://prime.psc.riken.jp/compms/msdial/main.htmlC++ / .NET, ale prepisuje se na ostatni platformy. Ucel programu je hledani, srovnavani, pocitani, zobrazovani dat.
Cas: pri male nalozi dat se HW limity nepozoruji, ale pri vysokem vykonu (vice vstupnich dat nez je k dispozici vlaken, jednotky milionu zaznamu v db), nekdy nestiha. Vnejsi omezeni nejsou.
Vykon na jedno vlakno lze jen castecne simulovat na virtualnim stroji. Pocet pouzitelnych vlaken se definuje na pevno. VCPU se nechova jako CPU nebo jako vlakno, takze se spatne predikuje, jestli koupit Threadripper.
Pokud je program zaseklý a nevidíte ani přetížení disku, ani zaplnění ram a ani vytížení CPU - ani v userspace (proces programu) ani systemspace (kernel), pak program buď na něco čeká (síť, zámky na disku...) nebo hnije synchronizace mezi vlákny (která se blokují...). Pak nepomůže hrát si s hardware, je potřeba nejdříve dosáhnout plného vytížení počítače a ideálně vyváženého - IO, RAM, CPU.
To je ta zahada - vseho ma dost, ta cast procesu je jen jednoprocesorova, nacita do pameti, a pak proste nekdy prestane a nekdy dobehne do konce.
Muzete prosim doporucit nejaky profiler? Nejlepe takovy, ktery se da pouzit v linuxu i ve Windows. Jiz drive jsme u podobneho softwaru dosli k zaveru, ze multithreading funguje jen u Intelu a ne u AMD (asi kvuli instrukcnim sadam), protoze na AMD platforme padal s chybou o neuspesnem navazani vlaken pri n=64+.
Idealne abych mohli zjistit, co nefunguje pro nase pouziti, a pozadat autora, aby to vcas behem portovani opravil.