Guest User

matrix element-wise multiplication (MatLab)

a guest
Feb 23rd, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.20 KB | None | 0 0
  1.  
  2. tnum = 1e4;
  3. a = 101;
  4. b = 700;
  5. c = 201;
  6. d = 800;
  7. Ez = rand(b+1, d);
  8. Ez2 = Ez;
  9. Hx = rand(b+1, d);
  10. Hx2 = Hx;
  11. A = rand(b-a+1, d-c+1);
  12. B = rand(b-a+1, d-c+1);
  13. C = rand(b-a+1, d-c+1);
  14. D = rand(b-a+1, d-c+1);
  15.  
  16. % MATLAB
  17. tic
  18. for t=1:tnum
  19.   Ez(a:b,c:d)=A.*Ez(a:b,c:d)+B.*(Hx(a+1:b+1,c:d)-Hx(a:b,c:d));
  20.   Hx(a:b,c:d)=C.*Hx(a:b,c:d)+D.*(Ez(a+1:b+1,c:d)-Ez(a:b,c:d));
  21. end
  22. toc
  23.  
  24. % MEX with armadillo and MKL BLAS
  25. tic
  26. [Ez3, Hx3] = test_mkl_blas(tnum, a, b, c, d, Ez2, Hx2, A, B, C, D);
  27. toc
  28.  
  29. % compile commands
  30. MKLROOT = 'C:\Program Files (x86)\Intel\Composer XE 2015\mkl';
  31. ICLLIB = 'C:\Program Files (x86)\Intel\Composer XE 2015\compiler\lib\intel64';
  32. OPTIMFLAGS = 'OPTIMFLAGS= /O3 /DNDEBUG /QxHost /Qparallel /Qopenmp /Qprec-div- /Qipo /Qinline-calloc';
  33. LINKER = 'LINKER=xilink';
  34.  
  35. mex('-f', 'intel_cpp_15_vs2013.xml', '-v', '-largeArrayDims', ['-L', ICLLIB], ...
  36.   'test_c.cpp', OPTIMFLAGS, LINKER)
  37.  
  38. mex('-f', 'intel_cpp_15_vs2013.xml', '-v', '-largeArrayDims', '-IC:\armadillo\include', ...
  39.     ['-I', MKLROOT, '\include'], ['-L', MKLROOT, '\lib\intel64'], ['-L', ICLLIB], ...
  40.     'test_mkl_blas.cpp', OPTIMFLAGS, LINKER, '-lmkl_intel_lp64', '-lmkl_intel_thread', ...
  41.     '-lmkl_core', '-llibiomp5md')
Add Comment
Please, Sign In to add comment