Re: [MPI3 Fortran] MPI_INIT issues
Nick typically has access to crappier implementations than I, so I'll defer to his unfortunate experience. In terms of the interface, I think I would prefer just making MPI_Init effectively generic, with the allow calls: integer :: ierror character(:),allocatable :: args(:) call MPI_Init( ) ! Existing form call MPI_Init (ierror) ! Existing form including optional status call MPI_Init (args) ! New form call MPI_Init (args,ierror) ! New form with the optional status argument. Both arguments are INTENT(OUT). The array arg is allocated inside MPI_Init with a length parameter equal to the maximum length of the arguments or the command. The bounds are 0:nargs. On return arg(0) would be the command text, and arg(i:ubound(arg),1)) would be the arguments. The number of arguments is size(arg)-1. [Redundantly, the number of arguments could be returned as another argument.] Just my gut feeling that this would be more intuitive to the MPI users. I'm less keen on the versions in the ticket because: 1) They look too much like wrappers to the Fortran intrinsics, prompting the obvious question of why not just call the intrinsics directly, and 2) The caller needs to determine either the maximum command/argument length somehow, or settle for an upper bound on the length, since the length of the character variable has to be known in the caller. Cheers, Bill On 2/20/13 12:17 PM, N.M. Maclaren wrote:
On Feb 20 2013, Bill Long wrote:
I would expect the same output whether the parallelism was native or MPI. So, it seems like it might be a solution in search of a problem.
I wouldn't. I have used a couple of MPIs where the arguments got through to only the local (to mpiexec) or first process; I can't remember if I ever experimented where there was no local MPI process and such MPIs. On at least one, they didn't get through at all.
If I can guess the issue, the usual solution is (in any language) to read the command arguments (or unpick environment variables) on process zero and broadcast them. If that doesn't get them, at least all processes get the same ones and some other kludge can be tried. That's really all that is needed.
Regards, Nick Maclaren.
_______________________________________________ mpi3-fortran mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-fortran
-- Bill Long [email protected] Fortran Technical Support & voice: 651-605-9024 Bioinformatics Software Development fax: 651-605-9142 Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101
participants (1)
-
Bill Long