MPI IO - simple question

MPI IO - simple question

Portrait de stansy

Hi,

How do I check if a file exists and has been successfully opened. MPI::File::Open function suspends my program.

Thanks,

Stan

3 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de James Tullos (Intel)

Hi Stan,

If MPI_File_open were returning, you could use the return code to determine if the file exists or not. Since your program isn't getting past MPI_File_open, you'll need to use a non-MPI mechanism to do this. In C++, I would likely try to open the file (closing it immediately afterwards), as this is a portable method. You can check the return values from the open attempt. There are also non-portable methods that can check without opening the file.

Sincerely,
James Tullos
Technical Consulting Engineer
Intel® Cluster Tools

Portrait de stansy

Hi James,
Many thanks for the comprehensive answer. Because I use C + + interface I adopted _access_s () function. I think it is safe:

MPI::File fin = MPI::FILE_NULL;

if(_access_s( fname, 0 ) == 0) fin = MPI::File::Open(MPI::COMM_WORLD, fname, MPI::MODE_RDONLY, MPI::INFO_NULL);

if(fin != MPI::FILE_NULL){
something, something ....
}

Width regards,
Stan

Connectez-vous pour laisser un commentaire.