Facebook открыл код форка CPython для Instagram

Facebook открыл код форка CPython для Instagram

21.05.2021      93621

Компания Facebook выложила в открытый доступ исходный код Cinder. Он обеспечивает работу Instagram и включает инструменты оптимизации, которые позволили нарастить производительность платформы.

Что такое Cinder

Cinder – это форк проекта CPython версии 3.8.5. Он доступен в репозитории на GitHub. Проект выложили «как есть» – без подробной документации, местами с комментариями и мелкими недостатками, которые встречаются в любом рабочем коде. Cinder достаточно надежный, но если в процессе использования возникнут проблемы, решать их придется самостоятельно.

В Facebook подчеркнули: Cinder – попытка улучшить CPython, но не альтернатива ему. Компания заявила, что не планирует поддерживать Cinder как платформу с открытым исходным кодом.

Создатели Cinder надеются, что созданные ими оптимизации однажды смогут войти в основную ветку CPython. Они также помогут другим командам, которые развивают проект и стремятся улучшить его производительность.

Чем Cinder отличается от CPython

Проект CPython считают эталонной реализацией Python. Это интерпретатор байт-кода, написанный на языке С. Его развитием занимаются разработчики во главе с создателем Python Гвидо ван Россумом.

В Cinder реализовано Inline-кэширование байткода. Интерпретатор находит фрагменты программы, которые можно оптимизировать, и динамически заменяет их на ускоренные варианты. Чем больше в вашем коде повторяющихся вызовов функций, тем потенциально сильнее такое кэширование поможет ускорить программу.

Также форк поддерживает активное вычисление сопрограмм. При асинхронных вызовах функций, код которых обрабатывается сразу и не поддерживает команду await, проект не будет создавать сопрограмму или привлекать обработчик событий в цикле. Он сразу подставит результат работы функции в нужное место. В Facebook подсчитали, что в коде Instagram такая оптимизация обеспечивает 5% рост скорости работы.

Зачем нужна выборочная JIT-компиляция в Cinder

В проекте на Cinder можно включить выборочную JIT-компиляцию на уровне отдельных функций и методов класса. Для этого нужно либо установить значение переменной окружения PYTHONJIT=1, либо использовать опцию -X jit при сборке.

При такой компиляции JIT преобразует байткод Python в HIR (высокоуровневое промежуточное представление). Но если стандартный байткод использует стековую виртуальную машину, то HIR – регистровую. Кроме того, представление учитывает данные о типах и другую информацию, важную для определения производительности кода.

В свою очередь, HIR преобразуется в SSA (static single assignment) – представление, в котором каждой переменной единожды присваивается значение. После нескольких стадий оптимизации создается низкоуровневое представление (LIR). Из него в итоге и создаются ассемблерные инструкции.

Разработчики подсчитали, что в результате JIT-компиляции тесты производительности будут выполняться в 1,5-4 раза эффективнее. Также можно указать список функций, для которых выполняется такая компиляция.

Для Cinder доступен экспериментальный компилятор Static Python. В отдельных случаях его использование совместно с JIT обеспечивает 7-кратный выигрыш в производительности в сравнении с CPython.



Источник: https://infostart.ru/journal/news/tekhnologii/facebook-otkryl-kod-forka-cpython-dlya-instagram_1445917/
Автор:
Обозреватель


В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Инспекторы смогут проводить дистанционные проверки через смартфон

Новость ИТ-новость Мобильные приложения

Минэкономразвития представило мобильное приложение, которое позволит осуществлять надзорные мероприятия бизнеса без посещения офиса. Программа работает через Госуслуги.

28.11.2022    1006    VKuser24342747    0       

«Яндекс» представил бесплатный сервис для быстрого поиска в облаке

Новость ИТ-новость Облачные технологии

Сервис Managed Service for OpenSearch от платформы Yandex Cloud предназначен для оптимизации поисковых систем и проверки стабильности и безопасности работы приложений. Услуга доступа в режиме Public Preview.

24.11.2022    1297    VKuser24342747    1       

