SASGIS - SACS.Планета
View Issue Details
0001895SACS.Планета[All Projects] Хотелкаpublic24-04-2013 22:4509-08-2013 15:13
vasketsov 
vasketsov 
normalminorN/A
closedfixed 
WindowsVistaUltimate
 
.Nightly130803 
0001895: Назначение процессора для рабочего потока
Суть доработки довольно проста: для рабочего потока указывается (кроме всего потенциально прочего) битовая маска процессоров, где он может выполняться. И он там тут же начинает выполняться. Но при этом необходимо уметь вернуть как было, то есть чтобы маска соответствовала маске процесса.
Сделано для рабочих потоков по выделенной области. В интерфейс вытащено пока только для тех, которые работают по простому окошку прогресса (удаление, экспорт,...), не для скачки. В выпадающем списке - доступные процессоры.
Выбираем - и наблюдаем профит в TaskManager.
Когда надоест насилие и 100% загруженность ядра - нажимаем на выпадающем списке Backspace - список сбрасывается - маска возвращается на прежнее место - ядра используются равномерно. Наступает реальный профит.
1. При сильной необходимости можно добавить маски для всех ядер конкретного проца.
2. Потенциально можно прикрутить и для всех потоков вообще.
No tags attached.
Issue History
24-04-2013 22:45vasketsovNew Issue
24-04-2013 22:45vasketsovAssigned To => vasketsov
24-04-2013 22:45vasketsovStatusnew => assigned
25-04-2013 10:52vasketsovNote Added: 0011211
06-05-2013 20:41vasketsovNote Added: 0011312
06-05-2013 20:42vasketsovStatusassigned => resolved
06-05-2013 20:42vasketsovFixed in Version => .Nightly
06-05-2013 20:42vasketsovResolutionopen => fixed
09-08-2013 14:59vasketsovFixed in Version.Nightly => 130803
09-08-2013 15:13vasketsovStatusresolved => closed

Notes
(0011211)
vasketsov   
25-04-2013 10:52   
Немножко переделал, чтобы настройка работала и на многопроцесорных тачках, и на однопроцессорных с мультигирперядерным тредингом (по крайней мере в теории).

Выпадающий список с процами доступен а формах:
а) запуска рабочих потоков по выделенной области;
б) простого прогресса операции.

В списке Pn - это физический проц с номером n, а Ln - логический проц с номером n. Нумерация с нуля.

На осях до WinXPsp3 физический отображается только один - так что там P1 не будет.

Из нетривиального: если конфигурация P0,L0,L1, и был выбран для выполнения потока L1, то чтобы потом сбросить маску - надо нажать Backspace, а не P0, так как выбор физического проца не меняет маску. То же самое если физических больше одного.
(0011312)
vasketsov   
06-05-2013 20:41   
Добавил к менеджеру кэша, на этом закрываю.