MPI IO - simple question

MPI IO - simple question

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 帖子 / 0 new
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项
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

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

登陆并发表评论。