MPI_File_read_at函数与C语言中的fread函数,依次读取一个100M的文件,读取时间如下所示:
实验一:
[zhangyang@mpi002 kmeans_exper]$ mpiexec -np 1 ./mpi_c_fspeed
There are 1500015 samples...
Start test mpi_file_read....
In mpi002 mpi_file_read takes 1.566990137100 seconds...
Start test fread....
In mpi002 fread takes 0.078104019165 seconds...
实验二:
[zhangyang@mpi002 kmeans_exper]$ mpiexec -np 1 ./mpi_c_fspeed
There are 1500000 samples...
Start test mpi_file_read....
In mpi002 mpi_file_read takes 1.315994024277 seconds...
Start test fread....
In mpi002 fread takes 1.259196043015 seconds...
两次实验具有不同的结果,原因是:
实验一:MPI_File_read_at与fread读取同一数据块,MPI先读,fread后读,因此,MPI花费的时间较多
fread花费的时间较短,主要是受到了缓存的影响;
实验二:MPI_File_read_at与fread读取不同数据块,MPI先读,fread后读,因此,MPI花费的时间

实验比较了MPI_File_read_at与C语言fread函数在不同条件下的读取效率。单进程下,fread受缓存影响速度更快;在并行读取大文件时,多进程读取速度显著慢于单进程,说明并行条件下数据读取速度受到较大影响。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



