Éducation Société Événements NI Developer Zone Support Solutions Produits et Services Contacter NI MyNI

Type de document: Tutorial
Supporté par NI: oui
Date de publication: 1 août 2008


Commentaires


Oui Non

Liens connexes - Developer Zone

Liens connexes - Products and Services

La programmation parallèle avec NI LabVIEW permet d’accroître la vitesse des tests

0 évaluations | 0.00 sur 5
Lire en | Imprimer

Frank Lloyd Wright, architecte influent du 20ème siècle, a déclaré un jour : “Tout grand architecte... doit être interprète de son temps, de son jour, de son âge.” La même chose s'applique aux architectes de systèmes de test. Ils doivent appréhender des technologies en perpétuelle évolution, comme les processeurs multicœurs, les circuits FPGA (field-programmable gate arrays) et les bus de données haute vitesse comme le PCI Express, au fur et à mesure qu'ils conçoivent, développent et mettent en œuvre les systèmes qu'on leur a demandé de construire. En combinant ces technologies au logiciel de programmation parallèle NI LabVIEW et au logiciel de gestion de test NI TestStand, les ingénieurs de test peuvent créer des systèmes de test performants, capables de traitements et de mesures parallèles, et même de tests entièrement parallèles pour la production. La programmation parallèle alliée aux technologies sur PC permet de tester des matériels jusqu’à 10 fois plus vite qu’avec une instrumentation traditionnelle.

 

Traitement parallèle

Dans les conceptions traditionnelles sur processeurs, les performances sont limitées par des défis pratiques comme la dissipation de la chaleur due aux vitesses d'horloge élevées. Pour garantir que la plate-forme PC suive le rythme des besoins croissants en matière de traitement, les fabricants de circuits développent de nouveaux processeurs dotés de plusieurs cœurs de traitement. Pour que les applications de test automatisé tirent parti des performances et de la cadence de la technologie multicœur, les applications logicielles doivent pouvoir cibler les nombreux cœurs de traitement en créant plusieurs threads qui s'exécutent sur chaque cœur.

http:/zone.ni.com/cms/images/devzone/pub/Q307INL_p6_figure1.jpg
Figure n°1. Le compilateur LabVIEW crée des threads d'exécution séparés pour des portions parallèles de code, sans aucune configuration de la part de l’utilisateur.

Cependant, écrire des applications multithread dans un langage de programmation textuel, comme le C ANSI, n'est pas évident pour la plupart des ingénieurs de conception et de test. Cela nécessite une connaissance de la sémantique de création et de gestion des threads, ainsi que de l'acheminement des données entre eux de manière "thread-safe". En utilisant des environnements de programmation graphique, comme NI LabVIEW, les ingénieurs peuvent exploiter pleinement la puissance du traitement multicœur. Comme le montre la Figure n°1, deux boucles dans LabVIEW, qui ne partagent pas une dépendance de données, s'exécutent automatiquement dans des threads séparés tout retirant les détails de la gestion de ces threads de la responsabilité du développeur. Pour illustrer la façon de tirer parti des processeurs multicœurs, nous vous invitons à lire le white paper intitulé, “Optimiser les applications de test automatisé pour les processeurs multicœurs avec NI LabVIEW.”

Pour une manipulation des données et un traitement du signal extrêmes, il est souvent nécessaire de dédier de la puissance de traitement exclusivement à cette tâche. Les contrôleurs multicœurs permettent de pallier convenablement ce problème, mais pour tirer le meilleur du traitement parallèle, il est difficile de faire mieux que les FPGA. Les FPGA, qui offrent des performances et une fiabilité inégalées aux systèmes de test automatisé, constituent l’un des meilleurs exemples de matériel informatique programmable en parallèle actuellement disponible. Le Module LabVIEW FPGA utilise la technologie embarquée de LabVIEW pour étendre les capacités de cet environnement de développement graphique et cibler les FPGA sur le matériel d’E/S reconfigurables (RIO) de NI. LabVIEW se prête tout particulièrement à la programmation FPGA car il représente clairement le parallélisme et le flux de données. Le Module LabVIEW FPGA permet de créer des matériels de mesure et de contrôle personnalisés sans avoir à maîtriser de langages de description de matériel de bas niveau, ni à concevoir de cartes. Il est possible d’utiliser ce matériel parallèle personnalisé pour des routines de synchronisation et de déclenchement spécifiques, un contrôle ultra-haute vitesse, l’interfaçage de protocoles numériques, le traitement de signaux numériques (DSP), et bien d’autres applications nécessitant fiabilité matérielle haute vitesse et déterminisme.

