Synthèse
SigmaX relève les derniers défis liés à la résolution des problèmes de gestion des données d'entreprise à grande échelle. Les clients bénéficient d'une solution de gestion des données sans être obligés de dépendre d'un fournisseur, grâce à l'utilisation du logiciel open source Apache et des ressources de développement FPGA telles qu'Open FPGA Stack (OFS). La solution SigmaX alimentée par l'accélération FPGA permet aux données de transiter à des débits incroyablement rapides, permettant aux utilisateurs de prendre des décisions en temps quasi réel.
- La solution de flux de données SigmaX, basée sur Apache Pulsar et Apache Arrow, réduit la latence par un facteur de 1001
- En utilisant uniquement Apache Pulsar, SigmaX affiche une augmentation immédiate de 250 % de la vitesse pour le streaming par rapport à la concurrence utilisant Kafka1
- L'intégration d'Apache Pulsar et d'Apache Arrow permet de multiplier le débit par 20 et de l'étendre à des milliers de nœuds1
Contexte et défi :
Un courtier en données est une entité qui rassemble des données de flux d'événements, publiques, privées ou les deux, et qui les fournit sous forme d'abonnements. Le courtier en données traitera, nettoiera et structurera les données publiées et les fournira à d'autres entreprises ou à des consommateurs au sein de l'entreprise. Un producteur de données désigne la source racine des données, qu'il s'agisse d'une interface utilisateur, d'un service ou d'un appareil edge et de l'Internet des objets (IoT). Des millions de producteurs de données peuvent envoyer simultanément des informations aux courtiers en données. Les consommateurs peuvent ensuite récupérer les données récentes auprès du courtier une fois qu'elles ont été traitées, nettoyées et structurées. Ces courtiers en données peuvent se compter par milliers et traiter d'immenses volumes de données en parallèle. Les secteurs comme la 5G, les véhicules autonomes, la maintenance prédictive et d'autres plateformes de transport et d’edge computing sont confrontés à ces ensembles de données de plus en plus volumineux qui peuvent être gérés par des milliers de courtiers et de producteurs de données.
Dans ces secteurs, le fait de prendre des décisions rapidement et de réagir presque simultanément est souvent crucial. On estime que le secteur des véhicules autonomes génère à lui seul entre 4 et 40 To de données par heure. Parallèlement à cette énorme demande en matière de traitement des données, de nouveaux types de structures de données et de formes de représentation des données ont également vu le jour, avec des avancées inexploitées en matière de performances au niveau des processeurs, des GPU et du traitement parallèle.
Apache Arrow est un framework logiciel standard, indépendant du langage, couramment utilisé pour améliorer la vitesse de l'analytique des données en créant un format de mémoire en colonne standard, ce qui permet d'économiser 80 % de temps d'horloge. Il est fréquemment utilisé dans des contextes avec de grands ensembles de données générés par des capteurs edge, des applications IoT et à grande échelle. Apache Arrow combine les avantages des structures de données en colonnes avec le calcul en mémoire que les processeurs, les GPU et les FPGA peuvent utiliser pour permettre un partage de données fluide et efficace entre les plateformes, sans copier ni déplacer les données.
En tirant parti du traitement hétérogène et d'outils open source tels que le logiciel Apache et OFS, SigmaX fournit une solution qui améliore la conversion des formats de données de JSON à Apache Arrow avec des temps de latence 100 fois inférieurs et des taux d'ingestion de données 20 fois supérieurs par rapport à une mise à l'échelle réalisée uniquement à l’aide de processeurs Intel Xeon.
Solution
SigmaX a considérablement amélioré l'efficacité des données produites vers un courtier central en associant sa pile de gestion des données à des FPGA Intel et à OFS. Voici une description de la solution SigmaX :
Étape 1 : Bolson convertit les données des capteurs au format Apache Arrow
Les données JSON des capteurs sont d'abord reçues par Bolson, qui fonctionne sur un FPGA Intel Agilex, à l'aide de l'infrastructure OFS open source. Bolson convertit ensuite les données JSON du capteur au format de données universel Apache Arrow. En plaçant les données dans Apache Arrow, les courtiers gagnent nettement en vitesse et en réactivité. Ainsi, cette approche cumule les avantages en termes de latence et de débit en plus des avantages d'une approche basée uniquement sur des processeurs.
Étape 2 : Apache Pulsar traite et nettoie les données
Le courtier en données, Apache Pulsar, reçoit alors les messages dans le format Apache Arrow. Les données reçues par Apache Pulsar sont désormais exploitables telles quelles. Apache Pulsar traitera, nettoiera et restructurera ensuite les données.
Apache Pulsar est une plateforme de messagerie et de streaming distribuée comparable à Apache Kafka. Cependant, cette solution offre des avantages significatifs par rapport à Apache Kafka, tels que l'amélioration de la sécurité, de la vitesse, de la latence et des performances, ainsi que des fonctionnalités intégrées de fiabilité des données comme la géoréplication. Elle est couramment utilisée dans les applications sensibles à la latence impliquant des schémas très complexes ou des besoins de données en temps réel.
Étape 3 : Le courtier en données transmet les informations au consommateur
Après avoir été déléguées par le courtier, les données sont ensuite transférées à une application grand public par abonnement.
SigmaX a validé cette charge de travail de gestion de données au moyen d’un matériel basé sur la technologie Intel. Sa pile open source utilise des processeurs Intel Xeon fonctionnant dans l'application client et la carte HiPrAcc* NC100 Hitek Systems basée sur un FPGA Intel Agilex pour faire fonctionner Bolson.
La carte HiPrAcc NC100 est compatible avec OFS et oneAPI. OFS est un outil essentiel qui permet aux développeurs de FPGA de créer des charges de travail et des applications personnalisées basées sur des FPGA. Cette infrastructure fournit tout le code source matériel et logiciel, la documentation, les exemples de référence et les outils nécessaires afin de permettre un démarrage rapide du développement basé sur des FPGA. Le code logiciel et matériel d'OFS est open source sur GitHub.
Résultats :
La charge de travail de gestion des données de SigmaX accélère la conversion des données dans Apache Arrow en utilisant deux technologies clés d'Intel, à savoir les FPGA Intel Agilex et OFS. Grâce à l'accélération FPGA et à OFS, la charge de travail de conversion de données de SigmaX est 100 fois plus rapide avec 20 fois plus de données1. Cette charge de travail de gestion des données peut être appliquée à un large éventail d'applications, notamment les soins de santé, l'assurance, la 5G, la maintenance prédictive, et bien plus encore.
OFS nous a permis de créer notre charge de travail accélérée par FPGA en nous fournissant tout le code source matériel et logiciel, la documentation, les exemples de référence et les outils dont nous avions besoin pour commencer, aucune modification approfondie du FPGA n'a été nécessaire.
Comment se lancer dans l'accélération FPGA à l’aide d’Open FPGA Stack :
Les développeurs FPGA peuvent choisir parmi une gamme de cartes compatibles OFS fournies par Intel ou des tiers et utiliser la documentation ainsi que le code source open source pour commencer à construire leur charge de travail personnalisée.
Le tableau suivant décrit comment un développeur peut commencer le développement d'une charge de travail basée sur un FPGA en utilisant soit une carte fournie par Intel, soit une carte tierce.
Utilisation d'une carte Intel | Utilisation d'une carte de l’écosystème | |
---|---|---|
Étape 1 : choisir une carte |
Utilisez une plateforme de référence OFS Les plateformes de référence peuvent accélérer l'évaluation ou la préparation, sans toutefois être nécessaires. |
Utilisez une carte personnalisée ou tierce Parcourez le catalogue des cartes OFS pour voir les cartes disponibles. |
Étape 2 : évaluer les ressources open source de l'OFS | La documentation technique peut être trouvée sur GitHub. | Le fournisseur de la carte fournira la documentation technique OFS correspondante. |
Étape 3 : accéder au matériel et au code logiciel open source | Modifiez ou utilisez le code logiciel et matériel fourni par OFS, disponible sur GitHub (OFS). | Le fournisseur de la carte fournira le code logiciel/matériel OFS correspondant. |
Étape 4 : développer une charge de travail à l'aide de RTL ou C/C++ (en utilisant oneAPI) |
Suivez le flux RTL OFS OU OFS permet la compilation de noyaux oneAPI. Utilisez le flux de développement oneAPI et créez des charges de travail FPGA en C/C++. |
Remarques :
1Chiffres publiés dans « Tens of gigabytes per second JSON-to-Arrow conversion with FPGA accelerators ». IEEE Xplore. Décembre 2021. ieeexplore.ieee.org/documents/9609833
Configuration du test : conception d'un accélérateur FPGA pour l'analyse JSON qui écrit les données désérialisées dans la mémoire de l'hôte au format Apache Arrow en mémoire en colonnes. Il comprend cinq étapes : réception des documents JSON, analyse des documents JSON et désérialisation des données dans un Arrow RecordBatch, redimensionnement de l'Arrow RecordBatch, sérialisation de l'Arrow RecordBatch dans un message Arrow IPC, publication de messages IPC vers un sujet Pulsar via un courtier Pulsar. Toutes les implémentations utilisent un maximum de huit octets, ce qui donne à chaque analyseur un débit d'entrée théorique maximal de 1,6 Gbit/s à 200 MHz.