[Tutor] BLAS Implementation on Python

Stefan Behnel stefan_ml at behnel.de
Tue Mar 8 11:11:09 CET 2011


Alan Gauld, 08.03.2011 09:51:
> "Knacktus" wrote
>
>> He doesn't have to write it, as it is very obvious, that no Python code
>> on earth (even written by Guido himself ;-)) stands a chance compared to
>> Fortran or C. Look at this:
>
> There is one big proviso. The C or Fortran needs to be well written
> in the first place. It's quite possible to write code in Python that
> outperforms badly written C. And it is quite easy to write bad C!

It's seriously hard to write computational Python code that is faster than 
C code, though. It shifts a bit if you can take advantage of Python's 
dynamic container types, especially dicts, but that's rarely the case for 
mathematic computation code, which would usually deploy NumPy etc. in 
Python. Writing that in pure Python is bound to be incredibly slow, and 
likely still several hundred times slower than even a simple approach in C. 
There's a reason people use NumPy, C, Fortran and Cython for these things.

Remember that the OP's topic was a BLAS implementation. The BLAS libraries 
are incredibly well optimised for all sorts of platforms, including GPUs. 
They are building blocks that C programmers can basically just plug into 
their code to run hugely fast computations. There is no way Python code 
will ever be able to get any close to that.

Stefan



More information about the Tutor mailing list