Представлен HOPE, JIT-компилятор для языка Python, транслирующий в C++
HOPE представляет собой JIT-компилятор, оформленный в виде модуля на языке Python, транслирующий специально отмеченные блоки кода в представление на языке C++ и на лету компилирующий их в машинный код. При первом запуске Python-скрипта при помощи пакета setuptools и штатного C++ инструментария выполняется компиляция HOPE-блоков в форму разделяемой библиотеки, после чего результат кэшируется при последующих вызовах. Обрабатываемые при помощи HOPE функции помечаются специальным декоратором "@jit" или вызываются с использованием функции jit(), например:
from hope import jit @jit def poly(x, y, a): x1 = x - a y[:] = x1 + x1 * x1 или def sum(x, y): return x + y sum_opt = jit(sum)
Внутри компилируемых функций допускается использование специального подмножества языка Python с поддержкой явного определения типов, предоставляющего достаточные возможности для научных вычислений. Выигрыш в производительности при использовании HOPE по сравнению с обычным Python может достигать десятков раз - скорость выполнения скомпилированных функций приближается по производительности к программам на С++.
Источник: http://www.opennet.ru/opennews/art.shtml?num=40869
|
0 | Tweet | Нравится |
|