Re: [mpiwg-rma] [MPIWG Fortran] "small count" variants of RMA functions
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 <[email protected]> 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 <[email protected] <mailto:[email protected]>> 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 <[email protected] <mailto:[email protected]>> 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 [email protected] <mailto:[email protected]> http://jeffhammond.github.io/ <https://urldefense.com/v3/__http://jeffhammond.github.io/__;!!DZ3fjg!rCl1MJjLBm7CR4j1i2TYIuosrHBzzhChv0RVTrxnOAOtUZyYsqrBQtmV0jab6YK9fw$>_______________________________________________ mpiwg-fortran mailing list [email protected] <mailto:[email protected]> https://urldefense.com/v3/__https://lists.mpi-forum.org/mailman/listinfo/mpi... <https://urldefense.com/v3/__https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran__;!!DZ3fjg!rCl1MJjLBm7CR4j1i2TYIuosrHBzzhChv0RVTrxnOAOtUZyYsqrBQtmV0jZut-fk-w$>
-- Jeff Hammond [email protected] <mailto:[email protected]> http://jeffhammond.github.io/ <http://jeffhammond.github.io/>_______________________________________________ mpiwg-fortran mailing list [email protected] <mailto:[email protected]> https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran <https://lists.mpi-forum.org/mailman/listinfo/mpiwg-fortran>
participants (1)
-
Wesley Bland