[MPIWG Fortran] "small count" variants of RMA functions

Wesley Bland work at wesbland.com
Mon Nov 29 08:03:28 CST 2021


As long as we’re having remote meetings, we’re not setting up WG time during the meeting itself. So each WG is just having its usual con calls on their own schedule (or in the case of Fortran, not). If you folks want to throw together a plenary, we can still put that on the agenda though.

Thanks,
Wes

> On Nov 29, 2021, at 3:45 AM, Jeff Hammond via mpiwg-fortran <mpiwg-fortran at lists.mpi-forum.org> wrote:
> 
> I created https://github.com/mpi-forum/mpi-issues/issues/528 <https://github.com/mpi-forum/mpi-issues/issues/528>.
> 
> Normally, we would have a Fortran WG meeting during the quarterly meeting.  Is there going to be a Fortran WG session at the December meeting?
> 
> Jeff
> 
> On Sat, Nov 27, 2021 at 9:14 PM William Gropp <wgropp at illinois.edu <mailto:wgropp at illinois.edu>> wrote:
> I agree with Jeff here.  This is a good enhancement; I believe the only reason that we hadn’t done this before is that we’ve stuck closely to the original Fortran look-and-feel - which was pre-Fortran 90.  We could have done this earlier, and now that there are explicit interfaces that are only available in Fortran08, there is no reason not to do this.
> 
> Bill
> 
> William Gropp
> Director, NCSA
> Thomas M. Siebel Chair in Computer Science
> University of Illinois Urbana-Champaign
> IEEE-CS President-Elect
> 
> 
> 
> 
>> On Nov 25, 2021, at 4:42 AM, Jeff Hammond via mpiwg-fortran <mpiwg-fortran at lists.mpi-forum.org <mailto:mpiwg-fortran at lists.mpi-forum.org>> wrote:
>> 
>> RMA absolutely did the right thing with MPI_Aint size and displacement arguments.
>> 
>> In C, it is no problem to pass 32b integers to these arguments when AINT is 64b, because C type promotion rules just work.
>> 
>> In Fortran, I cannot do this, because an integer literal is not compatible with an AINT argument.  I find it tedious to have to declare a variable just for this, or to explicitly cast with integer(100,MPI_ADDRESS_KIND).
>> 
>> Since Fortran does polymorphism right and can have subroutine declarations for both default integer and AINT integer scalar arguments, is there a good reason not to add the former?
>> 
>> This proposal applies not to just MPI_Win_allocate but any RMA function that uses AINT scalar arguments.
>> 
>> Thanks,
>> 
>> Jeff
>> 
>> % mpifort y.F90
>> y.F90:20:60:
>> 
>>    20 |   call MPI_Win_allocate(100, 1, MPI_INFO_NULL, comm, XA, WA)
>>       |                                                            1
>> Error: There is no specific subroutine for the generic 'mpi_win_allocate' at (1)
>> 
>> % cat y.F90    
>> ! USE mpi_f08
>> ! MPI_Win_allocate(size, disp_unit, info, comm, baseptr, win, ierror)
>> !    USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_PTR
>> !    INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: size
>> !    INTEGER, INTENT(IN) :: disp_unit
>> !    TYPE(MPI_Info), INTENT(IN) :: info
>> !    TYPE(MPI_Comm), INTENT(IN) :: comm
>> !    TYPE(C_PTR), INTENT(OUT) :: baseptr
>> !    TYPE(MPI_Win), INTENT(OUT) :: win
>> !    INTEGER, OPTIONAL, INTENT(OUT) :: ierror
>> program main
>>   use iso_fortran_env
>>   use mpi_f08
>>   implicit none
>>   integer(kind=MPI_ADDRESS_KIND) :: as = 100
>>   type(c_ptr) :: XA
>>   type(MPI_Win) :: WA
>>   TYPE(MPI_Comm) :: comm = MPI_COMM_WORLD
>>   call MPI_Win_allocate(as, 1, MPI_INFO_NULL, comm, XA, WA)
>>   call MPI_Win_allocate(100, 1, MPI_INFO_NULL, comm, XA, WA)
>> end program main
>> 
>> % mpicc y.c && echo SUCCESS
>> SUCCESS
>> 
>> % cat y.c 
>> #include <mpi.h>
>> int main(void)
>> {
>>   MPI_Aint as = 100;
>>   int * XA;
>>   MPI_Win WA;
>>   MPI_Win_allocate(as, 1, MPI_INFO_NULL, MPI_COMM_WORLD, XA, &WA);
>>   MPI_Win_allocate(100, 1, MPI_INFO_NULL, MPI_COMM_WORLD, XA, &WA);
>> }
>> 
>> 
>> -- 
>> Jeff Hammond
>> jeff.science at gmail.com <mailto:jeff.science at gmail.com>
>> http://jeffhammond.github.io/ <https://urldefense.com/v3/__http://jeffhammond.github.io/__;!!DZ3fjg!rCl1MJjLBm7CR4j1i2TYIuosrHBzzhChv0RVTrxnOAOtUZyYsqrBQtmV0jab6YK9fw$>_______________________________________________
>> mpiwg-fortran mailing list
>> mpiwg-fortran at lists.mpi-forum.org <mailto:mpiwg-fortran at lists.mpi-forum.org>
>> https://urldefense.com/v3/__https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran__;!!DZ3fjg!rCl1MJjLBm7CR4j1i2TYIuosrHBzzhChv0RVTrxnOAOtUZyYsqrBQtmV0jZut-fk-w$ <https://urldefense.com/v3/__https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran__;!!DZ3fjg!rCl1MJjLBm7CR4j1i2TYIuosrHBzzhChv0RVTrxnOAOtUZyYsqrBQtmV0jZut-fk-w$> 
> 
> 
> 
> -- 
> Jeff Hammond
> jeff.science at gmail.com <mailto:jeff.science at gmail.com>
> http://jeffhammond.github.io/ <http://jeffhammond.github.io/>_______________________________________________
> mpiwg-fortran mailing list
> mpiwg-fortran at lists.mpi-forum.org <mailto:mpiwg-fortran at lists.mpi-forum.org>
> https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran <https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20211129/a8515be2/attachment-0001.html>


More information about the mpiwg-fortran mailing list