MTPC: Новый подход к параллельной компиляции внутри модулей LLVM

24.05.2026 Опубликовано | Переведено с испанского

Команда разработчиков LLVM представила предложение под названием Multi-Thread Parallel Compilation (MTPC) для улучшения ThinLTO. В настоящее время этот метод распараллеливает целые модули, но большие модули обрабатываются последовательно, создавая узкие места. MTPC стремится разрушить этот барьер, разделяя работу на уровне функций.

Модуль компилятора LLVM, разделенный на светящиеся параллельные потоки, несколько конвейеров компиляции на уровне функций работают одновременно, блоки кода проходят через разноцветные полосы обработки, узкое место распадается на более мелкие оптимизированные сегменты, архитектура ThinLTO визуализирована как взаимосвязанные узлы, техническая инженерная иллюстрация, киберпанковое промышленное освещение, неоново-синие и оранжевые блики на металлических дорожках, фотореалистичный рендер с четким фокусом на путях параллельного выполнения

Как работает внутримодульный параллелизм в ThinLTO 🚀

MTPC вводит возможность разделения большого модуля на более мелкие единицы на основе функций. Каждая функция может быть скомпилирована и оптимизирована в отдельном потоке при условии правильного управления зависимостями данных и глобальными ссылками. Это позволяет многоядерным процессорам работать одновременно внутри одного модуля, сокращая время компиляции в проектах с очень большими исходными файлами.

Драма модулей, которые считали себя неприкосновенными 😅

До сих пор большие модули наслаждались спокойной жизнью: весь код компилировался последовательно, как очередь в супермаркете. С MTPC этим ленивым функциям придется начать работать параллельно, будто начальник сказал им, что кофе закончился. Разработчики смогут попрощаться с перерывами в ожидании завершения компилятора, хотя какой-нибудь модуль наверняка устроит забастовку из-за отсутствия синхронизации.