программы, парализующие друг друга на сервере (c ++ с openMP и python) - PullRequest
1 голос
/ 09 июня 2011

У меня срочная проблема, потому что у меня заканчивается время: я позволяю своим вычислениям работать на сервере с 8 ядрами, поэтому я использую openMP в своем коде c ++, и он работает нормально.Конечно, я не единственный, кто использует сервер, поэтому моя мощность не всегда 800% CPU.

Но теперь несколько раз случалось так, что кто-то, кто запускал свою прогу python на машине, полностью парализовал мою и свою прогу: хотя я все еще использовал около 500% CPU, код работал приблизительно.100 раз медленнее - для меня и другого парня. У вас есть идея, в чем причина, как ее предотвратить?

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

Для этого может быть несколько причин, например:

  • Увеличение частоты отказов в прогнозе ветвления
  • Исчерпание кеша ЦП
  • Заполнениешина памяти
  • Слишком большое переключение контекста (это влияет на многие вещи, включая все предыдущие точки)
0 голосов
/ 14 июня 2011

Как перечислил Эмиль Викстрём, есть несколько причин, которые могут вызвать такой паралич.Я мог бы решить проблему, включив динамическую настройку количества доступных потоков:

omp_set_dynamic(1);

Я предположил, что он включен по умолчанию.Это не так.

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