【发布时间】:2023-03-25 21:35:01
【问题描述】:
我想知道使用 openMP 读取文件是否有可能提高性能。
示例代码,
fstream file;
file.open("test.txt",ios::in);
file.seekg(0,ios::end);
int len = file.tellg();
char *arr = new char[len];
char *temp = new char[1];
int i;
#pragma omp parallel for shared(arr, len) private(temp, i)
for(i = 0; i < len; i++)
{
file.seekg(i);
file.read(temp,1);
arr[i] = temp[0];
}
我想使用多线程进行 I/O 操作是一个不好的选择,因为最终文件读取操作将被序列化。但是,我仍然想知道是否可以期待性能提升。另外,我也想知道openMP是如何处理并行文件读取操作的。
【问题讨论】: