Anonim

La plupart des ordinateurs Windows sont désormais équipés de processeurs multicœurs et les versions récentes de Windows divergent automatiquement la puissance de traitement totale de votre ordinateur pour s'adapter au mieux à vos applications et à vos jeux en cours d'exécution. Mais parfois, l'utilisateur et Windows peuvent avoir des idées différentes en ce qui concerne le choix de l'utilisation optimale de la puissance du processeur d'un PC. Les utilisateurs avancés peuvent ainsi limiter manuellement certaines applications ou certains processus à certains cœurs de processeur, grâce à une fonctionnalité appelé Processor Affinity . Voici comment le faire.
En ce qui concerne les versions grand public de Windows, la possibilité pour un utilisateur de configurer manuellement l'utilisation par une application de cœurs de processeur spécifiques remonte à la période Windows XP / 2000, bien que les étapes diffèrent légèrement d'une version à l'autre de Windows. Pour les étapes et les captures d'écran, nous utilisons Windows 10, mais les lecteurs exécutant d'anciennes versions de Windows, en particulier Windows 7 et Windows 8 / 8.1, devraient pouvoir suivre les étapes de base malgré de légères différences par rapport à l'interface utilisateur Windows.
Avant de commencer, il est également important de noter que la modification de l'affinité du processeur pour un processus ou une application donnés peut entraîner des problèmes de stabilité, ce qui risque de dégrader les performances des applications et des jeux multithreads modernes. Par conséquent, assurez-vous d’abord d’expérimenter avec des applications et des données non cruciales, puis enregistrez toutes les tâches en cours ou la progression du jeu avant de modifier les paramètres décrits dans ce document, car il est possible que l’application ou le système se bloque.

Pourquoi limiter l'accès d'une application aux cœurs de processeur?

Comme indiqué ci-dessus, la plupart des utilisateurs voudront que Windows gère automatiquement la puissance de traitement du PC, en s'assurant que les applications pouvant utiliser tous les cœurs ont accès à ces dernières. Cela se traduit généralement par de meilleures performances. La principale question est donc de savoir pourquoi un utilisateur voudrait limiter ou restreindre une application à plusieurs threads donnée à un nombre inférieur à la quantité totale de cœurs physiques et logiques disponibles sur un PC.
Il existe deux réponses de base à cette question: 1) pour assurer la compatibilité et les performances avec les logiciels plus anciens, et 2) pour exécuter un bourrelet de processeur par ailleurs très threadé tout en réservant suffisamment de ressources pour effectuer simultanément d'autres tâches.
Nous allons commencer par la première réponse: compatibilité et performance. Certaines applications et certains jeux Windows ont été codés bien avant que les processeurs multithreads et multicœurs au niveau du consommateur ne deviennent une réalité. Les créateurs de jeux plus anciens, en particulier, n'auraient peut-être jamais imaginé qu'une personne jouant au jeu aurait autre chose qu'un PC Windows alimenté par un seul cœur de processeur haute fréquence. Lorsque des logiciels de cette époque rencontrent des processeurs modernes contenant quatre, six, huit ou même plus de cœurs, cela peut parfois entraîner des problèmes de performances, voire l'impossibilité de lancer le programme.
Bien entendu, de nombreuses applications et jeux fonctionnent correctement, même avec les tout derniers processeurs monstrueux à 8 cœurs / 16 threads. Mais si vous essayez de jouer à un jeu ancien et que vous rencontrez des problèmes, utiliser l'affinité processeur pour restreindre manuellement le processus du jeu à un seul de vos nombreux cœurs peut être une bonne étape de dépannage.
La deuxième réponse est probablement plus utile pour un plus grand nombre d’utilisateurs de Windows, et elle constituera la base de nos instructions pas à pas ci-dessous. Alors que de nombreuses applications Windows, en particulier les jeux, ne peuvent toujours pas tirer parti de plus d’un ou deux cœurs, les applications de création de contenu telles que les encodeurs vidéo et les outils de rendu 3D ont été optimisées au cours des dernières années pour pouvoir utiliser chaque once de puissance de traitement disponible. votre PC peut leur lancer. Vous voulez généralement que ces applications aillent aussi vite que possible, mais parfois la vitesse ou le temps de traitement ne sont pas le facteur principal, et vous préférez laisser une partie de la puissance de traitement de votre PC disponible pour une autre tâche pendant que votre application multimédia exigeante s'exécute dans le logiciel. Contexte. C'est là que l'affinité du processeur est vraiment utile.

Pas à pas: notre exemple

Une application pouvant absorber tous les cœurs de processeur que vous lui lancez est un encodeur vidéo x264 tel que RipBot264 (ou HandBrake, ou n’importe lequel des nombreux outils d’encodeur disponibles, x264 et x265). Dans notre exemple, nous souhaitons que RipBot264 code un fichier vidéo, mais nous souhaitons également travailler simultanément sur d’autres projets dans des applications telles que Photoshop et Premiere.

Par défaut, une application telle que RipBot264 utilisera toute la puissance de traitement disponible.

