max core/thread utilzation in MKL with Core 2 T5500 and EPD/numpy FFT?
Main question: How do I coerce the MKL to thread my fft calls? We are using Enthought Python with MKL linked to numpy http://www.enthought.com/epd/mkl/.
A 2D complex fft of random data with shape of (2, 65536) over 100 loops still only uses 50%.
Envronment is XP WIn32, py2.7, Intel MKL version: Intel Math Kernel Library Version 10.3.1 Product Build 20101110 for 32-bit applications, max Intel threads: 2
My test script is attached.
On a Core 2 Duo, I: - removed the env var MKL_NUM_THREADS, rebooted, and use mkl.set_num_threads(2) - verified both cores do have affinity checked.
print 'using numpy', numpy.__version__ a = numpy.random.rand(2, N) print a.shape, 'items' t0 = time.clock() for i in range(10): continue base = time.clock()-t0 fftn = fft.fftn t0 = time.clock() for i in range(10): r = fftn(a, (N,), (1,)) print 'simple loop', time.clock()-t0-base