Les puces programmables aident Microsoft à rationaliser ses services cloud
Prototype de carte pour Project Catapult (Source: Clayton Cotterell pour Wired)Microsoft a annoncé une mise à niveau matérielle majeure pour ses centres de données dans le monde entier. Il s'agit tout d'abord des contrôleurs de domaine qui fournissent le service cloud Azure. Le nouvel équipement est typique des centres de données, à l'exception des puces. Ce sont des matrices de portes reprogrammables FPGA (Field-Programmable Gate Array). Les FPGA eux-mêmes ne sont pas nouveaux, mais leur utilisation dans les centres de données est une nouvelle idée de Microsoft. Selon la société, les puces programmables fourniront une accélération matérielle pour la mise en œuvre de divers algorithmes logiciels.Initialement, avec l'aide de FPGA, la société prévoyait d'optimiser le fonctionnement de son service de recherche Bing. L'entreprise a développé et commencé à mettre en œuvre la première phase du projet sous le nomProjet Catapult . Dans le cadre de ce projet, des FPGA ont été ajoutés aux cartes PCI d'Altera (maintenant le propriétaire d'Altera est Intel) dans certains des serveurs responsables de Bing. Selon les auteurs du projet, cela était censé améliorer le travail de l'algorithme de classement du service de recherche. Il s'est avéré que cette hypothèse était vraie. Les serveurs modifiés ont montré une augmentation significative des performances par rapport aux serveurs dont le matériel n'a pas été modifié.Il a en outre été proposé de développer des circuits intégrés spécialisés dont le principe de fonctionnement serait équivalent au FPGA. Microsoft a déjà développé de telles puces pour leurs lunettes vidéo Hololens . Cela a considérablement réduit la consommation d'énergie de l'appareil et augmenté ses performances. Il s'est avéré que cette méthode ne convient pas à l'équipe Bing. Le fait est que les algorithmes des services de recherche changent très souvent. Et si vous commencez à développer des puces adaptées à certains algorithmes, alors que ces puces sont fabriquées et importées, les algorithmes de recherche changeront. Cela signifie que les puces deviendront inutiles (un exemple typique de verrouillage matériel).Mais, comme le projet pilote a été, en général, un succès, ils ont décidé d'utiliser le FPGA dans des équipements qui fournissaient le travail d'autres services de l'entreprise. Par exemple, Azure et Office 365. Dans ce cas, des puces spécialisées pourraient être développées sans crainte d'obsolescence en seulement quelques semaines. Le principal problème pour Azure n'est pas du tout les algorithmes, mais l'augmentation des exigences de bande passante réseau.Carte Altera Stratix V. Microsoft utilise des cartes similaires dans son projet Project Catapult.Azure exécute un grand nombre de machines virtuelles. Ils sont hébergés sur un nombre limité de serveurs physiques. Les centres de données de l'entreprise utilisent l'hyperviseur Hyper-V pour la virtualisation. Chaque machine virtuelle possède une ou plusieurs cartes réseau via lesquelles ces machines reçoivent et envoient le trafic réseau. L'hyperviseur gère l'équipement réseau physique connecté à l'infrastructure réseau Azure. Rediriger le trafic de l'équipement virtuel vers le réel et vice versa, tout en équilibrant simultanément l'équilibrage de la charge de l'équipement et la gestion du routage du trafic, nécessite des ressources importantes.Les employés de Microsoft ont proposé d'ajouter au FPGA PCIe. Les FPGA, selon les experts, étaient censés fonctionner directement avec l'infrastructure réseau Azure, permettant aux serveurs de réseau d'envoyer et de recevoir directement du trafic sans l'acheminer via l'interface réseau du système principal.Il a été décidé de connecter directement l'interface PCIe aux machines virtuelles, ce qui a raccourci le chemin du trafic réseau. Résultat? Les machines virtuelles Azure fonctionnent désormais avec des performances d'infrastructure réseau de 25 Gb / s et un délai de seulement 100 millisecondes. Et cela a été réalisé sans impliquer les processeurs serveur.Le même problème peut être résolu en utilisant des cartes réseau modernes, qui de la même manière peuvent fonctionner directement avec des machines virtuelles, en contournant l'hôte. Mais dans ce cas, il y a des limites. Par exemple, chaque carte peut fonctionner simultanément avec seulement 4 machines virtuelles. La flexibilité qu'offre le FPGA n'est pas là. Avec FPGA, Microsoft peut travailler plus activement, en programmant des puces en fonction des besoins actuels. En conséquence, les performances globales du centre de données augmentent et la charge sur l'équipement diminue. Toutes les instructions sont écrites directement sur la puce. Si vous utilisez des cartes réseau, dans ce cas, le processeur hôte est toujours impliqué, qui est responsable de l'exécution des instructions.Après un lancement test d'un tel système, la société s'est convaincue de son efficacité et a décidé de se déployer dans l'ensemble de ses data centers qui fournissent Azure. Cette semaine, la société a démontré le fonctionnement de son système lors de la conférence Ignite. Un employé de la société a montré le processus simultané de traduction de 3 milliards de mots de Wikipedia anglais à l'aide de milliers de FPGA. Les données ont été traitées en seulement un dixième de seconde. Dans ce cas, les performances du système ont atteint 10 18 opérations par seconde.Source: https://habr.com/ru/post/fr397969/
All Articles