Запись файлов при компиляции с флагом -fopenmpC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Запись файлов при компиляции с флагом -fopenmp

Сообщение Anonymous »

I'm trying to write to file a certain value, calculated with some parallelized operations using Eigen, in particular with the flag -fopenmp.
I've written a code that works perfectly with -g -o, but I'm having trouble making this work with parallelization: I've tried with #pragma omp critical however, while running, the program halts at the line ofstream outputFile (path, ios :: app); указывает, что, несмотря на использование #pragma , написание файлов остается небезопасным.
Здесь есть пример того, что я попробовал:

Код: Выделить всё

class Loss
{
public:
double loss_value;
string choosen_loss;
string path;

Loss(string loss_function, string filepath)
{
choosen_loss = loss_function;
path = filepath;
};

void calculator(variant NN_outputs, variant targets, int data_size)
{
#pragma omp critical //for safe writing;
if (choosen_loss == "MSE")
{
choice = MSE;
loss_value += choice(NN_outputs, targets) / (double)data_size;
}
else if (choosen_loss == "BCE")
{
choice = BCE;
loss_value += choice(NN_outputs, targets) / (double)data_size;
}
else if (choosen_loss == "MEE")
{
choice = MEE;
loss_value += choice(NN_outputs, targets) / (double)data_size;
}
else
{
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79499639/file-writing-while-compiling-with-flag-fopenmp[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»