Author Topic: Программа использует слишком многтоков!  (Read 29449 times)

=MoRzE=

  • Guest
Мой core 2 QUAD пыхтит и тормозит когда работает эта программа из-за чего невозможно ее запускать в фоне например с игрой. Это единственная программа которой удатся так загрузить систему с ЧЕТЫРЕХЯДЕРНЫМ процессором! Причем изменение  приоритета ничего не дает. По моему она перегружает шину данных (это слабое место в таких системах, так как обмен данными между парами ядер идет через внешнюю шину, она начинает загибаться когда число потоков превышает 6). По моему идеальным вариантом было бы 2-3 потока, но не 10 же! А вообще прога супер! СПАСИБО!!!!!!

Admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 664
    • View Profile
    • https://www.smilarityapp.com
спасибо, за Ваше сообщение,
потоков должно быть 9, 1 gui, 4*2 пул потоков, все потоки в пуле имеет низкий приоритет, вероятней всего перегружается не проц, а жесткий диск пытаясь паралельно считывать несколько файлов.

=MoRzE=

  • Guest
Перегружается шина данных так как начинает тормозить видеокарта. Система при этом отвечает на действия довольно быстро. Симптомы спцфические например фильм в окне проигравается нормально а делаешь окно больше - тормозит. Игры тоже тормозят (тормоза равномерные как на слабом видео, появляются с периодичностью примерно 5 сек). Стоит видеокарта  GF 8800 GTS чипсет intel P965. Изменение приоритетов программ ровым счетом ничего не  дает,  как как уже и сказано виноват не процессор, а предположительно шина. Жесткий диск абсолюно не при чем, музыка на отдельном винте, на отдельном контроллере, а система стоит на дисковом массиве.

Просто при сегодняшней архитектуре железа более 4 потоков пускать совершенно ни к чему. 4*2 пул потоков - зачем столько??? На моей системе (Q6600) 8 потоков будут работать даже МЕДЛЕННЕЕ чем 4.
Чтобы было лучше понятно вот кусок из статьи по теме:


а именно:
Помимо тестирования скорости платформ с двухъядерными и четырёхъядерными процессорами, выполняющих несколько параллельных задач, мы задались целью выяснить и то, как повлияют на скорость ресурсоёмкого приложения, работающего "на переднем плане", фоновые процессы. Для этого мы измеряли число fps в популярной игре Quake 4, запуская в фоне несколько копий архиватора WinRAR.

На первый взгляд, результаты обескураживающие. Действительно, казалось бы, процессор с большим числом ядер должен обеспечивать более высокую производительность вне зависимости от числа приложений, работающих в фоновом режиме. Но на практике это оказывается совершенно не так. Если при небольшом числе фоновых процессов система с Kentsfield и показывает более высокие результаты, то увеличение их числа эту тенденцию не развивает. При шести и более высоком числе приложений, работающих в фоне, скорость игры, выполняемой на "переднем плане" операционной системы падает быстрее именно в системе с четырёхъядерным процессором.
Чтобы разобраться в причинах такого странного эффекта в первую очередь необходимо понимать, что снижение скорости игры от работающих в фоне архиваторов происходит в первую очередь отнюдь не за счет того, что фоновые процессы "отъедают" ресурсы CPU. Менеджер задач операционной системы Windows очень неплохо распределяет процессы, и все фоновые потоки отправляются на свободные от основной работы ядра. Однако помимо ресурсов собственно CPU фоновые задачи требуют доступа и к прочим подсистемам платформы, например к фронтальной шине и шине памяти. Именно это, очевидно, и губит быстродействие Kentsfield. Поскольку этот процессор состоит из двух различных полупроводниковых кристаллов, пересылка данных между ними выполняется через фронтальную шину и системную память. А WinRAR – это как раз многопоточное приложение, которое задействует несколько ядер одновременно. В результате, запуск этой утилиты в фоне приводит к тому, что какая-то часть шины памяти и фронтальной шины уходит на осуществление обмена данными между потоками одной копии программы. Поэтому, при исполнении на Kentsfield нескольких копий этой программы нехватка пропускной способности шины начинает ощущаться раньше, чем на Conroe, где обмен данными между ядрами выполняется через общий L2 кэш.

Такой же эффект дает и ваши 9 потоков Similarity.
Безусловно это косяк чегодняшних процессоров, но может быть столько потоков все таки ни к чему?

=MoRzE=

  • Guest
Я с первого запуска программы понял что она "непростая" (куллер загудел как ни в одной другой). А когда тормоза увидел, понял что потоков очень много. Впринципе у кого нестабильная система, некачественные крмпоненты  может и пеерегреться что нибудь и сгореть, тогда разьяренные юзеры начнут вас аттаковать =)))

=MoRzE=

  • Guest
за очепятки простите =) тороплюсь

=MoRzE=

  • Guest
Решил проблемму при помощи CPU Control 2.1 задал ее процессу 2 ядра из 4-х и все тормоза исчезли..