В декабре начнут действовать новые правила регистрации доменов .RU и .РФ

Новость ИТ-новость Роскомнадзор

С 12 декабря Роскомнадзор получит право прекращать делегирование домена, если он оформлен нелегально, или на сайте содержится запрещенная в России информация.

23.11.2022    1067    VKuser24342747    1       

Stack Overflow запустил проект для оффлайн-доступа к форуму

Новость ИТ-новость Разработка

Проект под названием Overflow Offline позволяет скачать актуальную версию архива вопросов и ответов по разработке ПО. По объему данных база форума уступает только «Википедии».

02.11.2022    1084    VKuser24342747    1       

Минцифры запустило магазин российского ПО из реестра ИТ-решений

Новость Импортозамещение ИТ-новость

Маркетплейс «Руссофт» стал доступен для всех пользователей. С его помощью можно подобрать программы от отечественных разработчиков для решения корпоративных задач бизнеса.

21.10.2022    1599    VKuser24342747    4       

В ноябре начнется создание российского государственного аналога GitHub

Новость ИТ-новость

Правительство озвучило дату запуска эксперимента по разработке отечественного репозитория ПО. Исходники программ, в том числе разработанных для госорганов, будут публиковаться в нем под открытой лицензией.

19.10.2022    2324    VKuser24342747    14       

OpenAI опубликовала код системы распознавания речи Whisper

Новость Искусственный интеллект ИТ-новость

OpenAI открыла исходный код эталонной реализации на базе фреймворка PyTorch и набор уже обученных моделей для использования под лицензией MIT. Нейросеть используется для перевода речи в текст.

28.09.2022    2472    VKuser24342747    0       

Вторая версия среды разработки для плат Arduino вышла из бета-теста

Новость ИТ-новость Микроэлектроника

Arduino IDE 2.0 получила стабильную версию, в которой появилась поддержка автодополнения кода и темная тема. Разработка заняла несколько лет. Программа распространяется бесплатно.

23.09.2022    2576    VKuser24342747    0       

Основатель движения свободного ПО выпустил руководство по языку C

Новость Linux ИТ-новость Языки программирования

Ричард Мэттью Столлман, основатель Фонда свободного программного обеспечения, представил руководство по языку C и расширениям GNU. Пособие доступно всем желающим и предназначено как для опытных, так и начинающих программистов.

19.09.2022    2115    VKuser24342747    0       

«Ростелеком» предложил создать национальную экосистему на базе «Авроры»

Новость Импортозамещение ИТ-новость Мобильные приложения

Провайдер считает, что государственная мобильная экосистема поможет обеспечить технологическую независимость и экономический подъем страны. А ОС «Аврора» наиболее перспективная разработка для достижения этих целей.

15.09.2022    2102    VKuser24342747    5       

Яндекс выложил в открытый доступ инструмент для разработки мобильных приложений

Новость ИТ-новость Мобильные приложения Яндекс

Фреймворк DivKit от Яндекса стал доступен как open source решение. Инструмент позволяет менять интерфейс приложений без скачивания обновлений и значительно ускоряет мобильную разработку.

02.09.2022    1762    VKuser24342747    0       

Группа компаний «Астра» представила собственную мобильную ОС

Новость Linux ИТ-новость Мобильные приложения

Доработанная ОС Astra Linux Special Edition может быть запущена на большом числе мобильных устройств, в том числе на планшетах и смартфонах с процессорами на архитектурах ARM, «Эльбрус» и x86-64.

25.08.2022    1446    VKuser24342747    1       

В России разработаны меры для решения проблемы нехватки ИТ-специалистов

Новость ИТ-новость

Вице-премьер Дмитрий Чернышенко сообщил, что сейчас экономике страны не хватает 1 млн ИТ-специалистов. Способы преодоления дефицита закреплены в программе нацпроекта «Цифровая экономика»

05.08.2022    1615    VKuser24342747    11       

Яндекс открыл доступ к фреймворку для создания приложений с микросервисной архитектурой

