Назначение нескольких ядер для программы Python - PullRequest
6 голосов
/ 23 декабря 2010

Я замечаю, что когда я запускаю свои сильно зависимые от процессора программы Python, он использует только одно ядроМожно ли назначить программе несколько ядер при запуске?

Ответы [ 3 ]

15 голосов
/ 23 декабря 2010

Вы должны явно программировать для нескольких ядер.См. Параметры Symmetric Multiprocessing на на этой странице , чтобы узнать о многих решениях параллельной обработки в Python. Parallel Python - хороший выбор, если вы не можете сравнить варианты, посмотрите примеры здесь .

Некоторые проблемы не могут использоватьхотя несколько ядер.Подумайте, как вы могли бы быстрее подняться по лестнице с помощью трех друзей.Не произойдет!

4 голосов
/ 23 декабря 2010

Интересно, почему никто еще не упомянул GIL (Global Interpreter Lock) CPython.Это в основном означает, что несколько потоков внутри одного интерпретатора Python не могут использовать мощность нескольких ядер, потому что многие операции защищены глобальной блокировкой, чтобы быть поточно-ориентированными.Это относится только к небольшому количеству приложений - связанных с процессором.Для получения дополнительной информации просто выполните поиск по слову «GIL», к нему уже есть много вопросов (например, этот ).

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

4 голосов
/ 23 декабря 2010

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

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