怎么样处理超大二维数组的计算?

我需要根据全国的数字高程图DEM,来计算全国的河网。在计算过程中我需要扫描整个矩阵。可是由于DEM数据太大,根本无法一次性装载到内存。所以我想先将数据分割成小文件,然后一部分一部分的算。我在扫描矩阵的时候,需要从左上角扫描到右下角,然后从右下角扫描到左上角,如此循环往复,才能最终确定水的汇集量。可是高频率的文件读写,会让程序的运行时间长到无法接受。各位Gods有什么好方法吗?

内存映射文件机制处理大文件 http://m.blog.csdn.net/article/details?id=11599369看看这个

内存映射。数据分块导入