Новость GitHub ИТ-новость Яндекс

Инструмент Userver опубликован как бесплатное open source решение. Яндекс уже несколько лет эффективно его использует в своих приложениях Go, «Еда», «Лавка», «Доставка» и другие. Фреймворк находится в стадии бета – переезда на открытую разработку.

02.08.2022    2458    VKuser24342747    19       

Бизнес сможет использовать повышающий коэффициент для расходов на покупку ПО

Новость ИТ-новость

Принят закон, который позволяет компаниям учитывать расходы на отечественные программы и радиоэлектронное оборудование с коэффициентом 1,5. Решения должны быть включены в соответствующие реестры и относиться к ИИ.

26.07.2022    2245    VKuser24342747    0       

Минэкономразвития тестирует миграцию с Windows 10 на Astra Linux

Новость ИТ-новость

Министерство проводит эксперимент, в ходе которого сотрудники используют российскую ОС Astra Linux вместо Windows 10. По словам главы департамента, эксперимент проходит успешно.

11.07.2022    1794    VKuser24342747    0       

Вышла версия открытого текстового редактора Vim 9.0

Новость ИТ-новость

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

07.07.2022    1966    VKuser24342747    0       

 «Яндекс» открыл доступ к SmartCaptcha и нейросети по генерации текстов 

Новость ИТ-новость Яндекс

Компания открыла доступ к алгоритму SmartCaptcha, который защищает сайт от спама и DDoS-атак, а также к проекту YaLM 100B, способному писать тексты на английском и русском языках. 

29.06.2022    2188    VKuser24342747    0       

«Яндекс» предложил разработчикам пройти диагностику технических навыков

Новость Кадровые агентства, подбор персонала ИТ-новость Яндекс

Компания запустила сервис, при помощи которого можно получить оценку своих технических навыков от специалистов «Яндекса». Тестирование включает онлайн-интервью и решение задач с реальных собеседований. 

27.06.2022    2064    VKuser24342747    1       

GitHub открыл доступ всем разработчикам к ИИ-помощнику Copilot по подписке

Новость GitHub Искусственный интеллект ИТ-новость

Github Copilot стал общедоступным, но для его использования пользователю репозитория нужно приобрести подписку. Хотя некоторые разработчики могут пользоваться инструментом бесплатно.

24.06.2022    3482    VKuser24342747    1       

В России планируют учредить Федерацию спортивного программирования

Новость ИТ-новость

Минцифры и Минспорта подписали меморандум, в котором закреплено сотрудничество ведомств по развитию в стране спортивного программирования и проведение первого официального чемпионата.

21.06.2022    2611    VKuser24342747    6       

Microsoft окончательно прекратила поддержку Internet Explorer

Новость Интернет ИТ-новость

Microsoft прекратила выпуск обновлений для своего браузера Internet Explorer, а с августа начнет удалять приложение из актуальных версий Windows. Эксперты полагают, что из-за этого пострадает много бизнес-пользователей.

17.06.2022    3189    VKuser24342747    4       

В России начал работу отечественный сервис мониторинга сбоев

Новость Импортозамещение Интернет ИТ-новость

Российская компания BrandAnalytics запустила платформу «Детектор сбоев», предназначенную для отслеживания работоспособности сайтов и сервисов, в том числе русскоязычных.

16.06.2022    1990    VKuser24342747    0       

Минцифры запустило систему отслеживания поддельных сайтов

Новость Безопасность Интернет ИТ-новость

Информационная система под названием «Антифишинг» способна обнаруживать мошеннические веб-ресурсы, которые выглядят как официальные сайты госорганов, компаний и соцсетей.

14.06.2022    2909    VKuser24342747    0       

GitHub прекратил поддержку редактора Atom ради перехода на VS Code

Новость GitHub ИТ-новость

GitHub объявил о прекращении разработки редактора кода Atom. К концу года все проекты в этом приложении станут доступны только для чтения. Причина – медленное развитие приложения.

10.06.2022    2787    VKuser24342747    2