Многоядерное кодирование - PullRequest
       4

Многоядерное кодирование

0 голосов
/ 09 сентября 2011

Я пишу это приложение на c ++, которое использует потоки Boost и SFML для использования сокетов TCP и UDP.У меня процессор Xeon с 4 кодами, но кажется, что я использую только 1 ядро.Как я могу получить доступ к полному 4 ядрам?

1 Ответ

1 голос
/ 11 сентября 2011

Назначение потоков зависит от используемой вами ОС.Также, пожалуйста, скажите, что вы подразумеваете под "но похоже, что я использую только 1 ядро".

Однако вы можете провести некоторые исследования:

  1. Проверьте boost hardware_concurency ()
  2. Если вы используете Windows, есть хорошая программа, которая покажет вам, сколько потоков запущено в вашем приложении, какой поток связан с конкретным ядром HW и использованием (щелкните вкладку свойств и потоков):http://technet.microsoft.com/en-us/sysinternals/bb896653

  3. Какую работу фактически выполняют ваши темы?Возможно, у вас есть какое-то состояние гонки, такое как истечение потоков и т. Д.

  4. AFAIK Нет смысла создавать несколько потоков для отправки некоторых данных только потому, что все данные передаются через драйвер ядра и сериализуются вконец.

BR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...