Как вручную распределять задачи между ядрами процессора?

в т.ч. когда часть ядер - виртуальные
 

Fakir

BlueSkyDreamer
★★★
На машине проц 2-хядерный, причём в нём 4 виртуальных ядра.
По идее, можно как-то распределить задачи по ядрам - скажем, чтобы на трёх ядрах крутилась какая-то числодробилка в фоновом режиме, сколько ей нужно, а одно ядро полностью оставалось для вебсерфа без тормозов.
Но - КАК?!

Как это сделать вообще, и как бы сделать получше?
Средствами винды, или какой-то специальный софт есть?
 3.6.33.6.3
+
-
edit
 

Balancer

администратор
★★★★☆
Fakir> По идее, можно как-то распределить задачи по ядрам - скажем, чтобы на трёх ядрах крутилась какая-то числодробилка в фоновом режиме, сколько ей нужно, а одно ядро полностью оставалось для вебсерфа без тормозов.

Дык, достаточно просто числодробилку пустить с низким приоритетом. Тогда сёрфинг получит сколько ему нужно и без задержек, а пока ты читаешь топик - в фоне все 4 ядра будут молотить числа.
 
+
-
edit
 

Fakir

BlueSkyDreamer
★★★
А всё-таки чтобы полностью распределить по ядрам - никак?
 3.6.33.6.3
+
-
edit
 

Balancer

администратор
★★★★☆
Fakir> А всё-таки чтобы полностью распределить по ядрам - никак?

Этой задачей целиком управляет ОС. Не знаю, как Windows, а Linux - вообще один и тот же процесс постоянно с ядра на ядро перекидывает, достигая более равномерной загрузки.

Приложение, в общем случае, боюсь никак этим моментом управлять не может. Разве что запустить строго 3 параллельных процесса, тогда оно займёт ровно три из четырёх ядер. Но эти три ядра будут постоянно меняться.
 
+
-
edit
 

Wyvern-2

координатор
★★★☆
☠☠
Fakir> Но - КАК?!
Fakir> Как это сделать вообще, и как бы сделать получше?

Приоритетами. Еще видел софтинку такую - но, говорят, она глючная.
Еще неплохо почитать вот от сюда - ТЫЦ
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  3.6.133.6.13

Vale

Сальсолёт

Что-то мне вспоминается матерное слово ProcessAffinityMask ;)
"Не следуй за большинством на зло, и не решай тяжбы, отступая по большинству от правды" (Исх. 23:2)  

Mishka

модератор
★★☆
Fakir> На машине проц 2-хядерный, причём в нём 4 виртуальных ядра.
Гугли CPU Affinity, processor affinity. Обычно, задача должна это делать. Но иногда можно и внешиними средствами. Например, в лине есть такое волшебное слово, как taskset, во фряхе cpuset. У виндов есть API вызова http://msdn.microsoft.com/en-us/library/ms686247%28VS.85%29.aspx и http://msdn.microsoft.com/en-us/library/ms686223%28VS.85%29.aspx. Если в виндах хочеться другому процессу присвоить, то почитать тут — How To Set Processor Affinity To An Application In Windows 7,Vista,XP или тут — High temps on AMD Phenom X3



CPU Affinity | Linux Journal

The ability in Linux to bind one or more processes to one or more processors, called CPU affinity, is a long-requested feature. The idea is to say “always run this process on processor one” or “run these processes on all processors but processor zero”. The scheduler then obeys the order, and the process runs only on the allowed processors. // www.linuxjournal.com
 

http://info.borland.com/devsupport/bes/faq/.../perf/cpu_scaling.html
 3.6.133.6.13
+
+1
-
edit
 

TheFreeMan

втянувшийся

Fakir> А всё-таки чтобы полностью распределить по ядрам - никак?

in Windows:

Task Manager -> Processes -> Right Click on Process -> Set Affinity.
 9.0.597.849.0.597.84

Kuznets

Клерк-старожил

Fakir> На машине проц 2-хядерный, причём в нём 4 виртуальных ядра.
Fakir> По идее, можно как-то распределить задачи по ядрам - скажем, чтобы на трёх ядрах крутилась какая-то числодробилка в фоновом режиме, сколько ей нужно, а одно ядро полностью оставалось для вебсерфа без тормозов.
Fakir> Но - КАК?!

никак, если ты так хочешь. можно только по физическим ядрам (имхо). в диспетчере задач - процессы - правой мышкой - задать соответствие. и так каждый раз после запуска. можно вроде в ярлыке для программы задать как-то. я давно для локона так делал но уже забыл как, думаю в инете легко найти.
 9.0.597.849.0.597.84
Это сообщение редактировалось 06.02.2011 в 17:42
+
-
edit
 

Fakir

BlueSkyDreamer
★★★
О, точно - в русской винде это "Соответствия".
 3.6.33.6.3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru