octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Working patch for FFTW 3.0.x and Nd FFT's


From: Paul Kienzle
Subject: Re: Working patch for FFTW 3.0.x and Nd FFT's
Date: Tue, 17 Feb 2004 21:41:19 -0500


On Feb 17, 2004, at 5:00 PM, John W. Eaton wrote:

On 17-Feb-2004, David Bateman <address@hidden> wrote:

| According to John W. Eaton <address@hidden> (on 02/17/04):
| > I'm not sure of the best locations for them since I don't know the
| > typical sizes of the data. Should they always go inside the innermost
| > loops?
|
| I'd rather they not go in the inner most loop. But the problem is what
| happens in a case like "a = rand(2^20,1); fft(a)" which will call
| convert_packcomplex_1d and will only call the outer loop once, but
| the inner one "2^20 / 2 - 1" times. So, now that I think about it, I
| really don't know either. It depends really on what data is handed to
| them.
|
| The fact is that these two routines occupy a minor proportion of the
| time relative to the FFTW code itself. So a compromise might be to
| just have a single call to OCTAVE_QUIT at the top of
| convert_packcomplex_1d and convert_packcomplex_Nd.

OK, I added calls to OCTAVE_QUIT at the beginning and end of each of
these functions and in the Nd code, I also added calls to OCTAVE_QUIT
in between each set of loops.  Perhaps that will be enough to keep
Octave from being too sluggish to respond if an interrupt happens to
occur while one of these functions is running.

Is it possible to fall back to a long jump for the impatient?
That is, if you press Ctrl-C twice,  can you trigger a long
jump directly from the signal?

The main reason I see why not to do it this way is
because it may leak memory, or otherwise fail to
free resources.

This would be a problem in the last case I encountered
it, which was full(sparse(5000,5000,1)), which failed
to return immediately when Ctrl-C was pressed.

It would be nice to convert Ctrl-C into a C++ exception
directly.  IIRC, the ada runtime is supposed to be able
to convert signals into exceptions, but I was never able
to find it in the gnu ada code.  Maybe they don't.

The alternative approach is radical: garbage collection.
This is not something any of us have time to consider
in a pre-2.2 release.

Paul Kienzle
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]