L'équipe PlinyCompute de l'Université Rice comprend (de gauche à droite) Shangyu Luo, Sourav Sikdar, Jia Zou, Tania Lorido, Binhang Yuan, Jessica Yu, Chris Jermaine, Carlos Monroy, Dimitrije Jankov et Matt Barnett. Crédit :Jeff Fitlow/Université Rice
Les informaticiens du projet Pline financé par la DARPA de l'Université Rice pensent qu'ils ont la réponse pour tous les programmeurs de systèmes stressés qui ont eu du mal à mettre en œuvre des objets et des flux de travail complexes sur des plates-formes de « big data » comme Spark et pensaient :« N'y a-t-il pas un meilleur moyen ?"
Le PlinyCompute de Rice sera dévoilé ici jeudi lors de la conférence ACM SIGMOD 2018. Dans un article de conférence à comité de lecture, l'équipe décrit PlinyCompute comme "un système purement pour le développement de hautes performances, codes de données volumineuses."
Comme Spark, PlinyCompute vise la facilité d'utilisation et une large polyvalence, dit Chris Jermaine, le professeur d'informatique Rice qui dirige le développement de la plate-forme. Contrairement à Spark, PlinyCompute est conçu pour prendre en charge les types de calcul intenses qui n'étaient auparavant possibles qu'avec des supercalculateurs, ou des ordinateurs hautes performances (HPC).
"Avec l'apprentissage automatique, et surtout l'apprentissage en profondeur, les gens ont vu ce que les algorithmes d'analyse complexes peuvent faire lorsqu'ils sont appliqués au big data, " dit Jermaine. " Tout le monde, des cadres du Fortune 500 aux chercheurs en neurosciences, réclame des algorithmes de plus en plus complexes, mais les programmeurs système ont pour la plupart de mauvaises options pour fournir cela aujourd'hui. HPC peut fournir la performance, mais il faut des années pour apprendre à écrire du code pour HPC, et peut-être pire, un outil ou une bibliothèque qui peut prendre des jours à créer avec Spark peut prendre des mois à programmer sur HPC.
"Spark a été conçu pour le big data, et il prend en charge des choses que HPC ne prend pas en charge, comme l'équilibrage de charge facile, tolérance aux pannes et allocation des ressources, qui sont un must absolu pour les tâches gourmandes en données, " dit-il. " A cause de cela, et parce que les temps de développement sont bien plus courts qu'avec le HPC, les gens créent de nouveaux outils qui s'exécutent sur Spark pour des tâches complexes comme l'apprentissage automatique, analyse graphique et plus encore."
Parce que Spark n'a pas été conçu avec un calcul complexe à l'esprit, ses performances de calcul ne peuvent être poussées plus loin, dit Jia Zou, un chercheur de Rice et premier auteur de l'article ACM SIGMOD décrivant PlinyCompute.
PlinyCompute de l'Université Rice est une plate-forme Big Data conçue spécifiquement pour développer des codes hautes performances et gourmands en données. Crédit :Projet Pline/Université Rice
"Spark est construit sur la machine virtuelle Java, ou JVM, qui gère les runtimes et supprime la plupart des détails concernant la gestion de la mémoire, " dit Zo, qui a passé six ans à rechercher des systèmes d'analyse et de gestion de données à grande échelle chez IBM Research-China avant de rejoindre Rice en 2015. « Les performances de Spark souffrent de sa dépendance à l'égard de la JVM, d'autant plus que les demandes de calcul augmentent pour des tâches telles que la formation de réseaux de neurones profonds pour l'apprentissage en profondeur.
"PlinyCompute est différent car il a été conçu pour des performances élevées dès le départ, " a déclaré Zou. " Dans notre analyse comparative, nous avons découvert que PlinyCompute était au moins deux fois plus rapide et dans certains cas 50 fois plus rapide pour implémenter la manipulation d'objets complexes et les calculs de style bibliothèque par rapport à Spark."
Elle a déclaré que les tests ont montré que PlinyCompute surpasse des outils comparables pour la construction d'outils et de bibliothèques hautes performances.
Jermaine a déclaré que tous les programmeurs ne trouveront pas facile d'écrire du code pour PlinyCompute. Contrairement au codage basé sur Java requis pour Spark, Les bibliothèques et modèles PlinyCompute doivent être écrits en C++.
"Il y a plus de flexibilité avec PlinyCompute, " a déclaré Jermaine. " Cela peut être un défi pour les personnes moins expérimentées et moins bien informées sur C++, mais nous avons également effectué une comparaison côte à côte du nombre de lignes de code nécessaires pour terminer diverses implémentations, et pour la plupart, il n'y avait pas de différence significative entre PlinyCompute et Spark."
Le projet Pline, lancé en 2014, est de 11 millions de dollars, Effort financé par la DARPA pour créer des outils de programmation sophistiqués qui peuvent à la fois « autocomplétion » et « correction automatique » du code pour les programmeurs, de la même manière qu'un logiciel complète les requêtes de recherche et corrige l'orthographe sur les navigateurs Web et les smartphones. Pline utilise l'apprentissage automatique pour lire et apprendre à partir de milliards de lignes de programmes informatiques open source, et Jermaine a déclaré que PlinyCompute était né de cet effort.
"C'est une application d'apprentissage machine complexe en termes de calcul, et il n'y avait vraiment pas de bon outil pour le créer, " dit-il. " Au début, nous avons reconnu que PlineCompute était un outil qui pouvait être appliqué à des problèmes bien au-delà de ce pour quoi nous l'utilisions dans le projet Pline."