Главная страница
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
6-1253185020
bvv
2009-09-17 14:57
2012.03.11
Проблема с потоками сканирования


3-1272650997
YanKl
2010-04-30 22:09
2012.03.11
bde,paradox. Связь одной таблицы с двумя родительскими


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


6-1253363408
DmitriyG.
2009-09-19 16:30
2012.03.11
TIdHTTP заменяет = на ?


2-1322608424
vit196sh
2011-11-30 03:13
2012.03.11
Помогите с несложной программой пожалуйста)))