Question

Je remarque quand je lance mes programmes Python dépend fortement du processeur, il utilise uniquement un seul noyau. Est-il possible d'affecter plusieurs cœurs au programme quand je le lance?

Était-ce utile?

La solution

Vous devez programmer explicitement pour plusieurs noyaux. Voir les options sur cette page pour les nombreuses solutions de traitement parallèle en Python. Parallel Python est un bon choix si vous ne pouvez pas être pris la peine de comparer les options, regardez les exemples ici .

Certains problèmes ne peuvent pas tirer profit de plusieurs noyaux bien. Pensez à la façon dont vous pourriez courir les escaliers plus rapidement avec l'aide de trois amis. Ne va pas arriver!

Autres conseils

Si une partie de votre problème peut être exécuté en parallèle, vous devriez regarder dans le le module multiprocessing

Je me demande pourquoi personne n'a mentionné GIL de CPython (Global Interpreter Lock) encore. Cela signifie essentiellement que plusieurs threads à l'intérieur d'un interpréteur Python ne peut pas utiliser la puissance de plusieurs noyaux parce que de nombreuses opérations sont protégées par un verrou global pour être thread-safe. Ceci ne concerne que une petite quantité d'applications - les CPU lié. Pour plus d'informations, il suffit de chercher le terme « GIL », il y a déjà beaucoup de questions à ce sujet (comme que l'on , par exemple).

Cette réponse suppose bien sûr que vous êtes en fait à l'aide de plusieurs threads, ou bien vous ne serez pas en mesure d'utiliser plusieurs cœurs de toute façon ( multitraitement serait une autre possibilité).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top