I want to write a really, really, slow program for MATLAB. I’m talking like, O(2^n) or worse. It has to finish, and it has to be deterministically slow, so no “if rand() = 123,123, exit!” This sounds crazy, but it’s actually for a distributed systems test. I need to create a .m file, compile it (with MCC), and then run it on my distributed system to perform some debugging operations.
The program must constantly be doing work, so sleep() is not a valid option.
I tried making a random large matrix and finding its inverse, but this was completing too quickly. Any ideas?
This naive implementation of the Discrete Fourier Transform takes ~ 9 seconds for a 2048 long input vector x on my 1.86 GHz single core machine. Going to 4096 inputs extends the time to ~ 35 seconds, close to the 4x I would expect for O(N^2). I don’t have the patience to try longer inputs 🙂
EDIT: Or if you’re looking to stress memory more than CPU:
This is faster than calculating sin and cos on each iteration. A 2048 long input took ~ 3 seconds, and a 16384 long input took ~ 180 seconds.