О финансировании для ускорения CPython
На прошлой неделе Марк Шеннон в рассылке python-dev выступил с предложением об ускорении CPython.
Марк сказал, что можно в следующие несколько лет ускорить интерпретатор примерно в 5 раз. И Марк сам готов взяться за это дело — у него есть опыт в реализации виртуальных машин, учёная степень и вообще даже код для первой стадии готов.

Нужно определиться с финансированием. Предполагается, что будет четыре стадии, каждая потребует примерно по $500 000 (38 233 350 руб.). Всего понадобится около $2 000 000 (152 933 400 руб.).
Каждая стадия должна дать прирост производительности на 50%. Стадию первую можно будет получить уже в Python 3.10.

Марк предлагает, чтобы PSF организовал сбор средств и был их распорядителем — половину получит исполнитель, половина останется в фонде для нужд поддержки кода.

В той же переписке Стивен Д'Апрано заметил:
Не хочу показаться враждебным, но это звучит как: «У меня есть патч для Python, который сделает его в 1,5 раза быстрее, но вы его не получите, пока не заплатите!» // I don't mean to be negative, or hostile, but this sounds like you are saying "I have a patch for Python that will make it 1.5 times faster, but you will never see it unless you pay me!"

На что Марк отвечал:
По-моему именно так работает бизнес ;) У меня тут есть штука, скажем iPhone, если он вам нужен — платите мне. Думаю, что ускорение CPython на 50% стоит нескольких сот iPhon'ов. // I believe that's how business works ;) I have this thing, e.g an iPhone, if you want it you must pay me. I think that speeding CPython 50% is worth a few hundred iPhones.

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

С технической стороны предполагается, что пятикратного ускорения можно добиться путём использования двух типов оптимизаций: специализации (трансформации кода в соответствии с типами данных, обнаруженными во время исполнения) и компиляции в машинный код (сократит затраты на интерпретацию). При этом различные части приложения будут обрабатываться разными слоями, в зависимости от частоты использования этих частей.

Больше информации о задумке доступно в репозитории.

Категории

Интерпретатор

На заметку
Читайте нас в Twitter. Ссылка в самом низу страницы.