Nice catch. The sizes are MPI_Offset in C, and therefore we should not cast 
them as MPI_Fint. I'll take a look, but I doubt it will be before next year. 
Meanwhile, patches are always welcomed.

  george.

On Dec 20, 2010, at 10:59 , William George wrote:

> 
> In Fortran, calls to MPI_File_get_size return a negative value
> when the file is larger that 2GB.
> 
> I am using Open MPI 1.4.3 on an x86_64 system.  This happens with OpenMPI
> compiled with Intel compilers or GCC, so I don't think it has
> anything to do with the particular compiler in use.
> 
> I can fix this by removing the cast to MPI_Fint in
> the function   mpi_file_get_size_ in ompi/mpi/f77/file_get_size_f.c.
> 
> Changing:
>  *size = (MPI_Fint) c_size;
> 
> To:
> 
>  *size = c_size;
> 
> 
> But my guess is that this is not a proper fix.
> 
> There are a few other suspicious casts to MPI_Fint in the f77
> directory too that probably cause similar problems:
> 
> $  $ grep \(MPI_Fint\) *.c
> address_f.c:        *address = (MPI_Fint) addr;
> file_get_position_f.c:        *offset = (MPI_Fint) c_offset;
> file_get_position_shared_f.c:        *offset = (MPI_Fint) c_offset;
> file_get_size_f.c:        *size = (MPI_Fint) c_size;
> file_get_view_f.c:        *disp = (MPI_Fint) c_disp;
> type_extent_f.c:        *extent = (MPI_Fint)c_extent;
> 
> 
> I can also fix this problem by compiling OpenMPI with
> the flag -i8, but promoting all Fortran INTEGERs to 8-bytes
> does not seem correct either.
> 
> So - is this a configuration problem, a compile problem.
> a source code bug, or what?  Is there an MPI_FOffsetint
> and/or MPI_FAddressint type that should be used
> in these casts?
> 
> 
> Regards,
> --
> Bill
> 
>  William L. George
>  National Institute of Standards and Technology
>  ITL - Applied and Computational Mathematics Division, Stop 8911
>  100 Bureau Drive
>  Gaithersburg, MD  20899-8911
> 
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


Reply via email to