[Numpy-discussion] The NumPy Mandelbrot code 16x slower than Fortran

Sebastian Haase seb.haase at gmail.com
Mon Jan 23 07:09:58 EST 2012

On Mon, Jan 23, 2012 at 12:23 PM, Sturla Molden <sturla at molden.no> wrote:
> Den 23.01.2012 10:04, skrev Dag Sverre Seljebotn:
>> On 01/23/2012 05:35 AM, Jonathan Rocher wrote:
>>> Hi all,
>>> I was reading this while learning about Pytables in more details and the
>>> origin of its efficiency. This sounds like a problem where out of core
>>> computation using pytables would shine since the dataset doesn't fit
>>> into CPU cache: http://www.pytables.org/moin/ComputingKernel. Of course
>>> C/Cythonizing the problem would be another good way...
>> Well, since the data certainly fits in RAM, one would use numexpr
>> directly (which is what pytables also uses).
> Personally I feel this debate is asking the wrong question.
> It is not uncommon for NumPy code to be 16x slower than C or Fortran.
> But that is not really interesting.
> This is what I think matters:
> - Is the NumPy code FAST ENOUGH?  If not, then go ahead and optimize. If
> it's fast enough, then just leave it.
> In this case, it seems Python takes ~13 seconds compared to ~1 second
> for Fortran. Sure, those extra 12 seconds could be annoying. But how
> much coding time should we spend to avoid them? 15 minutes? An hour? Two
> hours?
> Taking the time spent optimizing into account, then perhaps Python is
> 'faster' anyway? It is common to ask what is fastest for the computer.
> But we should really be asking what is fastest for our selves.
> For example: I have a computation that will take a day in Fortran or a
> month in Python (estimated). And I am going to run this code several
> times (20 or so, I think). In this case, yes, coding the bottlenecks in
> Fortran matters to me. But 13 seconds versus 1 second? I find that
> hardly interesting.
> Sturla

I would think that interactive zooming would be quite nice
("illuminating")  .... and for that 13 secs would not be tolerable....
Well... it's not at the top of my priority list ... ;-)

-Sebastian Haase

More information about the NumPy-Discussion mailing list