Définir les affectations de pools

Définit les affectations de pool pour chaque processeur du système d'exploitation temps réel (RTOS) pour l'équilibrage automatique des charges.

1378

Entrées/Sorties

datatype_icon

pools de CPU

Pools d'affectation pour les différents processeurs du système.

Chaque élément du tableau représente un processeur. Les indices 0 - N du tableau correspondent aux indices 0 - N des processeurs.

System and Timed Structures Assigne le processeur à la fois au pool système et au pool de structures cadencées pour automatiser l'équilibrage de charge de tous les threads qui ne sont pas assignés manuellement à un processeur spécifique.
System Assigne le processeur au pool système pour l'équilibrage automatique des charges des threads autres que ceux des boucles cadencées.
Timed Structures Assigne le processeur au pool de structures cadencées pour l'équilibrage automatique des charges des threads des boucles cadencées.
Reserved Assigne le processeur à aucun pool. Le processeur est réservé aux boucles cadencées configurées pour une affectation de processeur manuelle.
datatype_icon

entrée d'erreur

Conditions d'erreur survenant avant l'exécution de ce nœud.

Le nœud répond à cette entrée avec le comportement d'erreur standard.

Standard Error Behavior

Default value: Pas d'erreur

datatype_icon

pools de CPU assignés

Affectation d'un pool à chaque processeur.

System and Timed Structures Le processeur est assigné à la fois au pool système et au pool de structures cadencées pour automatiser l'équilibrage de charge de tous les threads qui ne sont pas assignés manuellement à un processeur spécifique.
System Le processeur est assigné au pool système pour équilibrer automatiquement les charges des threads autres que ceux des boucles cadencées.
Timed Structures Le processeur est assigné au pool de structures cadencées pour équilibrer automatiquement les charges des threads de boucles cadencées.
Reserved Le processeur n'est assigné à aucun pool. Le processeur est réservé aux boucles cadencées configurées pour une affectation de processeur manuelle.
datatype_icon

masque système

Masque de bits correspondant aux affectations du pool système.

datatype_icon

masque de structures cadencées

Masque de bits correspondant aux affectations du pool de structures cadencées.

datatype_icon

sortie d'erreur

Informations sur l'erreur.

Le nœud produit cette sortie selon le comportement d'erreur standard.

Standard Error Behavior

Maximisation des performances des boucles cadencées déterministes

Vous pouvez maximiser les performances dans une boucle cadencée déterministe en assignant la boucle cadencée à un processeur à indice plus élevé qui est Reserved. Par exemple, si le système d'exploitation temps réel (RTOS) contient 4 noyaux de processeur indexés de 0 à 3, vous pouvez définir l'état du processeur 3 à Reserved et assigner la boucle cadencée déterministe au processeur 3.

Assigner les boucles cadencées déterministes à hautes performances à des processeurs à indice élevé minimise la latence car un RTOS implémente les boucles cadencées en commençant par le processeur d'indice supérieur, puis en décrémentant. Si le réveil de plusieurs boucles cadencées de même priorité est planifié au même temps, la latence de réveil des boucles cadencées qui s'exécutent sur les processeurs d'indices plus bas peut être supérieure de plusieurs microsecondes à celle des boucles qui s'exécutent sur les processeurs d'indices plus élevés. L'inverse est vrai pour les threads autres que ceux des boucles cadencées car, pour ceux-là, le planificateur commence au processeur 0 et incrémente. NI vous conseille d'assigner les processeurs d'indices les plus bas au pool système et ceux d'indices les plus élevés aux boucles cadencées déterministes pour minimiser la latence.

La définition d'un processeur à l'état Reserved garantit que le processeur sera réservé à l'exécution des boucles cadencées que vous lui assignez manuellement. Si vous assignez une seule boucle cadencée à un processeur réservé, vous pouvez monopoliser les capacités de traitement de ce processeur et atteindre des débits ou fréquences élevés.

Maximisation de l'utilisation des processeurs

Pour maximiser l'utilisation des processeurs, vous pouvez ajuster le nombre de processeurs à assigner à chaque pool en fonction de l'estimation de la proportion du temps de traitement total dédié aux boucles cadencées plutôt qu'aux threads système. Vous pouvez estimer la distribution de la charge de traitement en utilisant le nœud RT Obtenir les charges de CPU.

Une autre façon de maximiser l'utilisation des processeurs consiste à éviter le chevauchement partiel des pools. Si vous définissez les pools système et de structures cadencées de telle sorte que les deux pools se chevauchent partiellement, le processus d'équilibrage automatique des charges risque de ne pas prendre les décisions optimales.

Empêcher la famine des threads

Pour éviter la famine des threads système, envisagez de dédier au moins un processeur au thread système. Par exemple, si vous assignez le processeur 0 au pool système mais pas au pool de structures cadencées, et que vous n'assignez aucune des boucles cadencées au processeur 0, le processeur 0 est toujours disponible pour exécuter les threads système.