Как сделать Python-код универсальным и быстрым: разработка нового компилятора
Краткое резюме
В статье обсуждается разработка компилятора для Python, который преобразует код в кроссплатформенный машинный код. Цель проекта — повысить скорость и портируемость Python-приложений, сделав их совместимыми с различными платформами.
В этой статье мы расскажем о создании компилятора для Python, который генерирует оптимизированные ядра и сохраняет простоту исходного кода.
**Введение**
Читатели часто интересуются, как работают интерпретаторы, компиляторы и среды исполнения. Python — популярный язык программирования, который ценят за простоту, но эта простота может привести к снижению производительности при высоких нагрузках.
Автор этой статьи вместе с Юсуфом Олокобой, основателем компании Muna, решил рассмотреть, как можно улучшить скорость и портируемость кода Python. Для этого необходимо создать компилятор, который будет преобразовывать обычный код в быстрые и легко переносимые исполняемые файлы.
Проект стартовал в начале 2024 года с целью разработки инструмента, способного компилировать исходный код Python в кроссплатформенный машинный код. Ранее предпринимались различные попытки достичь этой цели, включая разработку сред исполнения (Jython, RustPython), предметно-ориентированных языков (Numba, PyTorch) и даже новых языков программирования (Mojo).
Однако требовался инструмент, который мог бы:
* компилировать Python в полностью опережающем режиме без модификаций;
* работать без интерпретатора Python и других интерпретаторов;
* иметь минимальные накладные расходы по сравнению с программой, написанной на необработанном C или C++;
* быть совместимым с различными платформами, включая серверы, ПК, мобильные устройства и браузеры.
В статье подробно рассматривается, как возникла идея проекта, как началась реализация решения, и как оказалось, что ключевым элементом является искусственный интеллект. Также описывается, как удалось достичь обслуживания тысяч уникальных устройств в месяц и как в этом помогают скомпилированные функции, написанные на Python.
**Контейнеры не всегда оптимальны для распространения сборок при работе с ИИ**
Интерес к искусственному интеллекту возник у автора в 2018 году, когда этот термин ещё был известен как «глубокое обучение». На тот момент автор недавно окончил колледж и набирался опыта в своём первом стартапе, будучи сооснователем технологической компании.