xcode — код C ++ работает на Mac с многопоточностью, файл не открывается в Ubuntu

Выполнение кода C ++ с использованием Repast HPC 2.1 на виртуальной машине Ubuntu 14.04 VirtualBox. Этот код доказал свою работоспособность при запуске в XCode на ноутбуке Mac. В настоящее время я пытаюсь заставить существующий код работать в Ubuntu. Make успешно работает с кодом в Ubuntu, но при попытке вызвать mpirun -n 4 я получаю следующую ошибку, указывающую, что файл не открывается должным образом:

file open fail /home/repasthpc/Desktop/hpcmodel/angiogenesis-osteogenesis-simulator/concFiles/c100forC.txt
file open fail /home/repasthpc/Desktop/hpcmodel/angiogenesis-osteogenesis-simulator/concFiles/c100forC.txt
file open fail /home/repasthpc/Desktop/hpcmodel/angiogenesis-osteogenesis-simulator/concFiles/c100forC.txt
file open fail /home/repasthpc/Desktop/hpcmodel/angiogenesis-osteogenesis-simulator/concFiles/c100forC.txt

Это использует несколько потоков (4), что, как я слышал, может быть проблемой при открытии файлов в Ubuntu, но я не уверен, как это исправить, если это проблема.

Ошибка генерируется file.fail() вызов в этом методе:

#include <fstream>
#include <string>
#include <vector>
#include <math.h>
#include "repast_hpc/Random.h"#include "SolubleMap.h"#include "BoneModel.h"
using namespace std;

void SolubleMap::releaseVEGF(std::string filename){
ifstream file;
file.open(filename.c_str());

int row=time; //time
int column=ydim; // location

if(file.fail()){
cerr << "file open fail" << endl;
}

else{
this->VEGFConcentration = new double*[row]; // memory allocated for elements of rows
for(int j = 0; j < row; j++){
this->VEGFConcentration[j] = new double[column]; // memory allocated for elements of columns
for(int i = 0; i < column; i++){
if (!(file >> this->VEGFConcentration[j][i])){
std::cerr << "error while reading file";
break;
}
}
if (!file) break;
}
}
file.close();
}

Когда полный путь к файлу передается в виде строки file.open() в строке 2 метода все равно выдает ту же ошибку.

Есть ли какая-то ссылка или библиотека, которую мне не хватает, предоставляемая XCode?

Спасибо!

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]