Les FPGA permettent de mettre en œuvre des applications de co-traitement (voir Figure n°2). Par exemple, en ayant recours à la nouvelle fonctionnalité mathématique à virgule fixe du Module LabVIEW FPGA et de la PI (propriété intellectuelle) de transformée rapide de Fourier (FFT) disponible sur ni.com/ipnet, l’utilisateur peut effectuer jusqu’à 40 opérations de FFT parallèles sur le FPGA LX50 Virtex-5 du module de la Série R NI PXI-7852. Avec la bande passante dédiée du PXI Express (jusqu’à 1 Go/s/direction) et le streaming poste-à-poste, la valeur de ce type de capacité augmente.


[+] Agrandir l'image

Figure n°2. La fonctionnalité mathématique à virgule fixe de LabVIEW FPGA permet aux applications de co-traitement mettant en œuvre des FFT de s’exécuter sur des cibles FPGA PXI pour des performances accrues. 

 

Mesures parallèles

Les mesures parallèles nécessitent que toutes les sous-composantes d’un système de test supportent un modèle parallèle, et non pas uniquement le processeur. Cela inclut l'acquisition et le transfert de données.

http:/zone.ni.com/cms/images/devzone/pub/Q307INL_p6_figure2.jpg

Figure n°3. Le PCI Express offre une bande passante dédiée au lieu d'un transfert de données partagé, ce qui augmente de façon significative la quantité de données que vous pouvez acquérir et transférer en continu sur disque.

Les bus de transfert de données les plus courants pour l'instrumentation modulaire actuelle, comme le PCI, l’USB, l’Ethernet et le GPIB, ne supportent pas un modèle de transfert de données véritablement parallèle parce que les matériels présents sur le bus partagent la même bande passante. Si la vitesse cumulée d'acquisition ou de génération des matériels d'E/S est supérieure à celle du bus, alors les données risquent d'être perdues. Une solution courante à ce problème consiste à effectuer des mesures de façon séquentielle et à intégrer des buffers importants de mémoire embarquée sur le matériel d'E/S de sorte que les données ne soient pas perdues en attendant une disponibilité sur le bus de communication.

À l'inverse, le PCI Express, dernier-né des bus de transfert de données hautes performances, offre une bande passante dédiée pour chaque matériel tout en garantissant un débit plus élevé que n'importe quel autre bus de communication précédemment mentionné. Disponible en versions x1, x4, x8 et x16 voies (prononcer "fois 1", "fois 4", etc.), le PCI Express offre un débit de 250 Mo/s utilisable par voie. Les options x1 et x4, qui sont les plus courantes pour les matériels de la classe instrument, garantissent respectivement 250 Mo/s et 1 Go/s (quatre voies à 250 Mo/s) de débit dédié.

En exploitant la technologie du PCI Express dans le fond de panier, le PXI Express fait passer la bande passante du PXI de 132 Mo/s à 6 Go/s, soit une progression d’un facteur 45, tout en garantissant la compatibilité logicielle et matérielle avec les modules PXI. Parfaitement intégré à la plate-forme PXI, le PXI Express assure aux utilisateurs du PXI jusqu’à 1 Go/s/direction de bande passante dédiée par emplacement, ainsi que les capacités de cadencement et de synchronisation les plus performantes de l’industrie.

 

http:/zone.ni.com/cms/images/devzone/pub/Q307_p7_Feature1.jpg

Figure n°4. Le PCI Express et l'instrumentation modulaire offrent un modèle évolutif pour les mesures parallèles.

Au fur et à mesure qu'un module PXI Express acquiert des données, ces dernières sont transférées de la mémoire embarquée sur une voie PCI Express dédié et transmises en continu sur un disque dur ou vers la mémoire du système. Une fois dans la mémoire du système, l'application LabVIEW peut accéder aux données, et si elle est utilisée avec un processeur multicœur, la mesure parallèle s’effectue, et ce, du signal à la mesure finale.

 

Test parallèle

