演算処理の速度がループ順によって変わるのはなぜですか?
たとえば、
for (i = 0; i < M; i++)
for (j = 0; j < M; j++)
{
for (k = 0; k < M; k++)
s = s + a[i][k] * b[k][j];
c[i][j] = s;
}
のような行列演算のコードを考えた場合、
ループ順をk,i,jにしたほうが速い。
一番遅いのはj,i,kというループ順になりました。
誰か教えていただけませんか?