adf88 napisał(a)
Do czego jest ci to potrzebne ? Bo jeśli chcesz mieć pewność że jest to procesor dwurdzeniowy a nie np. dwa procesory albo procesor HTT.
Do przerobienia pewnego algorytmu zeby sie wykonywal wspolbierznie na wielu rdzeniach (1...n). Potrzebna mi wiedza o ilosci wiedzy zebym mogl odalac odpowiednia ilosc watkow jednoczesnie.
adf88 napisał(a)
to musisz porównać jego model z jakąś bazą w której będziesz miał spisane wszystkie dwurdzeniowe modele. A na rynek wychodzą coraz to nowe modele i baza musiała by być aktualizowana.
Takie rozwiazanie odpada.
adf88 napisał(a)
Systemowi operacyjnemu nie robi różnicy czy fizycznie jest to jeden dwurdzeniowy, czy dwa jednordzeniowe, czy jeden udający dwa (HTT). Liczy się to, że funkcjonalnie są to 2 logiczne procesory.
Mi robi roznice, HTT nie osiagnie takiej wydajnosci jak 2 czy 4 rdzeniowy procek a w przypadku odpalenia 2 watkow algorytmu moze nawet spowolnic.
adf88 napisał(a)
Funkcja GetProcessAffinityMask wywołana z parametrem 0 zwróci maskę bitową - każdy bit ustawiony na 1 oznacza jeden logiczny procesor. Tą maskę całą lub "odchudzoną" można użyć w funkcjach SetProcessAffinityMask/SetThreadAffinityMask.
Tu jest wlasnie pies pogrzebany. Patrz wyzej.