bbfrederick / rapidtide

rapidtide - a suite of programs for doing time lag correlation analysis on fMRI data
Apache License 2.0
75 stars 14 forks source link

RuntimeError: Undefined plan with threads. This is a bug #152

Closed dangom closed 3 months ago

dangom commented 4 months ago

Describe the bug

Calling latest rapidtide with the following call:

rapidtide --CVR --regressor co2.txt --offsettime -25 data.nii.gz cvr/data &

I keep getting this message printed over and over (seems to not cause any issues, but doesn't inspire confidence)

    FFTW_object = pyfftw.FFTW(input_array, output_array, axes, direction,
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Undefined plan with nthreads. This is a bug
RuntimeError: Undefined plan with nthreads. This is a bug
Exception ignored in: 'pyfftw.pyfftw._fftw_plan_with_nthreads_null'

To Reproduce Steps to reproduce the behavior: Clone repo and run rapidtide.

Expected behavior No RuntimeError messages.

Desktop (please complete the following information):

bbfrederick commented 4 months ago

Yeah, that's a longstanding (and often reported) bug in the current version of the Intel binary of pyfftw. It's been unaddressed for almost two years now - the project seems to be unmaintained, and I despair of it ever getting fixed. It's harmless - pyfftw works fine - but as you say, it does not inspire confidence. Pyfftw is also not compatible with python 3.12, which is irritating.

As of rapidtide v2.8.8 (released this afternoon!) pyfftw is now an optional dependency. You can remove it from your environment (or never install it) and rapidtide will be perfectly happy. I didn't even notice a speed hit (at least on ARM), so it seems like it no longer provides much benefit.

It's actually always been optional, but was in the requirements list so it got installed by default. If you remove it from your environment your current installation will probably be fine.