MPI IO - simple question

MPI IO - simple question


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



3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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.

James Tullos
Technical Consulting Engineer
Intel® Cluster Tools

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,

Leave a Comment

Please sign in to add a comment. Not a member? Join today