HeadlinesBriefing favicon HeadlinesBriefing.com

mold : Éditeur de liens massivement parallèle

Hacker News •
×

L'édition de liens est une étape critique du processus de construction de logiciels qui combine des fichiers objets compilés en un seul exécutable ou bibliothèque partagée. Malgré des décennies d'efforts d'ingénierie, les temps d'édition de liens restent un goulot d'étranglement important dans le cycle édition-compilation-débogage, en particulier pour les grands programmes C++. Les éditeurs de liens existants exploitent un parallélisme limité, laissant la plupart des cœurs de CPU inactifs pendant l'édition de liens.

Nous présentons mold, un éditeur de liens Unix/Linux qui applique systématiquement le parallélisme de données sur l'ensemble du pipeline d'édition de liens. Nous analysons d'abord les contraintes architecturales qui empêchent les éditeurs de liens existants de passer à l'échelle, y compris la résolution de symboles enchevêtrée et le traitement des archives, puis montrons comment une conception de novo qui les découple surmonte ces limitations.

Sur de grands programmes réels, mold lie des binaires de débogage de plusieurs gigaoctets en quelques secondes au plus, et souvent en moins d'une seconde. Il est 2,4 à 16,1 fois plus rapide que l'éditeur de liens lld de pointe, et jusqu'à 112 fois plus rapide que le GNU ld traditionnel. Une étude d'ablation montre qu'aucune optimisation unique ne domine ; l'accélération provient de l'effet cumulatif de la parallélisation de toutes les passes.

Entités clés : Personnes : Rui Ueyama