2012-05-27 9 views
19

Julia - новый статистический язык программирования, который требует значительно более высокой производительности, чем конкурирующие языки. Я пытаюсь проверить это. У Джулии есть тест производительности, написанный на Python: https://github.com/JuliaLang/julia/blob/master/test/perf/perf.pyПример производительности Python от Julia в pypy

Я не могу заставить его работать с pypy. Возможно, это связано с несовместимостью numpypy с numpy, но я не достаточно далеко, чтобы это определить. Я следовал совету ImportError "...or just write 'import numpypy' first in your program...", но я получил еще один ImportError: "No module named numpy.linalg"

У меня почти нет опыта работы с Python, и я ищу полное решение, которое я могу запустить. Преимущество этого заключается в том, что мы можем сравнить сравнение яблок с яблоками (jit lang-to-jit lang).

+1

Это означает, что он находит numpy, но не numpy.lingalg, но имеет модуль модуляции numpy. Скорее всего, это проблема с установкой или разницей совместимости версий или несовместимостью. Я предлагаю вам напрямую связаться с авторами проекта Numpy PyPy. Полный код и полная трассировка ошибок были бы очень полезны для решения этой проблемы. –

+0

Я не уверен, что у меня установлена ​​Pypy Numpy. Я клонировал репо и попытался запустить установку.py в корне и в/ядре. в корне я сказал, что у меня неправильная настройка. в ядре я получаю ImportError: нет модуля с именем genapi. Я попытался установить модуль через pip, но его не удалось найти. – SFun28

+7

Мне бы хотелось увидеть это сравнение, если кто-то может заставить его работать. – StefanKarpinski

ответ

4

Linalg не применяется на данный момент. Я думаю, что новый ffi и получение 1.9 за дверью (которые требуют довольно много нужных исправлений, см. Трекер ошибок), получают главный приоритет. Я не думаю, что linalg прямо сейчас - это интересно. Мы хотели бы, чтобы сначала выполнялось несколько операций numpy. Хотя я открыт, чтобы убедиться. Аргументы?

+3

Я не могу утверждать, что мое любопытство по поводу pypy v. Julia имеет более высокий приоритет, чем то, что вы уже запланировали =) Возможно, другие блокированы linalg и может перезвонить. Или по предложению @TryPyPy код julia perf можно переписать с помощью любого PyPy, который поддерживает сегодня – SFun28

+0

, это немного больше compelx. Поддержка PyPy numpy не только незавершенна, но и производительность не совсем то, чем я бы хотел. Поэтому, даже если вы можете запустить тесты, мне не ясно, что я буду счастлив (сейчас) с результатами. Так что это немного сложный процесс в целом :) – fijal

22

Test of python and julia performance

Есть 4 теста на Джулию мерзавец (perf.py) в чистом Python. Здесь я бегу, на том же компьютере, perf.py (только чистый тест на Python) и perf.pl для сравнения яблок и яблок. Я немного волновался за время Python/PyPy:/

И ... Почему

## fibonacci ## 

def fib(n): 
    if n<2: 
     return n 
    return fib(n-1)+fib(n-2) 

медленнее в PyPy, чем в Python?


я отправляю этот вопрос https://bugs.pypy.org/issue1344 [PyPy медленнее, чем рекурсии python2.7, Python3.2 и Юли] я получаю следующий ответ:

This is a situation where the warmup time is very significant (it tries to inline all the recursion), but once you warm it up it's actually very fast.

Итак, я текст с разные номера n для fib (n). Действительно, PyPy идет быстрее, чем Python с> 30, но в рекурсии медленнее, чем Джулии:

[En полужирный быстрее реализации питон]

Recursion in Pypy Python and Julia


Поскольку реализованы с рекурсией, Quicksort и fib более медленны в Pypy. Джулия, кажется, быстрее, чем PyPy.

+1

Diego - спасибо за обмен! – SFun28

+18

Хороший материал, Диего. Хотя я не совсем уверен, как это выглядит так: «Julia и PyPy имеют одинаковую производительность». Это очень похоже на то, что «Юлия всегда выигрывает и часто довольно много» ;-) – StefanKarpinski

+0

Я проверил математический тест, вычисляя факторный, а не фиб. Из этого теста я получил результат, что CPython немного быстрее, чем Pypy. Я не знаю, почему математическая производительность CPython лучше, чем Pypy. –

 Смежные вопросы

  • Нет связанных вопросов^_^