Однопроцессорные программы, работающие на Hyper-Threading-enabled четырехъядерный процессор

Я исследователь в области статистического распознавания образов, и я часто запускаю симуляции, которые выполняются в течение многих дней. Я использую Ubuntu 12.04 с Linux 3.2.0-24-generic, который, как я понимаю, поддерживает многоядерность и гиперпоточность. С моим четырехъядерным процессором Intel Core i7 Sandy Bridge с HTT я часто запускаю 4 симуляции (программы, которые занимают много времени) одновременно. Прежде чем я задам свой вопрос, вот то, что я уже (думаю, что) знаю.

  • Моя ОС (Ubuntu 12.04) обнаруживает 8 ЦП из-за гиперпоточности.
  • Планировщик в моей ОС достаточно умен, чтобы никогда не планировать выполнение двух программ на двух логических (виртуальных) ядрах, принадлежащих одному физическому ядру, поскольку ОС поддерживает SMP (одновременную многопоточность).
  • Я прочитал страницу Википедии о Hyper-Threading.
  • Я прочитал страницу HowStuffWorks на Sandy Bridge.

Хорошо, мой вопрос таков. Когда я запускаю 4 симуляции (программы) на своем компьютере одновременно, каждая из них работает на отдельном физическом ядре. Однако из-за гиперпоточности каждое физическое ядро ​​разделено на два логических ядра. Следовательно, правда ли, что каждое из физических ядер использует только половину своей полной мощности для запуска каждой из моих симуляций?

Заранее большое спасибо. Если какая-либо часть моего вопроса не ясна, пожалуйста, дайте мне знать.

13
задан Ray 22 May 2012 в 20:10
поделиться