top
logo


Представлен HOPE, JIT-компилятор для языка Python, транслирующий в C++ PDF Печать E-mail
20.10.14 06:15

Разработчики из Института астрономии и исследовательской лаборатории космологии Швейцарской высшей технической школы Цюриха открыли исходные тексты проекта HOPE, разработанного для ускорения выполнения программных систем на языке Python, используемых для астрономических вычислений. Код проекта распространяется под лицензией GPLv3.

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 может достигать десятков раз - скорость выполнения скомпилированных функций приближается по производительности к программам на С++.

Read more http://www.opennet.ru/opennews/art.shtml?num=40869

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика