我是第一次使用Fortran,正在通过抽样随机数(受抑制的输出)对Fortran和Matlab进行初步的性能比较。使用MWE,在Fortran (.f95文件)中: real(4) :: r do i = 1,50000000 enddo在MATLAB中(.m文件):
for i = 1:50000000
下面的代码最好地说明了我的问题:
控制台的输出(NB,运行到第一次测试也需要8分钟)显示了512x512x512x16位数组分配的消耗不超过预期(每个数组为256 more ),并且查看"top“进程通常仍按预期低于不过是,在调用该函数的向量化版本时,进程扩展到了巨大的大小(超过7GByte!)。即使是我能想到的最明显的解释--矢量化是在内部将输入和输出转换为float64 --也只能解释几千兆字节,即使向量化函数返回一个int16,返回的数