Si nous commençons notre codage RipBot264, puis Photoshop et Premiere, Windows fera de son mieux pour hiérarchiser et répondre aux besoins de chaque application, mais Windows commettra également une erreur occasionnelle, ce qui entraînerait des ralentissements ou des gels temporaires dans nos applications actives. Nous pouvons essayer d'éviter cela en utilisant l'affinité des processeurs pour limiter l'utilisation de nos cœurs de processeur par RipBot264.
Pour commencer, assurez-vous d’abord que vous êtes connecté à un compte utilisateur Windows doté des privilèges d’administrateur. Ensuite, lancez l'application que vous souhaitez restreindre. Dans notre cas, c'est RipBot264.
Ensuite, lancez le Gestionnaire des tâches Windows, soit en cliquant avec le bouton droit de la souris sur la barre des tâches et en sélectionnant Gestionnaire des tâches, soit en utilisant la combinaison de raccourcis clavier Ctrl-Maj-Échap . Par défaut, le Gestionnaire des tâches dans les versions récentes de Windows démarre dans une vue «de base». Si votre gestionnaire de tâches ne ressemble pas à celui de nos captures d'écran, cliquez sur Plus de détails pour afficher l'interface complète. Une fois que cela est fait, assurez-vous que vous êtes sur l'onglet «Processus» et trouvez maintenant votre application ou processus.
Cette dernière étape est potentiellement plus facile à dire qu'à faire. Dans de nombreux cas, vous trouverez simplement l'application souhaitée dans la liste. Dans d'autres cas, certaines applications peuvent utiliser des processus uniques en dehors du processus d'application principal pour certaines tâches. La clé consiste à rechercher le ou les processus responsables de l'utilisation de l'UC que vous souhaitez limiter. Un bon moyen de tester cela consiste à lancer l'activité exigeante (dans notre cas, commencez à coder un fichier vidéo), puis à trier le Gestionnaire des tâches par colonne d'UC pour rechercher les processus utilisant les niveaux de ressources d'UC les plus élevés. Si le nom du processus (encore une fois, dans notre cas, il s'agit d'un processus d'encodeur H.264) correspondant à votre application cible, vous êtes prêt.
Une fois le processus correct identifié, cliquez dessus avec le bouton droit de la souris et sélectionnez Aller aux détails . Cela vous mènera à l'onglet Détails du Gestionnaire des tâches et mettra automatiquement en évidence le processus correct.


Maintenant, cliquez à nouveau avec le bouton droit sur le processus et sélectionnez Définir l'affinité .

Une nouvelle fenêtre intitulée «Affinité du processeur» apparaît, remplie de cases à cocher et d'une liste numérotée de CPU, dont le nombre est basé sur le nombre total de cœurs physiques et logiques emballés dans votre CPU spécifique. Notre exemple de système utilise un processeur Intel Core i7-5960X, doté de huit cœurs hyperthreaded. Nous avons donc un total de 16 processeurs répertoriés dans notre fenêtre Processor Affinity.


Ensuite, il est temps de décider combien vous souhaitez restreindre votre application. Cliquez sur la case à cocher en regard de Tous les processeurs pour désélectionner toutes les boîtes de processeur, puis choisissez au moins une boîte de processeur à vérifier, chacune représentant un cœur physique ou logique. En l'absence de tout défaut de processeur ou de scénario d'overclocking unique, le choix des cœurs importe peu.


Dans notre exemple, nous voulons limiter le RipBot264 à quatre cœurs, ce qui laisse beaucoup de place à nos autres tâches plus urgentes. Une fois que vous avez sélectionné le nombre de cœurs souhaité, appuyez sur OK pour fermer la fenêtre Processor Affinity. Vos modifications prendront effet immédiatement et si l'application était déjà engagée dans une tâche gourmande en ressources processeur, l'utilisation de son processeur s'effondrera dans tous les cœurs sélectionnés.

Une fois que nous avons configuré RipBot264 pour n’utiliser que 4 de nos 16 cœurs, l’utilisation du processeur tombe immédiatement sur les cœurs restants.

Grâce à cette configuration, nous pouvons laisser RipBot264 encoder le plus rapidement possible sur ces quatre cœurs, mais les douze cœurs restants de notre système sont libres de gérer d'autres applications. Si nous finissons plus tard notre autre travail et voulons restaurer les performances complètes sur RipBot264, nous pouvons simplement répéter les étapes ci-dessus pour revenir à la fenêtre Affinité du processeur, puis cocher la case Tous les processeurs pour accorder à nouveau l'accès de l'application à tous nos processeurs. les noyaux.

Mises en garde

Outre les problèmes de stabilité mentionnés plus haut, vous devez également prendre en compte une autre réserve importante. Toutes les modifications apportées à l'affinité du processeur sont réinitialisées à chaque redémarrage du processus. Cela signifie qu'au minimum, vous devrez répéter ces étapes chaque fois que vous redémarrez votre PC. Certains processus sont encore plus gênants, car ils se rechargent automatiquement en fonction des instructions de l'application. Dans notre configuration RipBot264, par exemple, le processus de codage H.264 que nous avons modifié recommence chaque fois que l'application passe au codage d'un nouveau fichier vidéo.
Vous pourrez peut-être contourner cette limitation en créant des scripts personnalisés définissant l'affinité du processeur de votre application via un fichier de commandes ou un raccourci basé sur une ligne de commande, mais certaines applications peuvent utiliser des processus uniques ou aléatoires rendant ces efforts difficiles ou impossibles. Il est donc préférable d'expérimenter individuellement chaque application que vous souhaitez restreindre pour trouver le meilleur moyen de configurer manuellement l'affinité des processeurs.

Comment limiter les applications à des cœurs de processeur spécifiques avec affinité de processeur