Запуск приложений с определенным количеством задействованных ядер

Перейти вниз

Запуск приложений с определенным количеством задействованных ядер

Сообщение автор Akm16 в Вт Фев 26, 2013 4:33 pm

Запуск приложений с определенным количеством задействованных ядер

Вы хотите для конкретного приложения/программы выставить определенное количество задействованных ядер вместо всех имеющихся (применимо для многоядерных процессоров)?

Тогда все что Вам понадобиться Вы сможете узнать из этой статьи.

Возможности многоядерных процессоров обычно используются для ускорения обработки данных, т.к. при обработке данных обычно все ядра участвуют в обработке одних и тех же данных в один и тот же момент. Каждое из ядер берет на себя долю общей работы и выполняет её, после завершения все ядра возвращают комбинированный результат обработки. За счет такой обработки информации и достигается ускорение работы приложений/программ.

Оказывается что возможности многоядерных процессоров не всегда могут быть полезными и некоторые программы могут работать иногда не так как это было задумано ещё без использования многоядерных возможностей. Но все же есть решение подобных проблем и заключается оно в установке для приложения нужного количества ядер которые будут задействованы при работе приложения/программы которое сведет к минимуму "общение" между ядрами для ускорения обработки и обработка будет происходить так как если бы у вас было только одно ядро или больше. Например использую подобный подход Вы сможете к примеру на четырех-ядерном процессоре установить четырем приложениям/программам по одному задействованному ядру и получится что в один момент процессор будет исполнять четыре приложения, по одному приложению на каждое ядро не смешиваю работу другого ядра со своей. Иными словами можно сказать так: "Ты первое ядро, делай - это, но не делай то что делает второе/третье/четвертое ядро. Ты второе ядро, делай - это, но не делай то что делает первое/третье/четвертое, и так далее".

Интересно? Тогда приступим к решению поставленной задачи.

Вы сможете установить настройки работы ядер процессора для любого запускаемого приложения ".exe" которое не относится к приложениям самой операционной системе (которые идут в комплекте с ОС и не предназначены для использования пользователем). Эти настройки могут действовать на постоянной основе при условии что настройки будут сохранены. Метод работает для ОС на базе NT (Windows NT, 2000, XP, 2003, Longhorn/Vista).
Для этого Вам понадобиться программа IMAGECFG.EXE которую вы сможете найти на CD-диске "Windows NT 4.0" в папке "\support\debug\i386" или IMAGECFG.EXE с диска "Windows 2000 Server Resource Kit Supplement One".

Если в наличии у Вас нет дисков, ссылки на скачивание доступны в конце этой статьи. Программа является абсолютно бесплатной.

Если этот файл у Вас есть, тогда нужно поместить в папку %systemroot%\system32
Сделав это Вы сделаете эту команду системной и запустить её можно будет без ввода полного пути к программе, а просто введя название файла.

ВНИМАНИЕ: Эта программа модифицирует код заголовка приложения (.exe файла) которое Вы хотите запускать с определенным количеством задействованных ядер. Поэтому, рекомендуется делать резервную копию оригинальных файлов приложений (.exe файлов) которые вы собираетесь модифицировать. Если вы этого не сделаете, то для того чтобы вернуть все как было до изменения параметров используемых ядер, Вам понадобиться снова внести изменения в программу и указать чтобы она использовала все доступные ядра.

Например, у нас есть программа SomeProgram.exe, нам нужно чтобы она использовала два ядра из четырех возможных и перед тем чтобы внести изменения нам нужно сделать резервную копию программы SomeProgram.exe.
Код:
copy "C:\Program Files\SomeProgram.exe" "C:\Program Files\SomeProgram_backup.exe"
imagecfg -a 0x4 "C:\Program Files\SomeProgram.exe"
Аргумент -a при запуске программы imagecfg нужен для того чтобы указать новую маску CPU (количество задействованных ядер) и имеет фиксированные значения которые позволяют выбирать поддержку от 0 до 31 рабочего ядра.

Маски CPU:
0 = 0x1
1 = 0x2
2 = 0x4
3 = 0x8
4 = 0x10
5 = 0x20
6 = 0x40
7 = 0x80
8 = 0x100

И так далее, думаю последовательность вы увидели, но думаю что это скорее всего не понадобиться.

Ссылки на скачивание ImageCFG.exe:
Download from Dropbox
Скачать с EX.UA (Только украинский трафик)


avatar
Akm16
Admin

Сообщения : 242
Оценка : 733
Карма : 0
Дата регистрации : 2012-02-26
Возраст : 27
Откуда : Отсюда

Посмотреть профиль http://firgo.ru

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения