Вниз
Скачать: CL | DM;

потоки и ядра   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.005 c
2-1322641073
_qwerty_
2011-11-30 12:17
2012.03.11
работа с bookmark


2-1322552557
YURY
2011-11-29 11:42
2012.03.11
Потоки


1-1288777384
ArtemKolesnikov
2010-11-03 12:43
2012.03.11
OLE Word. Как вставить формулу со знаком корня?


15-1321734602
Юрий
2011-11-20 00:30
2012.03.11
С днем рождения ! 20 ноября 2011 воскресенье


2-1322581917
toropoff
2011-11-29 19:51
2012.03.11
потоки и ядра




   Наверх