Я хотел бы знать, может ли быть какое-либо увеличение производительности при чтении файла с использованием 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];
}
Полагаю, использование нескольких потоков для операции ввода-вывода - плохая опция, потому что, наконец, операция чтения файла будет сериализована. Но все же я хотел бы узнать, можно ли ожидать прироста производительности. Кроме того, я также хотел бы знать, как openMP обрабатывает параллельные операции чтения файлов.