Vectorisation

Les données de SaaS sont plus que des formes et des graphiques sur l'image d'une femme dans la technologie

La vectorisation, telle que définie par l'industrie des microprocesseurs, est le processus qui transforme une opération scalaire agissant sur des éléments de données individuels (Single Instruction Single Data-SISD) en une opération où une seule instruction opère simultanément sur plusieurs éléments de donnéesSIMD.

Plus généralement, la vectorisation est le processus par lequel un seul fil d'exécution d'un logiciel peut être multithreadé en fils d'exécution parallèles et simultanés afin d'accélérer les performances par des ordres de grandeur.

Pourquoi la vectorisation est-elle importante ?

Dans le secteur des bases de données, la vectorisation permet de réduire le temps de réponse des requêtes volumineuses grâce à l'exécution parallèle de plusieurs threads simultanés. Les optimiseurs de requête systèmes de base de données choisissent la méthode la plus efficace pour obtenir les résultats d'une requête donnée. Les index sont utilisés pour accéder rapidement à des lignes individuelles ; les balayages de plage pour de petits sous-ensembles et les balayages complets de table sont réservés en dernier recours lorsque chaque ligne de la table doit être lue. L'analyse complète d'une table avec un seul thread peut prendre une heure sur une table contenant des milliards de lignes. La vectorisation peut réduire le temps de réponse de ces opérations de plusieurs heures à quelques minutes, à condition que la table soit partitionnée et qu'un nombre suffisant de cœurs de processeur soit disponible.

Vectorisation au niveau de la puce

Lorsque la vitesse des processeurs a commencé à plafonner, les fabricants ont commencé à augmenter le nombre de cœurs de processeur pouvant être intégrés dans une seule puce. Aujourd'hui, une puce de processeur de serveur Intel Xeon peut comporter jusqu'à 32 cœurs de processeur.

Le système Actian Vector base de données analytique exploite une caractéristique des serveurs Intel conçue pour support traitement parallèle pour l'informatique de de haute performance (HPC) appelée instruction unique, données multiples SIMD. Contrairement aux processeurs traditionnels qui ne permettent aux programmes en cours d'exécution d'accéder qu'à un seul cache de processeur , les instructions SMID peuvent charger des données dans tous les caches de processeur du serveur. Si le serveur dispose de 32 cœurs de processeur , Actian Vector chargera les données des colonnes de la base de données dans tous les caches de processeur . Cette seule instruction de machine vectorisée peut traiter les données qui auraient pris 32 cycles d'instruction à une base de données traditionnelle, car elle ne traite qu'un enregistrement base de données par instruction. Les requêtes analytiques sont très gourmandes en données, c'est pourquoi le traitement de centaines d'enregistrements de données en une seule instruction est incroyablement bénéfique.

Exploitation de la mémoire cache à grande échelle

L'avantage du traitement SMID va plus loin que le simple multithreading, car il tire parti du type de mémoire le plus rapide d'un système, à savoir le cache de niveau 1 (L1), qui fonctionne à des vitesses 100 fois supérieures à celles de la mémoire principale.

La mémoire cache fonctionne selon une hiérarchie de niveaux. Les quatre niveaux énumérés ci-dessous sont tous plus rapides que la mémoire vive :

  • La mémoire cache L1 peut atteindre 112 Ko par cœur.
  • La mémoire cache L2 peut atteindre 2 Mo par cœur.
  • Le cache L3 peut atteindre 408 Mo.
  • La mémoire cache L4 peut atteindre 64 Go.

Certains analystes du secteur pourraient classer Actian Vector dans la catégorie des bases de données in-memory , mais sa capacité à exploiter tous les caches des processeur et à passer gracieusement sur le disque en fait plus qu'une base de données analytique in-memory

Vectorisation sur des serveurs en grappe

Jusqu'à présent, nous avons abordé la vectorisation au sein d'un seul serveur. Lorsqu'une charge de travail dépasse la capacité d'un seul serveur, les entreprises se tournent vers les grappes de serveurs à traitement massivement parallèle (MPP). Les grappes MPP sont généralement installées à proximité les unes des autres, dans des baies de serveurs adjacentes, dans une même pièce, afin de minimiser la latence du réseau. Ils communiquent entre eux par le biais d'une interconnexion à grande vitesse de 10 ou 30 gigabits par seconde.

Les premiers systèmes MPP étaient coûteux et limités à la recherche et aux grandes entreprises. Avec l'avènement du logiciel libre sous la forme du projet Apache Hadoop, le coût du logiciel a disparu, et le matériel basé sur les serveurs Intel a permis aux systèmes MPP de se généraliser.

Actian a créé une variante de la base de données analytique Vector qui fonctionne avec le logiciel Hadoop pour mettre à l'échelle le stockage de la base de données à travers un système de fichiers évolutif en cluster et distribuer de manière transparente les requêtes vectorisées à travers les nœuds d'un Cluster Hadoop pour fournir le nec plus ultra en matière de performance des requête analytiques.

La plateforme de données Actian

La plateforme de données Actian offre une expérience unifiée pour l'ingestion, la transformation, l'analyse et le stockage des données. Actian Vector est un composant intégré de la plateforme de données qui offre des performances de requête ultra-rapides, même pour les charges de travail complexes, sur site et sur plateformes cloud plateformes Google, AWS et Azure.