traitement multitâche simultané
Le traitement multitâche simultané est la capacité d'un seul processeur physique à distribuer simultanément des instructions à partir de plusieurs contextes d'unité d'exécution matérielle. Etant donné qu'il existe deux unités d'exécution matérielles par processeur physique, des instructions supplémentaires peuvent être exécutées en même temps.
Le traitement multitâche simultané vous permet de tirer parti de la nature superscalaire du processeur en planifiant deux applications en même temps sur le même processeur. Aucune application ne peut saturer complètement le processeur.
Bénéfice de Multithreading simultané
Elle est principalement bénéfique dans les environnements commerciaux où la vitesse d'une transaction individuelle n'est pas aussi importante que le nombre total de transactions effectuées. Le traitement multitâche simultané est censé augmenter le débit des charges de travail avec des jeux de documents volumineux ou fréquemment modifiés, tels que les serveurs de base de données et les serveurs Web.
Les charges de travail qui présentent le plus grand avantage de traitement multitâche simultané sont celles dont le nombre de cycles par instruction (CPI) est élevé. Ces charges de travail ont tendance à utiliser mal les ressources processeur et mémoire. Les ICP de grande taille sont généralement dues à des taux d'échec de cache élevés provenant d'un jeu de documents de grande taille. Les charges de travail commerciales importantes dépendent quelque peu du fait que les deux unités d'exécution matérielles partagent des instructions ou des données, ou que les unités d'exécution matérielles soient complètement distinctes. Les charges de travail commerciales importantes présentent généralement cette caractéristique. Les charges de travail qui partagent des instructions ou des données, y compris celles qui s'exécutent de manière intensive dans le système d'exploitation ou au sein d'une seule application, peuvent voir les avantages accrus du traitement multitâche simultané.
Les charges de travail qui ne bénéficient pas beaucoup du traitement multitâche simultané sont celles dans lesquelles la majorité des unités d'exécution logicielles individuelles utilisent une grande quantité de ressources dans le processeur ou la mémoire. Par exemple, les charges de travail à virgule flottante intensives sont susceptibles de ne pas tirer grand profit du traitement multitâche simultané et sont celles qui risquent le plus de perdre des performances. Ces charges de travail utilisent fortement les unités à virgule flottante ou la bande passante de la mémoire. Les charges de travail avec un CPI faible et des taux d'échec de cache faibles peuvent présenter un petit avantage.
Les mesures effectuées sur une partition dédiée avec des charges de travail commerciales ont indiqué une augmentation de 25% à 40% du débit. Le traitement multitâche simultané doit faciliter le traitement des partitions de traitement partagé. Les unités d'exécution supplémentaires donnent une impulsion à la partition une fois que le traitement multitâche simultané est réparti car la partition récupère son jeu de documents plus rapidement. Par la suite, les unités d'exécution fonctionnent comme elles le feraient dans une partition dédiée. Bien que cela puisse être quelque peu contre-intuitif, le traitement multitâche simultané est plus efficace lorsque les performances du cache sont les plus mauvaises.
Définition du mode à l'aide de la commande smtctl
AIX vous permet de contrôler le mode de la partition pour le multithreading simultané avec la commande 'smtctl Avec cette commande, vous pouvez activer ou désactiver le traitement multitâche simultané à l'échelle du système, immédiatement ou lors du prochain amorçage du système. Le mode traitement multitâche simultané est conservé lors des amorçages du système. Par défaut, AIX active le traitement multitâche simultané.
smtctl [ -m { off | on } [ { -boot | -now } ] ]Hardware Management Console Configuration pour Multithreading simultané
Lorsque vous configurez des partitions de processeur partagé sur la console Hardware Management Console , vous spécifiez le nombre minimal, souhaité et maximal de processeurs virtuels. Pour les partitions dédiées, vous spécifiez le même type de paramètres, mais la terminologie du processeur est différente. Pour les partitions dédiées, les processeurs sont toujours appelés processeurs.
Les deux modèles de partitionnement nécessitent que vous spécifiez une plage de processeurs qui contrôlent l'affectation d'amorçage et d'exécution des processeurs à la partition. Si possible, le paramètre de processeur souhaité est accordé au démarrage du système. Si cela n'est pas possible, POWER Hypervisor choisit une valeur différente en fonction de l'ensemble de ressources disponibles qui est supérieure ou égale à la valeur minimale.
Le nombre de processeurs spécifié sur la console HMC a un impact sur le nombre de processeurs logiques alloués par AIX . Si la partition est compatible avec le traitement multitâche simultané, AIX alloue deux fois plus de processeurs logiques que la valeur maximale car il existe deux unités d'exécution matérielles par processeur et AIX configure chaque unité d'exécution matérielle en tant que processeur logique distinct. Cela permet à AIX d'activer ou de désactiver le traitement multitâche simultané sans réamorçage de la partition.
Partitionnement logique dynamique pour Multithreading simultané
Pendant qu'une partition est en cours d'exécution, vous pouvez modifier le nombre de processeurs affectés à une partition via des procédures de partitionnement logique dynamique (DLPAR) sur la console HMC. Vous pouvez ajouter ou supprimer des processeurs dans les limites de la plage de processeurs définie pour la partition. Lorsqu'un processeur est ajouté à une partition qui est activée pour le traitement multitâche simultané, AIX démarre les unités d'exécution matérielles et deux processeurs logiques sont mis en ligne. Lorsqu'un processeur est supprimé d'une partition activée pour le traitement multitâche simultané, AIX arrête les deux unités d'exécution matérielles et deux processeurs logiques sont mis hors ligne.
Deux événements DLPAR sont générés lorsque le traitement multitâche simultané est activé. Un événement est généré pour chacun des processeurs logiques ajoutés ou supprimés. L'API pour les scripts DLPAR est basée sur des processeurs logiques, de sorte que le nombre d'événements DLPAR est équivalent à l'ajout et à la suppression de processeurs logiques. Si le traitement multitâche simultané n'est pas activé dans la partition, il n'y a qu'un seul événement DLPAR. AIX convertit automatiquement la demande DLPAR envoyée depuis la console HMC en nombre approprié d'événements DLPAR présentés aux applications DLPAR.
Micro-partitionnement et multithreading simultané
POWER Hypervisor™ sauvegarde et restaure tous les états de processeur nécessaires lors de la préemption ou de la répartition de processeurs virtuels. Pour les processeurs activés pour le traitement multitâche simultané, cela signifie deux contextes d'unité d'exécution actifs. Chaque unité d'exécution matérielle est prise en charge en tant que processeur logique distinct par AIX. Pour cette raison, une partition dédiée créée avec un processeur physique est configurée par AIX en tant que processeur logique bidirectionnelle. Etant donné qu'elle est indépendante du type de partition, une partition partagée avec deux processeurs virtuels est configurée par AIX en tant que processeur logique à 4 voies et une partition partagée avec quatre processeurs virtuels est configurée par AIX en tant que processeur logique à 8 voies. Les unités d'exécution appariées sont toujours planifiées ensemble en même temps dans la même partition.
La capacité de traitement partagée est toujours fournie en termes de processeurs physiques entiers. Sans traitement multitâche simultané, AIX configure une partition de processeur virtuel à 4 voies avec 200 unités d'autorisation d'utilisation de processeur en tant que partition de processeur logique à 4 voies où chaque processeur logique a la puissance de 50% d'un processeur physique. Avec le traitement multitâche simultané, la partition de processeur logique à 4 voies devient une partition de processeur logique à 8 voies, où chaque processeur logique a une puissance approximative de 25% d'un processeur physique. Toutefois, avec le traitement multitâche simultané, les problèmes de temps d'attente normalement associés à la capacité fractionnaire d'un processeur virtuel ne s'appliquent pas de manière linéaire aux unités d'exécution. Etant donné que les deux unités d'exécution sont réparties ensemble, elles sont actives pendant la durée d'une fenêtre de répartition de 50% et elles partagent le processeur physique sous-jacent pour atteindre les 25% logiques. Cela signifie que chacun des processeurs logiques est capable de faire des interruptions de champ pendant deux fois plus longtemps que leurs capacités individuelles le permettent.
Priorités des unités d'exécution matérielles
Le processeur permet d'affecter des priorités aux unités d'exécution matérielles. La différence de priorité entre les unités d'exécution apparentées détermine le rapport des emplacements de décodage de processeur physique alloués à chaque unité d'exécution. Un plus grand nombre d'emplacements offre de meilleures performances d'unité d'exécution. Normalement, AIX gère les unités d'exécution apparentées avec la même priorité, mais augmente ou diminue les priorités d'unité d'exécution dans les emplacements clés afin d'optimiser les performances. Par exemple, AIX réduit les priorités d'unité d'exécution lorsque l'unité d'exécution effectue des tâches non productives en tournant dans la boucle d'inactivité ou sur un verrou de noyau. Les priorités d'unité d'exécution sont émises lorsqu'une unité d'exécution détient un verrou de noyau critique. Ces ajustements de priorité ne sont pas conservés en mode utilisateur. AIX ne prend pas en compte la priorité de répartition d'une unité d'exécution logicielle lorsqu'il choisit la priorité d'unité d'exécution matérielle.
Le travail est réparti entre toutes les unités d'exécution principales avant d'être distribué aux unités d'exécution secondaires. Les performances d'une unité d'exécution sont meilleures lorsque l'unité d'exécution associée est inactive. L'affinité des unités d'exécution est également prise en compte dans le vol d'inactivité et dans l'équilibrage de charge de la file d'attente d'exécution périodique.