2011-12-07 4 views
4

성능이 상당히 중요한 Python 프로젝트가 있습니다. 솔직히 파이썬 (적어도 순수 파이썬)은 그 직업을위한 최고의 툴이 아니라는 것을 알고 있습니다 만, 나는 사람들이 그것을 수정할 수 있도록 아주 단순한 파이썬 버전의 리서치 코드를 배포하기를 원하기 때문에 그것을 사용하고 있습니다. 복잡한 환경을 설정할 필요가 없습니다. (나는 또 다른 구현을 D로 작성했는데, 훨씬 빠르지 만 해킹하기가 더 어렵습니다.)파이썬 : PyPy : SciPy/카이 제곱 분포?

저는이 인터프리터로서 PyPy를 사용하고이 코드를 사용하는 사람에게 추천했습니다. 이것은 나에게 적당한 속도를주고 있었다. 그런 다음 알고리즘을 조정하기로 결정하고 SciPy의 일부 기능에 액세스해야했습니다 (필요한 모든 것은 카이 제곱 분포의 CDF, 생존 함수 및 역 CDF입니다). SciPy에 액세스하기 위해 CPython에서 코드를 실행 해봤는데 당밀로 느리다. 내가 PyPy에서 약간의 비트와 SciPy의 조각을 사용하실 수 있습니다

  1. kludge :

    사람은 세 가지 중 하나를 제안 할 수 있습니다.

  2. 더 나은, 순수 파이썬 구현 자유형 라이센스하에 내가 필요 카이 제곱 분포 기능?

  3. 으로 CPython에서 병목 현상을 JIT하는 방법? 나는 Psyco에 대해 알고 있지만, 유지가되지 않는 것처럼 보이며 32 비트 시스템에서만 작동합니다.

+0

내가 파이썬에서 통계 코드의 구현이 더 자주 수치 조리법의 코드의 직접적인 음역보다 것으로 나타났습니다

환호 (http://www.nr.com/aboutNR3book.html) . 따라서, Chi-Squared 분포 함수를 찾을 수 없다면 항상 음역 접근법이 있습니다. 여기 6 장 : http://www.nrbook.com/a/bookcpdf.php. – Wilduck

+0

@Wilduck : 번역 옵션에 대해 알고 있습니다. 최후의 수단으로 내가 필요로하는 것을 D 표준 라이브러리에서 번역 할 수 있습니다. 이것은 주 프로그램과 거의 비슷한 복잡한 수치 코드이므로, 그렇게하지 않는 것이 좋습니다. – dsimcha

답변

5
상대적 soonish 일어날 수 있도록하기 위해 몇 가지 작업이 있지만 SciPy하면 (즉, NumPy와의 지원 부분 집합을 사용할 수 있도록 야간 사용하고 약간의 조정을 기꺼이 제공, 아직 PyPy에서 작동하지 않습니다

어쨌든 빠르게 팽창합니다.) 파이썬으로의 SciPy 기능 포팅을 시도해 보시기를 권합니다. 비교적 간단해야하지만 여전히 작동해야합니다. 이것은하기 matplotlib의 CPython을 포함시켜 pypy에서 실행되는 : http://baroquesoftware.com/~fijal/extreme_hacks.png

EDIT2을 :

편집이 :)이도 빨리 일어날 수 있도록 PyPy의 웹 사이트에 NumPy와 기금 모금도 있습니다 예는 http://morepypy.blogspot.com/2011/12/plotting-using-matplotlib-from-pypy.html을 참조하십시오. fijal