Я вспомнил, что у меня были некоторые проблемы с OpenMp и параллельной записью в файлы, поэтому я написал простую тестовую программу, которая создает файлы для каждой итерации и ведет отсчет до нуля в файле.Удивительно, но это похоже на работу!Если я открываю диспетчер задач сверху, я всегда вижу только один процессор с нагрузкой около 90%, а остальные около 1% -5%.Это потому, что задача не тяжелая для процессора или что-то идет не так (иногда 2-3 процессора увеличиваются до 40%)?
Тестовая программа
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<omp.h>
void print2file(char filename[],int i){
FILE *fp;
int j;
fp=fopen(strcat(filename,".txt"),"w");
for(j=i;j>=0;j--)
fprintf(fp,"%d\n",j);
fclose(fp);
}
int main(){
int i;
char test[12];
#pragma omp for
for(i=0;i<1000000000;i++){
sprintf(test,"%d",i);
//printf("test %d",i);
print2file(test,i);
}
}