提问人:Vitaliy 提问时间:8/22/2023 最后编辑:Vitaliy 更新时间:8/24/2023 访问量:88
是否使用没有 I/O 列表的 Fortran read() 分配内存?
Does memory get allocated with Fortran read() with no I/O list?
问:
我正在读取一个 ascii 文件,其中英特尔 Fortran 打开为:
open(10, file=trim(file_name), status='old', action='read', iostat=ierr, iomsg=msg)
为了跳过一些我不想存储的文件行,我使用了没有 I/O 列表的 read():
read(10, *)
VTune 报告在 read() 上分配了 53 GB,没有 I/O 列表:
该内存是真的分配的,还是 VTune 错误地识别了内存分配?是什么导致了这种行为?
答:
2赞
Steve Lionel
8/24/2023
#1
否,此时没有分配 53+GB 的虚拟内存。没有 I/O 列表的读取可能根本没有分配内存。(我曾是英特尔 Fortran 编译器开发人员。
评论