Avec le traitement multicœur, le PCI Express et LabVIEW, les utilisateurs peuvent créer des systèmes de mesures parallèles capables de tester une seule unité sous test à la fois. Pourtant, la définition du test parallèle stipule que plusieurs unités sous test différentes doivent être soumises au test simultanément. L’alternative consiste à tester des unités sous test de façon séquentielle. Bien que le test en parallèle réduise clairement le temps global de test, augmente les cadences des tests et optimise l'utilisation des instruments, la complexité liée au développement d’un système de test parallèle peut s’avérer prohibitive. Développer un logiciel de gestion de test qui implémente le test de plusieurs unités sous test à la fois nécessite, cependant, une compréhension bas niveau du fonctionnement du système d'exploitation avec ces opérations parallèles, comme les sections critiques sous Windows, et un intérêt particulier pour la façon de mettre en œuvre le partage des instruments sur un grand nombre d'unités sous test sans engendrer de conflit, ni de blocage complet du système.

Une autre façon de développer un système de test parallèle personnalisé en partant de rien consiste à utiliser un logiciel de gestion de test "sur étagère", comme NI TestStand. Ce logiciel analyse et gère la complexité bas niveau dans le cas d'un développement de systèmes de tests parallèles en utilisant des fonctionnalités intégrées (par exemple, exécuter des séquences de tests parallèles dans plusieurs threads et gérer à la fois le système d'exploitation et les ressources des instruments). En outre, il est possible de réduire les temps des tests et d’accroître leur cadence en ayant recours au NI TestStand Resource Profiler pour comprendre l’utilisation des instruments et l’exécution des systèmes de tests parallèles. Le Resource Profiler analyse l’exécution du système de test et identifie les goulots d’étranglement des instruments pour contribuer à optimiser le code des tests et à prioriser les investissements à venir en termes d’instruments. Cet utilitaire affiche l’utilisation des instruments et des autres ressources en temps réel, comme l’illustre la Figure n°5.

http:/zone.ni.com/cms/images/devzone/tut/image29889.jpg

    Figure n°5. Le NI TestStand Resource Profiler augmente la cadence en permettant aux développeurs de comprendre l’exécution des systèmes de tests parallèles.

Pour illustrer les avantages en termes de performances de l’architecture de test parallèle, il suffit d’observer une séquence de test W-CDMA (accès multiple par répartition en code à large bande) élémentaire mise en œuvre avec une plate-forme PXI au lieu d’instruments traditionnels. Conformément aux spécifications de test W-CDMA, un test de performances doit rapporter à la fois la durée et la précision des mesures, telles que la puissance de bande adjacente (ACP), le taux d’occupation de la bande passante (OBW), la fonction de distribution cumulée complémentaire (CCDF) et l’amplitude du vecteur d’erreur (EVM). Comme l’illustre la Figure n°6, une plate-forme de test parallèle basée sur NI TestStand, LabVIEW et le PXI augmente jusqu’à cinq fois la vitesse des mesures. Ces performances peuvent se traduire par des économies substantielles pour l’utilisateur final. Pour de plus amples informations sur cette analyse des performances, nous vous invitons à consulter le RF Benchmark Comparisons white paper.


[+] Agrandir l'image

Figure n°6. La plate-forme de test parallèle de NI, basée sur NI TestStand, LabVIEW et le PXI augmente jusqu’à cinq fois la vitesse des mesures, et ce avec une précision supérieure à celle de l’instrumentation traditionnelle.

 

Compléter l'architecture de test parallèle

Les processeurs multicœurs, les FPGA et le PCI Express sont en passe de changer le paysage des PC modernes et permettent à la programmation graphique LabVIEW d’offrir un traitement véritablement parallèle ainsi que des mesures parallèles à partir du flux de données et de la logique d'un ingénieur. Avec NI TestStand, l'architecture de test parallèle est complète. Elle se traduit par des systèmes de test à la vitesse de transfert des données accrue, via le PCI Express ; à la puissance de traitement accrue, via LabVIEW, les processeurs multicœurs et les FPGA ; et enfin, à la durée et au coût unitaire des tests réduits, via NI TestStand.

 

Ressources

 

0 évaluations | 0.00 sur 5
Lire en | Imprimer

Législation
Ce tutorial a été développé par National Instruments. Bien qu'un support technique puisse être fourni pour ce tutorial, il n'a pas été complètement testé ni vérifié, et NI ne garantit pas sa qualité, ni qu'il continuera à être supporté pour les nouvelles versions des produits et drivers qui y sont rattachés. CE TUTORIAL EST FOURNI "EN L'ÉTAT" SANS GARANTIE D'AUCUNE SORTE, ET EST SUJET À CERTAINES RESTRICTIONS COMME PLUS SPÉCIFIQUEMENT DÉTERMINÉES DANS LES CONDITIONS D'UTILISATION DE NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).