Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ограничение нагрузки на систему 
:(
    Опции темы
ourbig
Дата 16.9.2014, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.8.2014

Репутация: нет
Всего: нет



Добрый день.
В программе есть функция производящая тяжёлые вычисления. Вся задача разбивается на подзадачи которые выстраиваются в очередь. Есть рабочие потоки число которых равно числу ядер в процессоре. Эти потоки читают задания из очереди и производят расчёт. В такой конфигурации нагрузка всегда 100%, надо как то позволить пользователю ограничивать нагрузку на систему. Первое что пришло в голову это замерять время выполненеия одной итерации расчёта в потоке и между ними вставлять паузы соответственно необходимому снижению нагрузки, например если время простоя == времени расчёта то наверно загрузка будет 50% (если интервалы достаточно короткие). Может кто то подскажет ещё какие-нибуть идеи?
Заранее спасибо.
PM MAIL   Вверх
Guinness
Дата 16.9.2014, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 21.6.2009
Где: Зеленоград

Репутация: нет
Всего: 10



Цитата(ourbig @  16.9.2014,  16:31 Найти цитируемый пост)
В такой конфигурации нагрузка всегда 100%, надо как то позволить пользователю ограничивать нагрузку на систему. 

Цитата(ourbig @  16.9.2014,  16:31 Найти цитируемый пост)
 Может кто то подскажет ещё какие-нибуть идеи?

1) Использовать для вычисления таких задач не пользовательскую машину.
2) Попробовать задействовать меньшее количество ядер.
PM MAIL   Вверх
NoviceF
Дата 17.9.2014, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: нет
Всего: 2



Самый дубовый способ вставлять слипы, и на первый взгляд не вижу в этом способе ничего плохого smile
Как вариант могу предложить определять загруженность процессора не на основе твоего приложения, а, например, на основе времени выполнения Idle процесса. Чем больше процессорного времени он потребялет за определённый интервал - тем меньше загруженность процессора.
PM MAIL   Вверх
sQu1rr
Дата 17.9.2014, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Как вариант, можно управлять загрузкой внешне:
Linux: http://cpulimit.sourceforge.net/
Windows: http://technet.microsoft.com/en-us/library/ff384148.aspx
Уверен что то же самое можно и на другие системы нарыть
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0759 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.