Analyse de réseau plus rapide pour une gamme de matériel informatique développé –

  • FrançaisFrançais



  • Les graphiques – structures de données qui montrent la relation entre les objets – sont très polyvalents. Il est facile d’imaginer un graphique illustrant le réseau de connexions d’un réseau de médias sociaux. Mais les graphiques sont également utilisés dans des programmes aussi divers que la recommandation de contenu (que regarder ensuite sur Netflix?) Et la navigation (quel est l’itinéraire le plus rapide vers la plage?). Comme le résume Ajay Brahmakshatriya: «les graphiques sont pratiquement partout».

    Brahmakshatriya a développé un logiciel pour exécuter plus efficacement des applications graphiques sur une plus large gamme de matériel informatique. Le logiciel étend GraphIt, un langage de programmation graphique de pointe, pour qu’il fonctionne sur des unités de traitement graphique (GPU), du matériel qui traite de nombreux flux de données en parallèle. Cette avancée pourrait accélérer l’analyse des graphes, en particulier pour les applications qui bénéficient du parallélisme d’un GPU, comme les algorithmes de recommandation.

    Brahmakshatriya, doctorant au Département de génie électrique et d’informatique du MIT et au Laboratoire d’informatique et d’intelligence artificielle, présentera les travaux lors du Symposium international de ce mois sur la génération et l’optimisation de code. Les co-auteurs incluent le conseiller de Brahmakshatriya, le professeur Saman Amarasinghe, ainsi que le professeur adjoint de développement de carrière Douglas T.Ross en technologie logicielle Julian Shun, le postdoc Changwan Hong, le récent doctorant du MIT Yunming Zhang PhD ’20 (maintenant avec Google) et Adobe Research Shoaib Kamil.

    Lorsque les programmeurs écrivent du code, ils ne parlent pas directement au matériel informatique. Le matériel lui-même fonctionne en binaire – 1 et 0 – tandis que le codeur écrit dans un langage structuré de «haut niveau» composé de mots et de symboles. La traduction de ce langage de haut niveau en binaire lisible par le matériel nécessite des programmes appelés compilateurs. «Un compilateur convertit le code dans un format qui peut fonctionner sur le matériel», explique Brahmakshatriya. Un de ces compilateurs, spécialement conçu pour l’analyse de graphes, est GraphIt.

    Les chercheurs ont développé GraphIt en 2018 pour optimiser les performances des algorithmes basés sur des graphiques, quelle que soit la taille et la forme du graphique. GraphIt permet à l’utilisateur non seulement de saisir un algorithme, mais également de planifier la manière dont cet algorithme s’exécute sur le matériel. «L’utilisateur peut proposer différentes options pour la planification, jusqu’à ce qu’il trouve ce qui fonctionne le mieux pour lui», explique Brahmakshatriya. “GraphIt génère un code très spécialisé adapté à chaque application afin de fonctionner aussi efficacement que possible.”

    Un certain nombre de startups et d’entreprises technologiques établies ont adopté GraphIt pour faciliter leur développement d’applications graphiques. Mais Brahmakshatriya dit que la première itération de GraphIt avait un inconvénient: il ne fonctionne que sur des unités centrales de traitement ou des processeurs, le type de processeur dans un ordinateur portable typique.

    “Certains algorithmes sont massivement parallèles”, explique Brahmakshatriya, “ce qui signifie qu’ils peuvent mieux utiliser du matériel comme un GPU qui a 10 000 cœurs pour l’exécution.” Il note que certains types d’analyse de graphes, y compris les algorithmes de recommandation, nécessitent un degré élevé de parallélisme. Brahmakshatriya a donc étendu GraphIt pour permettre à l’analyse graphique de s’épanouir sur les GPU.

    L’équipe de Brahmakshatriya a conservé la façon dont les utilisateurs de GraphIt entraient les algorithmes, mais a adapté le composant de planification pour un plus large éventail de matériel. «Notre principale décision de conception en étendant GraphIt aux GPU a été de garder la représentation de l’algorithme exactement la même», déclare Brahmakshatriya. “Au lieu de cela, nous avons ajouté un nouveau langage de planification. Ainsi, l’utilisateur peut conserver les mêmes algorithmes qu’ils avaient auparavant écrits. [for CPUs], et modifiez simplement l’entrée de planification pour obtenir le code GPU. “

    Cette nouvelle planification optimisée pour les GPU donne un coup de pouce aux algorithmes graphiques qui nécessitent un parallélisme élevé – y compris des algorithmes de recommandation ou des fonctions de recherche Internet qui parcourent des millions de sites Web simultanément. Pour confirmer l’efficacité de la nouvelle extension de GraphIt, l’équipe a mené 90 expériences opposant le runtime de GraphIt à d’autres compilateurs de graphes de pointe sur GPU. Les expériences comprenaient une gamme d’algorithmes et de types de graphiques, des réseaux routiers aux réseaux sociaux. GraphIt a fonctionné le plus rapidement dans 65 des 90 cas et était proche du principal algorithme dans le reste des essais, démontrant à la fois sa vitesse et sa polyvalence.

    Brahmakshatriya affirme que la nouvelle extension GraphIt fournit une avancée significative dans l’analyse des graphes, permettant aux utilisateurs de passer facilement d’un processeur à un processeur graphique avec des performances de pointe. «Le domaine de nos jours, c’est la compétition bec et ongles. Il y a de nouveaux cadres qui sortent chaque jour», dit-il. Mais il souligne que le gain d’une optimisation, même légère, en vaut la peine. «Les entreprises dépensent des millions de dollars chaque jour pour exécuter des algorithmes graphiques. Même si vous le faites fonctionner seulement 5% plus vite, vous économisez plusieurs milliers de dollars.

    Cette recherche a été financée en partie par la National Science Foundation, le US Department of Energy, le Applications Driving Architectures Center et la Defense Advanced Research Projects Agency.

    Source

    N'oubliez pas de voter pour cet article !
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading...

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée.