1

MPI は初めてです。次のように、標準の C++ コードを使用してテキスト ファイルを読み込もうとしています。

int main(int argc, char* argv[] ){

int np, pid, ierr;
ierr = MPI_Init(&argc, &argv);
ierr = MPI_Comm_size(MPI_COMM_WORLD, &np);
ierr = MPI_Comm_rank(MPI_COMM_WORLD, &pid);


const int imgWidth = 1000; // the width of the image (count in pixel)
const int imgHeight = 1000; // the height of the image

double* Y;
Y = (double *)malloc(imgHeight*imgWidth*sizeof(double));

if(pid == 0)
{
    string input = "Im.txt";
    readData(input.c_str(), Y);
}
MPI_Bcast(Y, imgHeight*imgWidth, MPI_DOUBLE, 0, MPI_COMM_WORLD);


free(Y);

MPI_Finalize();

return 1;

}

readData 関数は次のように定義されます。

bool readData(const char *fileName, double* Y){

printf("Reading the data file!\n");

ifstream fin(fileName);

int i = 0;
while(fin>>Y[i])
{   
    i++;
};
cout<<"In total, "<<i<<" data are imported."<<endl;
//close the file
fin.close();

return 1;

}

ファイル「Im.txt」には、一連の数字が含まれています。ただし、プログラムを実行すると、データがインポートされません。誰でも私にヒントを与えることができますか?このファイルを並行して読み取るために乗算プロセスを使用する必要はありません。

4

1 に答える 1

0

最後に、私は問題を見つけます。私はビジュアルスタジオでwin7の下で働いています。ファイルのパスを明示的に示す必要があるようです。「Im.txt」をソースコードファイルと同じフォルダに置いても動きません。

于 2013-07-10T23:33:24.307 に答える