<div dir="ltr">Jeff,<div><br></div><div>Welcome to the arcane world of Fortran terminology.  Fortunately terms like "processor dependent" are only in the standard and don't (hopefully) leak out into the wild!  :-)</div><div><br></div><div>-craig</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 9, 2015 at 1:03 PM, Jeff Hammond <span dir="ltr"><<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">We are diverging.  I don't know that this informs the ticket one way or another.  Perhaps others can weigh in.<br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, Nov 9, 2015 at 10:41 AM, Bill Long <span dir="ltr"><<a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><br>
On Nov 9, 2015, at 11:43 AM, Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>> wrote:<br>
<br>
> MPI implementations today are remarkably standardized w.r.t. process launching such that standard arguments are handled prior to MPI_Init.  However, there have been times where that was not the case.<br>
><br>
> Can you check what the Cray T3D does w.r.t. arguments passed to the host node appearing on the compute nodes? :-)<br>
<br>
</span>No T3D’s in service.  The more general question is whether vendors support a new version of MPI on old hardware for which there is no longer Fortran compiler support.  If you can’t compile the code that calls the new MPI routine, them I’d assume the new routine is not relevant to users of the system.<br>
<span><br></span></blockquote><div><br></div></span><div>The purpose of my comment was to cite a hosted MPI implementation, to tease out the differences between today's common practice and the realm of possibility.</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>
><br>
> More seriously, does Fortran 2008 require that arguments passed to the invocation of mpirun (or equivalent) appear at every process in a multi-process MPI program?<br>
><br>
<br>
</span>Well, the Fortran standard says nothing about MPI, as should be the case.  The method for launching a program is intentionally outside the scope of the standard.<br>
<br>
However, you make a reasonable point.  The current standard has a sentence<br>
<br>
"The effects of calling COMMAND_ARGUMENT_COUNT, EXECUTE_COMMAND_LINE , GET_COMMAND, GET_COMMAND_ARGUMENT, and GET_ENVIRONMENT_VARIABLE on any image other than image 1 are processor dependent.” .<br>
<br>
In discussions for the upcoming Fortran 2015 standard, people realized this was a silly restriction, and all the routines except EXECUTE_COMMAND_LINE were removed from this sentence.  Vendors already were consistent that command line stuff worked on any image, so the “processor dependent” bit was unnecessary.<br>
<br></blockquote><div><br></div></span><div>What does processor-specific mean?  It is specific to the manufacturer, the ISA, the SKU number, the serial number, ...?  I can't even fathom what sort of terrible thinking lead someone to write such a phrase in a language standard.</div><div><br></div><div>Why not do what everyone else does and say "implementation-specific"?  I don't even think the behavior is remotely sensitive to the processor.  The support for EXECUTE_COMMAND_LINE is primarily a function of the OS, which is not a very different thing than a processor.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Jeff</div></font></span><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Cheers,<br>
Bill<br>
<div><div><br>
<br>
<br>
> Jeff<br>
><br>
> Jeff<br>
><br>
> On Mon, Nov 9, 2015 at 8:56 AM, Bill Long <<a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a>> wrote:<br>
><br>
> On Nov 9, 2015, at 8:56 AM, Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>> wrote:<br>
><br>
> ><br>
> ><br>
> > On Mon, Nov 9, 2015 at 6:37 AM, Bill Long <<a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a>> wrote:<br>
> ><br>
> > On Nov 9, 2015, at 8:24 AM, Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>> wrote:<br>
> ><br>
> > > Did you read the ticket?  We need this for the same reason MPI_Init() takes argc/argv even though C main() already has them.<br>
> ><br>
> > But the C standard does not implicitly assume every program is parallel.<br>
> ><br>
> ><br>
> > Correct.  Nor can MPI assume that argc/argv will magically appear on the compute nodes when the job is launched from somewhere else.<br>
> ><br>
><br>
> Agreed. My point is that Fortran is not the same as C.<br>
><br>
> > ><br>
> > > While it may be true that process managers are magically fixing argc/argv, this is not guaranteed by any standard.<br>
> ><br>
> > The Fortran standard is intentionally vague to allow for environments where there is no command line, but rather (for example) the code starts executing by clicking a graphic button on the screen.  The standard is likely to not include specific words about program launchers that might turn into bit rot in the future.   If your favorite compiler returns the launcher text as part of the command line, complain.<br>
> ><br>
> ><br>
> > Complaining is fun, but has no teeth without a standard.  Many vendors are quite strict about standards and reject feature requests that improve user experience if they lack justification in a standard.  I can cite numerous vendors here…<br>
><br>
> The overriding intent of a language standard is portability.  You would have poor portability of a code if moving it from one machine to another resulted in different command argument information from get_command or get_command_argument.  The intention is that the routine return the command line arguments that the program knows about, not some cryptic stuff from aprun, srun, or mpirun.   I did try all the compilers I have access to on a trivial code:<br>
><br>
> > cat test.f90<br>
> program test<br>
>   character(1000) command<br>
>   integer         length<br>
>   call get_command (command, length)<br>
>   print *, command(1:length)<br>
> end program test<br>
><br>
> > ftn test.f90<br>
> > aprun -n1 ./a.out -x<br>
>  ./a.out -x<br>
> Application 15961022 resources: utime ~0s, stime ~0s, Rss ~4176, inblocks ~4479, outblocks ~11453<br>
> > module swap PrgEnv-cray PrgEnv-intel<br>
> > ftn test.f90<br>
> > aprun -n1 ./a.out -x<br>
>  ./a.out -x<br>
> Application 15961023 resources: utime ~0s, stime ~0s, Rss ~4176, inblocks ~2967, outblocks ~7756<br>
> > module swap PrgEnv-intel PrgEnv-pgi<br>
> > ftn test.f90<br>
> > aprun -n1 ./a.out -x<br>
>  ./a.out -x<br>
> Application 15961025 resources: utime ~0s, stime ~0s, Rss ~4172, inblocks ~3038, outblocks ~8308<br>
> l> module swap PrgEnv-pgi PrgEnv-gnu<br>
> > ftn test.f90<br>
> > aprun -n1 ./a.out -x<br>
>  ./a.out -x<br>
> Application 15961026 resources: utime ~0s, stime ~0s, Rss ~4172, inblocks ~3031, outblocks ~8027<br>
><br>
> All of them produced the expected output (excluding the “aprun -n1” launcher text).<br>
><br>
> Perhaps we could add a Note in the Fortran standard explaining this, but it looks like vendors have already figured it out.<br>
><br>
> Cheers,<br>
> Bill<br>
><br>
><br>
><br>
> ><br>
> > While the new proposed routines are trivial to implement (assuming they have the same arguments as the corresponding Fortran ones),  they add to one of MPI’s most serious flaws - way to many routines already.<br>
> ><br>
> ><br>
> > As you say, they are trivial to implement.  The size of the standard is an irrelevant argument.  Users don't read what they don't need to read and users shouldn't be reading the spec most of the time anyways.<br>
> ><br>
> > Jeff<br>
> ><br>
> > Cheers,<br>
> > Bill<br>
> ><br>
> ><br>
> > ><br>
> > > Jeff<br>
> > ><br>
> > > On Mon, Nov 9, 2015 at 6:21 AM, Bill Long <<a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a>> wrote:<br>
> > > Hi Jeff,<br>
> > ><br>
> > > I don’t see the value of this.  The Fortran intrinsics GET_COMMAND and friends should already do what you want.  Fortran programs are now presumed parallel. The intrinsics should know how to strip off the “launcher” part of the command line.  At least that is how the Cray versions have worked from the beginning.   Experiments are  in order for other vendors, as a check.<br>
> > ><br>
> > > Cheers,<br>
> > > Bill<br>
> > ><br>
> > ><br>
> > ><br>
> > > On Nov 9, 2015, at 8:13 AM, Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>> wrote:<br>
> > ><br>
> > > > we did a lot of work on <a href="https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/351" rel="noreferrer" target="_blank">https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/351</a>.  do we intend to move forward this for MPI 4+?  if yes, we need to migrate the trac ticket to a github issue.<br>
> > > ><br>
> > > > jeff<br>
> > > ><br>
> > > > --<br>
> > > > Jeff Hammond<br>
> > > > <a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
> > > > <a href="http://jeffhammond.github.io/" rel="noreferrer" target="_blank">http://jeffhammond.github.io/</a><br>
> > > > _______________________________________________<br>
> > > > mpiwg-fortran mailing list<br>
> > > > <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> > > > <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
> > ><br>
> > > Bill Long                                                                       <a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a><br>
> > > Fortran Technical Support  &                                  voice:  <a href="tel:651-605-9024" value="+16516059024" target="_blank">651-605-9024</a><br>
> > > Bioinformatics Software Development                     fax:  <a href="tel:651-605-9142" value="+16516059142" target="_blank">651-605-9142</a><br>
> > > Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101<br>
> > ><br>
> > ><br>
> > > _______________________________________________<br>
> > > mpiwg-fortran mailing list<br>
> > > <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> > > <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
> > ><br>
> > ><br>
> > ><br>
> > > --<br>
> > > Jeff Hammond<br>
> > > <a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
> > > <a href="http://jeffhammond.github.io/" rel="noreferrer" target="_blank">http://jeffhammond.github.io/</a><br>
> > > _______________________________________________<br>
> > > mpiwg-fortran mailing list<br>
> > > <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> > > <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
> ><br>
> > Bill Long                                                                       <a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a><br>
> > Fortran Technical Support  &                                  voice:  <a href="tel:651-605-9024" value="+16516059024" target="_blank">651-605-9024</a><br>
> > Bioinformatics Software Development                     fax:  <a href="tel:651-605-9142" value="+16516059142" target="_blank">651-605-9142</a><br>
> > Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101<br>
> ><br>
> ><br>
> > _______________________________________________<br>
> > mpiwg-fortran mailing list<br>
> > <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> > <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
> ><br>
> ><br>
> ><br>
> > --<br>
> > Jeff Hammond<br>
> > <a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
> > <a href="http://jeffhammond.github.io/" rel="noreferrer" target="_blank">http://jeffhammond.github.io/</a><br>
> > _______________________________________________<br>
> > mpiwg-fortran mailing list<br>
> > <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> > <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
><br>
> Bill Long                                                                       <a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a><br>
> Fortran Technical Support  &                                  voice:  <a href="tel:651-605-9024" value="+16516059024" target="_blank">651-605-9024</a><br>
> Bioinformatics Software Development                     fax:  <a href="tel:651-605-9142" value="+16516059142" target="_blank">651-605-9142</a><br>
> Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101<br>
><br>
><br>
> _______________________________________________<br>
> mpiwg-fortran mailing list<br>
> <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
><br>
><br>
><br>
> --<br>
> Jeff Hammond<br>
> <a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
> <a href="http://jeffhammond.github.io/" rel="noreferrer" target="_blank">http://jeffhammond.github.io/</a><br>
> _______________________________________________<br>
> mpiwg-fortran mailing list<br>
> <a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
> <a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
<br>
Bill Long                                                                       <a href="mailto:longb@cray.com" target="_blank">longb@cray.com</a><br>
Fortran Technical Support  &                                  voice:  <a href="tel:651-605-9024" value="+16516059024" target="_blank">651-605-9024</a><br>
Bioinformatics Software Development                     fax:  <a href="tel:651-605-9142" value="+16516059142" target="_blank">651-605-9142</a><br>
Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101<br>
<br>
<br>
_______________________________________________<br>
mpiwg-fortran mailing list<br>
<a href="mailto:mpiwg-fortran@lists.mpi-forum.org" target="_blank">mpiwg-fortran@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br>
</div></div></blockquote></div></div></div><div><div class="h5"><br><br clear="all"><div><br></div>-- <br><div>Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>
</div></div></div></div>
<br>_______________________________________________<br>
mpiwg-fortran mailing list<br>
<a href="mailto:mpiwg-fortran@lists.mpi-forum.org">mpiwg-fortran@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran" rel="noreferrer" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-fortran</a><br></blockquote></div><br></div>