Какое количество процессов даст мне лучшую производительность? - PullRequest
3 голосов
/ 14 июня 2010

Я сейчас делаю несколько дорогих расчетов.Это одна программа, в которой я запускаю несколько экземпляров одновременно.Я запускаю их под Linux на машине с 4 процессорами по 6 ядер в каждом.Процессор - Intel Xeon X5660, поддерживающий гипертартинг.(Это какое-то безумное оборудование, да?) Сейчас я запускаю 24 процесса одновременно.Было бы лучше запустить больше, б / с HT?

Ответы [ 4 ]

4 голосов
/ 14 июня 2010

Не думай, мери

обновление

Как долго кусок веревки?

1 голос
/ 14 июня 2010

Первое измерение - это хорошая идея, но вы также можете рассмотреть следующее:

  • Если процессы могут блокироваться (особенно при вводе-выводе), больше из них, вероятно, лучше.
  • Если процессы большую часть времени выполняют математику, вы можете воспользоваться HyperThreading с большим количеством процессов.
  • С другой стороны, если процессы имеют какое-либо общее состояние (память или файлы), слишком многоони увеличат конкуренцию и разрушение кэша.
0 голосов
/ 14 июня 2010

Я собирался напечатать почти точно то, что написал Виктор, поэтому вместо него у меня +1.

Я хотел бы добавить, что при переключении контекста процессы накладывают больше затрат, чем потоки.

Если ваша прикладная архитектура позволяет это, рассмотрим один процесс с несколькими потоками или, возможно, N процессов с M потоками каждый, где N и M определяются путем сравнительного анализа.

0 голосов
/ 14 июня 2010

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

Вам действительно необходимо выполнить некоторые настройки времени / профилирования своего решения.Тем не менее, в первую очередь вам нужно иметь возможность настроить количество потоков / процессов, которые вы запускаете одновременно.

Получив это, вы можете настроить сценарий, запустить его и измерить результат.

Повторите для различных значений и посмотрите, какие из них работают лучше всего.

...