Définir les affectations de pools
- Mise à jour2023-02-17
- Temps de lecture : 4 minute(s)
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.
Entrées/Sorties

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. |

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.
Default value: Pas d'erreur

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. |

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

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

sortie d'erreur
Informations sur l'erreur.
Le nœud produit cette sortie selon le comportement d'erreur standard.
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.