Adding multithreading to scipy.fft

Published: 08/12/2019

What did you do this week?

  • Fixed a small inconsistency with the numpy.fft API when the transform shape is given but not the axes (scipy#10594)
  • Gotten my CuPy PR into a review ready state. Fixing uarray backend support (scipy#2355)
  • Migrated pypocketfft from OpenMP to a custom thread-pool that I wrote to handle fork on POSIX systems. This addresses all the main concerns with adding OpenMP into SciPy (pypocketfft!23, pypocketfft!24)
  • Using the updated pypocketfft, I was then able to open a PR adding multithreading support to the scipy.fft API (scipy#10614)

What is coming up next?

- Create, or at least open issue for, a mkl-fft backend
- Expand the scipy.fft tutorial to include installing and using new FFT backends

There are also a number of minor features that could be added to pypocketfft such as shape changing transforms or pre-planned transforms. Though at this late stage in the project, my focus is on polishing the current feature set.

Did you get stuck anywhere?

No significant blockers this week.