Logo ETI Quitter la lecture facile

Le calcul hétérogène dope le développement des systèmes de test

Posté le par La rédaction dans Informatique et Numérique

En tirant parti des toutes dernières avancées en matière d’abstraction, de programmation et de transfert des données, les ingénieurs vont pouvoir bénéficier de l'utilisation de plusieurs nœuds de calcul pour les futurs systèmes de test. 

Les systèmes de test automatisé ont toujours intégré plusieurs types d’instruments, chacun d’entre eux étant le mieux adapté à différentes tâches de mesure. Par exemple, un oscilloscope  peut effectuer une mesure de tension continue, mais un multimètre numérique le fait avec une meilleure précision et une meilleure résolution. C’est cette association de différents instruments qui permet aux tests d’être réalisés de la manière la plus efficace et rentable qui soit.

Selon l’étude annuelle « Perspectives du test automatique » que National Instruments vient de publier, cette même tendance influence dorénavant la façon dont les ingénieurs implémentent le traitement dans les systèmes de test. Des applications telles que la surveillance de spectre RF, par exemple, nécessitent un traitement et une analyse de signaux personnalisés et en ligne. Ce qui est impossible à réaliser avec un processeur de PC standard. De plus, les systèmes de test génèrent une quantité de données sans précédent qui ne peut plus être analysée avec une seule unité de traitement. Pour répondre à ces besoins, les ingénieurs doivent se tourner vers des architectures de calcul hétérogène afin de distribuer le traitement et l’analyse.

Les 4 nœuds de calcul les plus utilisés

Une architecture de calcul hétérogène est un système qui distribue les données, le traitement et l’exécution des programmes entre les différents nœuds de calcul qui sont les mieux adaptés aux tâches spécifiques. Par exemple, un système de test RF, qui utilise le calcul hétérogène, peut avoir un processeur contrôlant l’exécution des programmes avec un FPGA qui effectue la démodulation en ligne et une unité de traitement graphique assurant la reconnaissance de formes avant de stocker tous les résultats sur un serveur distant. Les ingénieurs de test doivent déterminer la meilleure manière d’utiliser ces nœuds de calcul et de concevoir l’architecture des systèmes pour optimiser le traitement et le transfert des données. Les nœuds de calcul suivants sont les plus fréquemment utilisés dans les systèmes de test :

  • l’unité centrale de traitement (CPU) : c’est un processeur d’usage général avec une mémoire cache et un jeu d’instructions, ainsi qu’un accès direct à la mémoire. Séquentielle dans son exécution, cette unité convient tout particulièrement à la programmation de l’exécution et peut être adaptée à presque toutes les activités de traitement. Les avancées effectuées au cours de ces dix dernières années se sont concrétisées par plusieurs cœurs de traitement sur une même puce, la plupart des processeurs intégrant deux ou quatre cœurs et bien plus dans les années à venir. Ces systèmes multi-cœurs permettent le traitement des opérations en parallèle, mais nécessitent que le programmeur implémente une application « multithread » en gardant un œil sur le parallélisme afin de tirer pleinement parti des capacités de ces systèmes ;
  • l’unité de traitement graphique (GPU) : il s’agit d’un processeur spécialisé, initialement développé pour le rendu de l’infographie 2D et 3D. La GPU a connu des avancées prodigieuses en raison de la forte demande de graphiques plus réalistes dans les jeux vidéo sur ordinateur. Ses performances sont le résultat de la mise en œuvre d’une architecture hautement parallèle de centaines ou de milliers de cœurs, particulièrement adaptés aux transformées de vecteurs. Les ingénieurs tentent d’adapter ces cœurs spécialisés au traitement d’usage général. Des gains de performances ont d’ores et déjà été constatés en utilisant des GPU dans le domaine du traitement d’images et de la surveillance de spectre ;
  • les FPGA (Field-Programmable Gate Arrays) : contrairement aux CPU et aux GPU, ils n’ont pas de jeux d’instructions, ni de capacités de traitement définis. Ce sont, en revanche, des circuits de portes logiques reprogrammables qui permettent aux utilisateurs de construire des processeurs personnalisés afin de répondre précisément à leurs besoins. Ils garantissent également une vitesse d’exécution cadencée par matériel assurant un niveau élevé de déterminisme et de fiabilité, caractéristique particulièrement adaptée au contrôle de systèmes et au traitement de signaux en ligne. Le revers de la médaille de cette performance reconnue est l’augmentation de la complexité de programmation, conjuguée à l’impossibilité de modifier les fonctionnalités de traitement au milieu de l’exécution du programme ;
  • le Cloud computing : ce n’est pas un type de processeur spécifique mais un ensemble de ressources dédiées au calcul accessibles via Internet. La force du Cloud computing est qu’il dispense les utilisateurs de l’achat, du maintien et de la mise à jour de leurs propres ressources dédiées au calcul. À la place, ils peuvent se contenter de louer juste le temps et l’espace de stockage nécessaires à leurs applications. Ce phénomène a rapidement pris de l’ampleur et HP prévoit que 76 % des activités se poursuivront sous une forme ou une autre de Cloud computing dans les deux années à venir. Toutefois, bien que donnant accès à certains des ordinateurs les plus puissants au monde, le Cloud computing présente l’inconvénient d’une latence très élevée. Les données doivent être transférées via Internet, ce qui rend son utilisation difficile, voire impossible dans les systèmes de test qui requièrent des capacités de traitement déterministe. Quoi qu’il en soit, le Cloud computing se prête parfaitement à l’analyse hors ligne et au stockage de données.

