There is a hint for F77 users at the bottom of the page. It suggests to use 
INTEGER*MPI_OFFSET_KIND as type for the SIZE. I guess if we cast it correctly, 
and the users follow the MPI specification, this should work.

  george.

On Dec 20, 2010, at 15:04 , Edgar Gabriel wrote:

> well, but that is fortran90, bot f77
> 
> On 12/20/2010 1:55 PM, George Bosilca wrote:
>> Not really. The Fortran prototype from our man page is:
>> 
>>    INCLUDE ’mpif.h’
>>    MPI_FILE_GET_SIZE(FH, SIZE,  IERROR)
>>    INTEGER FH, ERROR
>>    INTEGER(KIND=MPI_OFFSET_KIND) SIZE
>> 
>> So the size is of type MPI_OFSET_KIND which is INTEGER*8 (signed). There is 
>> still a mismatch between of C and the Fortran version (size_t vs. ssize_t on 
>> my platform), but let's save this for later.
>> 
>>  george.
>> 
>> On Dec 20, 2010, at 14:48 , Edgar Gabriel wrote:
>> 
>>> well, but the f77 interface defines that to be an integer, unless you
>>> want to change the fortran API, you will have to map it to an MPI_Fint
>>> in my opinion.
>>> 
>>> Edgar
>>> 
>>> On 12/20/2010 1:36 PM, George Bosilca wrote:
>>>> 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
>>>> 
>>>> 
>>>> _______________________________________________
>>>> devel mailing list
>>>> de...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>> 
>>> -- 
>>> Edgar Gabriel
>>> Assistant Professor
>>> Parallel Software Technologies Lab      http://pstl.cs.uh.edu
>>> Department of Computer Science          University of Houston
>>> Philip G. Hoffman Hall, Room 524        Houston, TX-77204, USA
>>> Tel: +1 (713) 743-3857                  Fax: +1 (713) 743-3335
>>> 
>>> _______________________________________________
>>> devel mailing list
>>> de...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> 
>> 
>> _______________________________________________
>> devel mailing list
>> de...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
> 
> -- 
> Edgar Gabriel
> Assistant Professor
> Parallel Software Technologies Lab      http://pstl.cs.uh.edu
> Department of Computer Science          University of Houston
> Philip G. Hoffman Hall, Room 524        Houston, TX-77204, USA
> Tel: +1 (713) 743-3857                  Fax: +1 (713) 743-3335
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


Reply via email to