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

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

21.05.2021     

Компания 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/
Автор:
Ксения Шестакова Обозреватель


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

См. также

ARM разработала гибкий пластиковый микропроцессор

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

Специалисты ARM представили пластиковую версию процессора Cortex-M0. Решение с тонкопленочными транзисторами на полиамидной подложке унаследовало все возможности популярного микроконтроллера.

сегодня в 14:42    2377    user1015646    0       

Intel признает, что отстает от конкурентов на четыре года и будет выпускать чипы для Qualcomm

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

Представители корпорации Intel заявили, что компания начнет производство чипов Qualcomm. Также компания подготовила план развития, чтобы догнать своих конкурентов, таких как Taiwan Semiconductor Manufacturing и Samsung Electronics, к 2025 году.

30.07.2021    1151    SKravchenko    1       

Представлено водяное охлаждение для чипов мощностью 2,6 кВт

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

Компания TSMC, один из крупнейших производителей микропроцессоров, разработала инновационную систему водяного охлаждения. Она позволяет отвести от чипа 2,6 кВт тепла.

30.07.2021    1670    user1015646    1       

«Сбер» впервые в России получил патент на программу, написанную ИИ

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

Подразделение Sber AI зарегистрировало в Роспатенте приложение, написанное предварительно обученной нейросетью. Искусственный интеллект сгенерировал код на C++ и Java.

30.07.2021    980    VKuser24342747    3       

Линус Торвальдс добавит в Linux драйвер для NTFS от российских разработчиков

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

Создатель Linux заявил о готовности добавить драйвер в ядро операционной системы, если программисты из России займутся его интеграцией и сопровождением. Торвальдс лично примет этот pull-запрос.

28.07.2021    2095    VKuser24342747    0       

Amazon представил игровой движок с открытым исходным кодом

Новость ИТ-новость Новости компаний

Компания Amazon всерьез намерена покорить все цифровые рынки – в том числе индустрию гейминга. Разработчики выпустили движок Open 3D Engine для создания игр и других приложений с открытым исходным кодом.

28.07.2021    855    user1015646    0       

Microsoft представила эмулятор Altair 8800 на Azure Sphere

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

Microsoft представила эмулятор ретрокомпьютера Altair 8800 на операционной системе для работы с облаком Azure Sphere.

27.07.2021    1732    SKravchenko    0       

Microsoft выпустит облачную ОС

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

Компания Microsoft активно конкурирует с Amazon и Google на рынке передовых облачных технологий. Чтобы предоставить пользователям возможность гибридной работы в Windows с любого устройства, разработчики анонсировали облачную ОС – сервис Windows 365.

26.07.2021    1906    user1015646    0       

Google добавит в Chrome режим приоритетной загрузки сайта по HTTPS

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

В новой версии Google Chrome появится режим HTTPS-First, который заставит браузер всегда пытаться загружать сайты по защищенному протоколу. В будущих релизах веб-обозревателя эта функция будет включена по умолчанию.

21.07.2021    1262    VKuser24342747    0       

JetBrains назвала JavaScript и SQL самыми популярными языками в России

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

Компания JetBrains провела ежегодный опрос об экосистеме разработки в 2021 году. В нем приняли участие 31 743 разработчика из 183 стран, в том числе из Российской Федерации и СНГ.

21.07.2021    1434    VKuser24342747    3       

MongoDB с последней версией Atlas стал бессерверным

Новость СУБД ИТ-новость

13 июля MongoDB представила версию 5.0 платформы баз данных NoSQL. Последние обновления поддерживают многие рабочие нагрузки в бессерверном режиме. Новая версия включает новые возможности для приложений и улучшения конфиденциальности и безопасности.

20.07.2021    1725    SKravchenko    1       

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

Новость Искусственный интеллект ИТ-новость Новости компаний Яндекс

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

20.07.2021    1651    VKuser24342747    2       

Появился способ игнорировать запрет установки Windows 11 на слабые ПК

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

Новая Windows 11 не может быть установлена на компьютеры, которые не соответствуют системным требованиям, определенным разработчиками. Однако продвинутые пользователи нашли способ обойти это ограничение.

