Форум: "Начинающим";
Текущий архив: 2012.03.11;
Скачать: [xml.tar.bz2];
Внизпотоки и ядра Найти похожие ветки
← →
toropoff (2011-11-29 19:51) [0]подскажите пожалуйста,
сделал например несколько потоков.
как определить сколько ядер в процессоре и как
бы разнести их выполнение на разные ядра?
прошу не пинать, полный нуб.
← →
Palladin © (2011-11-29 20:00) [1]Зачем тебе это? Система сама разберется.
← →
MBo © (2011-11-29 20:00) [2]SetThreadAffinityMask и далее по ссылкам
← →
Dennis I. Komarov © (2011-11-29 20:01) [3]Оставь сию работу окнам, они вряд ли хуже с этим справятся...
← →
Rouse_ © (2011-11-29 20:03) [4]Полноценно разнести не получится, можно лишь указать системе что для определенной нити желательно использовать определенное ядро через SetThreadAffinityMask, ну а дальше, как уже сказали - система сама разберется.
← →
toropoff (2011-11-29 20:11) [5]примерно понял, спасибо!
← →
Сергей М. © (2011-11-29 20:44) [6]Как пример:
var
pam, sam: DWord;
FSubThreadsCount: Integer;
..
procedure TNeuralNetExploit.CreateSubThreads;
function GetNonZeroBitCount(Mask: DWord): Integer;
const
m1 = $55555555;
m2 = $33333333;
m3 = $0F0F0F0F;
begin
Mask := (Mask and m1) + ((Mask shr 1) and m1);
Mask := (Mask and m2) + ((Mask shr 2) and m2);
Mask := (Mask + (Mask shr 4)) and m3;
Result := (Mask + (Mask shr 8) + (Mask shr 16) + (Mask shr 24)) and $3F;
end;
var
i,n: Integer;
begin
FSubThreadsCount := GetNonZeroBitCount(pam);
SetLength(FSubThreads, FSubThreadsCount);
SetLength(FSubThreadsEvents, FSubThreadsCount);
i := 0;
n := 1;
while i < FSubThreadsCount do
begin
while (n and pam) = 0 do
n := n shl 1;
..
FSubThreads[i] := TNNComputeThread.Create(..);
with FSubThreads[i] do
begin
SetThreadAffinityMask(Handle, n);
..
end;
n := n shl 1;
Inc(i);
end;
end;
..
initialization
GetProcessAffinityMask(GetCurrentProcess, pam, sam);
SetProcessAffinityMask(GetCurrentProcess, sam);
GetProcessAffinityMask(GetCurrentProcess, pam, sam);
end.
Разбирайся.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.03.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c