Des outils pour s’abstraire des complexités des nœuds de calcul spécifiques

Le calcul hétérogène fournit de nouvelles architectures puissantes, mais il introduit également davantage de complexités dans le développement des systèmes de test, la principale étant la nécessité d’apprendre un paradigme de programmation différent pour chaque type de nœud de calcul. Par exemple, pour utiliser pleinement une unité de traitement graphique, les utilisateurs doivent modifier leurs algorithmes afin de paralléliser massivement leurs données et de traduire les mathématiques de l’algorithme en fonctions avec rendu graphique. Avec les FPGA, l’utilisateur doit souvent connaître des langages de description de matériel, comme le VHDL, pour configurer des capacités de traitement spécifiques.

Des ingénieurs de l’industrie mettent au point un moyen de s’abstraire des complexités des nœuds de calcul spécifiques. Dans le cas des unités de traitement graphique, ils sont en train de développer le langage OpenCL (Open Computing Language). Il s’agit d’ une interface de programmation conçue dans le but de supporter non seulement les produits de différents fournisseurs de GPU, mais aussi des processeurs parallèles supplémentaires comme des CPU multi-cœurs.

Des travaux ont également été engagés afin de simplifier la configuration des FPGA. La « synthèse de haut niveau » est un nouveau processus adopté par certains fournisseurs afin d’utiliser des langages de haut niveau basés sur des algorithmes dans la programmation FPGA. Des outils comme le module NI LabView FPGA poussent encore plus loin l’abstraction des complexités en permettant la conversion directe de code graphique en circuiterie logique numérique.

Le PCI Express, principal bus de données pour les réseaux peer-to-peer

La programmation des nœuds de calcul n’est pas l’unique difficulté d’un système de calcul hétérogène. Disposer de davantage de ressources de calcul n’a pas grand intérêt si les données ne peuvent pas être transférées et traitées rapidement. En raison de ses caractéristiques point par point, de sa vitesse de transfert élevée et de sa faible latence, le PCI Express s’est imposé comme le principal bus de données pour ces réseaux peer-to-peer dans les systèmes de test. Responsable du standard PXI, le groupe PXI Systems Alliance au sein duquel National Instruments joue un rôle prépondérant, a récemment rédigé un nouveau document intitulé PXI MultiComputing Specification afin de garantir des capacités PCI Express peer-to-peer et de calcul hétérogène entre plusieurs fournisseurs.

 

Déja paru :

Vers des systèmes de test entièrement définis par logiciel

Posté le par La rédaction


Réagissez à cet article

Commentaire sans connexion

Pour déposer un commentaire en mode invité (sans créer de compte ou sans vous connecter), c’est ici.

Captcha

Connectez-vous

Vous avez déjà un compte ? Connectez-vous et retrouvez plus tard tous vos commentaires dans votre espace personnel.

INSCRIVEZ-VOUS
AUX NEWSLETTERS GRATUITES !