[Numpy-discussion] interrupting large matrix operations

David Cournapeau cournape at gmail.com
Fri Sep 10 08:22:03 EDT 2010


On Fri, Sep 10, 2010 at 9:05 PM, Tom K. <tpk at kraussfamily.org> wrote:
>
> OK, I know it's my problem if I try to form a 15000x15000 array and take the
> cosine of each element, but the result is that my python session completely
> hangs - that is, the operation is not interruptible.
>
> t=np.arange(15360)/15.36e6
> t.shape=(-1,1)
> X=np.cos(2*np.pi*750*(t-t.T))
> <hangs indefinitely>
>
> I'd like to hit "control-c" and get out of this hung state.
>
> What would it take to support this?

It is difficult to support this in every case. The basic way to handle
ctr+c is to regularly check whether the corresponding signal has been
sent during computation. The problem is when to check this - too
often, and it can significantly slow down the processing.

For ufuncs, I am a bit surprised it is not done until the end of the
processing, though. What happens exactly when you do Ctrl+C ? It may
take a long time, but it should raise a keyboard interrupt at the end
(or after the intermediate computation t-t.T which may take quite some
time too).

> (I'm running ancient numpy and python at work, so if this is already
> supported in later versions, my apologies)

What does ancient mean ? Could you give us the version (numpy.__version__)

cheers,

David



More information about the NumPy-Discussion mailing list