Fortran中行主要有序程序的影响

时间:2013-11-17 15:02:51

标签: fortran

我在Linux上运行的Fortran 77中编写了一个很大的软件,它使用多维数组来存储时间索引矩阵和几个不同的系列,但索引顺序是像C这样的行主要排序。但是,Fortran是按列排序的,当值按顺序索引时会有缓存未命中的惩罚。

作为一个例子,我有两个系列的100.000 10x10矩阵。我将它们存储为:

MATRIX(2, 100000, 10, 10)

但据我了解,如果要以线性方式访问这些值,那么Fortran的最佳声明将是

MATRIX(10, 10, 100000, 2)

现在重构所有代码以使用其他订购系统的影响会很大,但我想了解潜在的影响。

有没有什么方法可以轻松衡量错误订购系统的影响,估计改变它的潜在改进?

可能会自动测量与这些阵列相关的缓存未命中或缓存未命中。

0 个答案:

没有答案