19.07.2021    1508    VKuser24342747    0       

На свежих процессорах Intel создали микрокомпьютер под Windows 10

Новость Windows Гаджеты ИТ-новость Микроэлектроника

Энтузиасты и стартаперы полюбили Arduino и Raspberry Pi. Но инженеры Commate Computer (Commell) пошли дальше и представили миниатюрный ПК LE-37O на базе новейших чипов Intel Tiger Lake. И на нем можно запустить Windows 10.

16.07.2021    1405    user1015646    3       

Вот это поворот: Microsoft выпустила дистрибутив Linux

Новость Linux ИТ-новость Новости компаний

Пока мир замер в ожидании новой Windows 11, Microsoft решила преподнести пользователям большой сюрприз – и представила собственный дистрибутив Linux, CBL-Mariner 1.0.

15.07.2021    1824    user1015646    2       

Стартовала программа возмещения затрат разработчикам на скидки для малого бизнеса

Новость Законодательство Импортозамещение ИТ-новость Облачные технологии

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

15.07.2021    880    ЕленаЧерепнева    0       

Исследователи установили: ИИ-программы для собеседований не понимают речь соискателя

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

Эксперты из Массачусетского технологического института (MIT) изучили приложения, анализирующие резюме кандидатов. Ученые пришли к выводу, что такой софт плохо справляется с задачами и дает неверные результаты.

14.07.2021    813    VKuser24342747    1       

Юбилейный индекс TIOBE на июль. Рейтинг отмечает 20-летие

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

Ежемесячный индекс TIOBE показывает, какие языки программирования наиболее популярны, и как их популярность растет с течением времени. В июле TIOBE отмечает 20-летие, публикует новый рейтинг и график популярности языков программирования за 20 лет.

12.07.2021    1275    SKravchenko    0       

Google сделает обязательной двухэтапную аутентификацию для аккаунтов разработчиков

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

До конца года всем разработчикам мобильных приложений для продуктов Google нужно подключить двухэтапную аутентификацию. Также им придется пройти дополнительную верификацию личности. 

08.07.2021    1139    VKuser24342747    1       

Google установил новый обязательный формат для Android-приложений

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

Компания Google объявила, что стандарт приложений Android App Bundle (AAB) станет обязательным в Play Store. Он заменит монолитный формат APK.

07.07.2021    1797    user1015646    0       

Токен исходного кода интернета продали с аукциона

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

NFT-токены – уникальные двойники цифровых произведений – становятся все популярнее: их стали предлагать на традиционных аукционах с вековой историей. На этот раз ушел с молотка токен исходного кода интернета – на Sotheby’s его продали за 5,43 млн долларов США.

06.07.2021    2433    user1015646    0       

Российский разработчик научил нейросеть генерировать голос Геральта из The Witcher 3

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

Программист под ником nikich340 создал модификацию A Night to Remember для игры The Witcher 3: Wild Hunt, в которую добавлены новые реплики главного героя, озвученные нейросетью. 

06.07.2021    1626    VKuser24342747    0       

Linux получил крупнейшее обновление с момента выпуска пятой версии

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

Представлен первый стабильный релиз ядра Linux 5.13. По словам Линуса Торвальдса, это один из самых значительных релизов 5.x. ОС получила возможность корректно работать на процессорах Apple M1 и Intel Alder Lake.

05.07.2021    1777    VKuser24342747    4       

Amazon запустил конкурс на поиск уязвимостей AWS BugBust

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

Компания Amazon объявила о новом челлендже по поиску уязвимостей в AWS. И это не традиционная баунти-программа: здесь куда больше геймификации и амбициозная цель – совместно избавиться от 1 миллиона багов.

05.07.2021    1828    user1015646    0       

ИИ-помощник для программистов от Microsoft сможет дописывать код

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

Microsoft и GitHub представили совместный проект Copilot («второй пилот») на базе технологий организации OpenAI. Ассистент способен анализировать код и предлагать варианты завершения строк в зависимости от контекста. 

05.07.2021    2045    VKuser24342747    2