3 ms·
I have been recently porting to Python (with NumPy) some badly written C++ code. I was really shocked that the performance drops nearly 100 times (because of ma
by odiroot 15y ago
I have been recently porting to Python (with NumPy) some badly written C++ code. I was really shocked that the performance drops nearly 100 times (because of many nested loops).
NumPy working on PyPy would probably get me really near original performance. And it's not the advanced features I hope for -- ndarray and basic linalg operations is all I need to do my thesis.
Anyway guys, great job so far, looking forward to the future.
- cdavid 15y agoIf you have nested loops, numpy will indeed not help you. Numpy per-item access is actually slower than python usual container (list, tuple). You could post the code that is actually slow, so that one could help you to make it faster. As for pypy helping you, I hope that's the case. But what's in pypy today has not much to do with numpy, in the sense it is a complete re-implementation from scratch.
- bugsbunnyak 15y agoHave a look at suggestions here: http://scipy-lectures.github.com/advanced/optimizing/index.html http://scipy-lectures.github.com/advanced/optimizing/index.h... By far the most important first-order optimizization is to vectorize your computations.
- femngi 15y agoYou should read http://www.scipy.org/PerformancePython http://www.scipy.org/PerformancePython if you haven't already seen it since it deals with the performance of nested loops. The only issue I guess would be portability, for example to PyPy.
- fijal 15y agoThis does not cover PyPy and under PyPy behavior of those methods will be Very different.
- odiroot 15y agoI totally missed this guide. I'd definitely use Cython to optimize this. Previously I used Cython to wrap original C++ code and it performed really well but I got numerical differences in result.