1. In a computing environment that includes a programmable graphics processing unit, a method comprising, receiving arbitrary-sized data, evaluating how to compute discrete Fourier transforms of the data on the graphics processing unit, running at least some of the discrete Fourier transforms in parallel, and returning the computed discrete Fourier transforms.