Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2011, 18:51   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию Запуск программы с различным числом тредов

Есть программа, которую можно запустить с разл. числом тредов, указывая его как параметр командной строки. Опыт показывает, что при 1 треде проц загружен на величину около 50%, при выборе 32 или 16 на все 100, при этом работать с компом почти невозможно.
Есть ли некое оптимальное число тредов, которое обычно советуется, чтобы было макс. быстродействие программы, и желательно, чтобы можно было еще и работать при этом?
motorway вне форума Ответить с цитированием
Старый 21.01.2011, 19:21   #2
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

Есть только совет от кэпа. На одном проце или одно ядерном проце быстрее всего работает 1 тред. Потому что в противном случае тратится время на синхронизацию. Вобщем по количеству процов и ядер выбирается количество тредов. Ну а вообще часто делаю графический интерфейс в одном треде а ядро в другом, чтобы не тормозило. Те всего 2 треда.
like-nix вне форума Ответить с цитированием
Старый 21.01.2011, 19:27   #3
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

Для того что бы ваша программа не кушала все время процессора можно потоку назначить меньший приоритет.
like-nix вне форума Ответить с цитированием
Старый 21.01.2011, 19:55   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Проц 2-ядерный, Вин7 64. Сейчас пробую с 32 тредами, не знаю, лучше ли чем-то это
motorway вне форума Ответить с цитированием
Старый 21.01.2011, 20:29   #5
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
Есть только совет от кэпа. На одном проце или одно ядерном проце быстрее всего работает 1 тред.
Нет. На деле всё может быть иначе!
Как-то проводил эксперименты: при 2 потоках на 2-ядерном компе моя софтина считала медленнее, чем при 3. Почему — не знаю.
Вон для сборки программ в Linux советуют делать make -j(количество ядер+1), то есть запускать на 1 поток компиляции, чем ядер у компа.
Вот тут первый ответ очень грамотно дан: http://stackoverflow.com/questions/1...reads-per-core
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 21.01.2011 в 20:33.
Obey-Kun вне форума Ответить с цитированием
Старый 21.01.2011, 20:36   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Как-то проводил эксперименты: при 2 потоках на 2-ядерном компе моя софтина считала медленнее, чем при 3. Почему — не знаю.
должно быть три потока на двух ядернике.
один это ГУИ, два других это расчеты.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.01.2011, 20:40   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Программа чисто консольная, делает перебор серьезный, памяти мало занимает относительно. Из вывода - показывает текущее значение одной переменной
motorway вне форума Ответить с цитированием
Старый 21.01.2011, 21:02   #8
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Цитата:
должно быть три потока на двух ядернике.
один это ГУИ, два других это расчеты.
это совсем не обязательно. всё зависит от преследуемых целей.
и расчёты на двухядернике не обязательно быстрее будут при 2 потоках, возможно на 3 или даже на 30.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск программы cyberandom Помощь студентам 4 07.11.2010 20:59
По поводу тредов и консоли Malkovich Win Api 2 13.10.2009 15:24
Как Вы относитесь к различным видам рекламы на Сайтах? Izhic Свободное общение 12 01.05.2009 12:30
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33