Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran mpi\u文件\u集\u视图似乎不起作用_Fortran_Mpi Io - Fatal编程技术网

Fortran mpi\u文件\u集\u视图似乎不起作用

Fortran mpi\u文件\u集\u视图似乎不起作用,fortran,mpi-io,Fortran,Mpi Io,我刚开始学习MPI I/O,所以我得到了一个简单的测试代码,如下所示 PROGRAM main use mpi integer :: ierr, myrank, thefile, numprocs, & etype, filetype character(len = 20) :: data_rep integer(kind=MPI_OFFSET_KIND) :: disp, disp_get call MPI_INIT(ierr) call MPI_COM

我刚开始学习MPI I/O,所以我得到了一个简单的测试代码,如下所示

PROGRAM main

use mpi

integer :: ierr, myrank, thefile, numprocs, &
           etype, filetype

character(len = 20) :: data_rep

integer(kind=MPI_OFFSET_KIND) :: disp, disp_get

call MPI_INIT(ierr)
call MPI_COMM_RANK(MPI_COMM_WORLD, myrank, ierr)
call mpi_comm_size(mpi_comm_world, numprocs, ierr)

thefile = 1

call MPI_FILE_OPEN(MPI_COMM_WORLD, 'testfile', &
                   MPI_MODE_WRONLY+MPI_MODE_CREATE, &
                   MPI_INFO_NULL, thefile, ierr)

disp = myrank*2

call MPI_FILE_SET_VIEW(thefile, disp, MPI_INTEGER, &
                       MPI_INTEGER, 'internal', &
                       MPI_INFO_NULL, ierr)

call mpi_file_get_view(thefile, disp_get, etype, filetype, &
                       data_rep, ierr)

print *, myrank, disp_get, etype, filetype, data_rep

call MPI_FILE_CLOSE(thefile, ierr)

call MPI_FINALIZE(ierr)

END PROGRAM main
我使用了-np=4,因此我希望输出为:

       0                     0           1           1 internal              
       1                     2           1           1 internal            
       2                     4           1           1 internal            
       3                     6           1           1 internal
相反,我得到了

       0                     0           1           1 native              
       1                     0           1           1 native              
       2                     0           1           1 native              
       3                     0           1           1 native 
就好像功能
mpi\u file\u set\u view
根本不起作用一样。有什么建议吗


我在Ubuntu上使用了OpenMPI 1.7和ifort 13。

置换应该以字节为单位设置,因此{0,2,4,6}可能不是您想要的。从
mpi\u文件集\u视图中检查
ierr
。谢谢。我刚刚检查了用于运行代码的文件系统是否为ext4。什么类型的文件系统适合或不适合MPI I/O?另外,我检查了错误,它是51,表示“MPI\u ERR\u UNSUPPORTED\u OPERATION”。如果我使用“本机”而不是“内部”,则没有错误。这是因为ext4不支持“internal”吗?对于
internal
,我怀疑底层MPI/O只支持
native
,而这与文件系统无关。