The matrix multiply operator * calls a highy optimized compiled BLAS library to do this calculation. The BLAS library is already multi-threaded and optimized for cache hits. In addition, I believe MATLAB checks for symmetric cases (both operands the same) and calls faster symmetric library routines for this ... at least it used to last time I looked several years ago. So I am not sure there is anything you can do that isn't already being done in the background. The only caveat is the symmetric case ... if MATLAB doesn't do this on your version then it may require a custom mex routine on your part to force this. My MTIMESX submission does this symmetry check, but alas I have not had the time yet to update it for later versions of MATLAB.