Hi there,
I am a recently convert of python, which I started using for my
numerical computing needs (I am a PhD student in signal processing) to
replace matlab.
For those who do not know matlab, it is a big (and expensive)
software which implements a 'language' optimized for linear algebra, and
with time becomes one of the most used software for numerical
computation. In my field of research (signal processing), matlab is
almost a standard (by standard, I mean everybody knows it and uses it).
I think python with numpy/scipy is better in almost any way if you are
ready to invest some time.
Now, concerning pypy. The main idea of numpy is to give an array
class to python, so that most inner loops are not interpreted, but run
in Cpython or through highly optimized fortran libraries. In those
cases, python is fast enough for most cases. But there are some cases
where this paradigm of using linear algebra to speed things up does not
work really well (recursive algorithms); in those case, the loop +
function call cost of python makes any implementation for non toy
problems really slow. Right now, the only choice is to code the thing in
C, with a big loss on the flexibility side.
I was wondering if pypy has some solution/new approaches to this
problem. For example, when using numpy, I would suspect that many
functions calls are 'static', that is always expect the same type of
arguments; also, for simple loop on integers, my understanding is that
JIT compilation has some nice solution to give to have much better
performances (matlab has a JIT compiler to make loop faster for
interpreted code). It looks like at some point, there was some work done
in pypy relatively to numpy arrays, but I didn't find any documentation
on that.
cheers,
David