Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top