Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.11;
Скачать: 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 вся ветка

Текущий архив: 2012.03.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
15-1321469110
wl
2011-11-16 22:45
2012.03.11
На хабрахабре открыта регистрация


15-1321134248
Кто б сомневался
2011-11-13 01:44
2012.03.11
Ктонить из форумчан хочет поиграть в Left4Dead2 или другие игры?


1-1286692304
Lex_!
2010-10-10 10:31
2012.03.11
Работа с элементами IE


11-1223651817
WebBrowserHater
2008-10-10 19:16
2012.03.11
Вопрос о KOLWebBrowser


15-1321475403
Юрий
2011-11-17 00:30
2012.03.11
С днем рождения ! 17 ноября 2011 четверг