Language and infrastructure for analyzing the archive (internship)/fr
(see: english version of this internship description)
Context: Software Heritage is an ambitious initiative whose goal is to collect, preserve forever, and make publicly available the entire body of software, in the preferred form for making modifications to it.
Description: L'archive de Software Heritage est structurée comme un graphe (plus précisément, un arbre de Merkle), et ce graphe est énorme : des dizaines de milliards de noeuds, des centaines de milliards d'arêtes. Le graphe nous montre que de nombreux commits différents nous mènent vers les mêmes fichiers et repertoires de fichiers. Et des mêmes commits peuvent être atteins a partir de plusieurs dépôts (des dépôts qui sont des forks d'autres dépôts).
Lors de l'analyse de code source a très grande échelle (par exemple, tout les projets hébergés sur GitHub), le fait qu'il existe une abondance des données partagées entraîne un gaspillage de ressource et de temps.
L'objectif de ce stage est de concevoir et de mettre en oeuvre un prototype de plateforme (inspiré de Boa) qui nous permettrais de décrire des experiences empirique a lancer sur Software heritage, en exploitant les données partagées dans le graphe pour accélérer les analyse. La plateforme sera constituée d'un langage simple pour décrire les experiences, et d'un runtime implémentant le langage qui gère de manière transparente la mise en cache des résultats précédents. L'objectif est ambitieux : le runtime distribueras le calcul sur une seule machine ou un cluster.
Si l'implémentation est un succès, le stage se termineras avec une démonstration (sous la forme d'un article) des performances, en pratique, de notre solution par rapport a une implémentation naive.
Desirable skills to obtain this internship:
- savoir développer en Python
- une experience avec la programmation fonctionnelle
Est considéré comme un plus:
- une experience avec la théorie/implémentation d'un langage de programmation
- une experience avec le modèle de calcul MapReduce
Workplace: on site at Inria Paris (contact mentors for remote opportunities)
Environment: you will work shoulder to shoulder with all members of the Software Heritage team, and you will have a chance to witness from within the construction of the great library of source code.
Internship mentors:
- Stefano Zacchiroli (zack@upsilon.cc, Zack on Matrix)