It would be beneficial to have a MathNet.Numerics.Providers.FourierTransform.FourierTransformControl option to disable automatic parallel processing inside FFT providers for FFT transform sizes >= 1024.
If parallel processing is already applied on higher level (e.g. parallel processing of multiple signals) the additional level of parallelization might cause (minor?) performance degradation.
Applying parallel processing on higher level is usual more performant, since less thread handling overhead is created.
My first statement is not valid for all transform sizes.
I've done some profiling: Two level parallel processing (high level & FFT provider internal) has indeed performance gain for transform sizes >= 64k.
It would be beneficial to have a MathNet.Numerics.Providers.FourierTransform.FourierTransformControl option to disable automatic parallel processing inside FFT providers for FFT transform sizes >= 1024. If parallel processing is already applied on higher level (e.g. parallel processing of multiple signals) the additional level of parallelization might cause (minor?) performance degradation. Applying parallel processing on higher level is usual more performant, since less thread handling overhead is created.