<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Ken, <br>
    </p>
    <p>while updating the F08 tests with this bugfix, I may have found
      another bug inside the 'use mpi_f08' wrappers.</p>
    <p>The fix removes (superficially) the error in irsendf08, but I
      still get the same error in pssendf08. This has to do with the
      array of indices returned by MPI_Testsome: With the 'use mpi_f08'
      wrappers, the indices in this array are 0-indexed although they
      should start from 1 according to the Standard (they do start from
      1 with the 'use mpi' and 'mpif.h' functions). I have attached a
      minimal working example to confirm this.</p>
    <p>Indeed, the function mpi_testsome_ (in
      src/binding/fortran/mpif_h/fortran_binding.c) converts the
      indices:</p>
    <blockquote>
      <p>    for (int i = 0; i < (*outcount); i++) {<br>
                array_of_indices[i] += 1;<br>
            }</p>
    </blockquote>
    <p>The subroutine MPI_Testsome_f08 (in
      src/binding/fortran/use_mpi_f08/wrappers_f/f08ts.f90) does no such
      conversion. <br>
    </p>
    <p>The bug is also in MPI_Testany (and potentially other functions I
      did not test yet).<br>
    </p>
    <p>However, without detailed knowledge about internals of MPICH I
      might not be the best person to fix the issue.</p>
    <p>Greetings,</p>
    <p>Gregor<br>
    </p>
    <blockquote>
      <p><br>
      </p>
    </blockquote>
    <div class="moz-cite-prefix">On 11.01.22 22:52, Raffenetti, Ken
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:F3DE4516-37D4-4736-AB69-F04269FAD28D@anl.gov">
      <pre class="moz-quote-pre" wrap="">Gregor,

I believe these are test bugs. A fix for the f77 versions was added previously in <a class="moz-txt-link-freetext" href="https://github.com/pmodels/mpich/pull/3962/commits/69b02eaabcdb0008f3879372629cfe92f98e8d56">https://github.com/pmodels/mpich/pull/3962/commits/69b02eaabcdb0008f3879372629cfe92f98e8d56</a>, though it does not cover the prsendf test. Perhaps you could add a commit to your branch to fix these tests in a similar way.

Ken

On 1/11/22, 2:30 AM, "Gregor Corbin" <a class="moz-txt-link-rfc2396E" href="mailto:g.corbin@fz-juelich.de"><g.corbin@fz-juelich.de></a> wrote:






        Updating the F08 tests to 'use mpi_f08' was mostly
          straightforward. However, i ran into problems with three of the
          tests: irsendf08.f90, pssendf08.f90 and prsendf08.f90.
        With my modified irsendf08 (attached) for example, the test
          produces these error messages:  


           Nonnull request in irsend and irecv
             [           0 ] Unexpected source:           0  in irsend and
            irecv
             [           0 ] Unexpected tag:           0  in irsend and
            irecv
             [           0 ] Unexpected count:           0  in irsend and
            irecv
            Invalid data   0.0 at    1 of  666 in irsend and irecv
            Invalid data   0.0 at    2 of  666 in irsend and irecv
            ...
          Invalid data   0.0 at  666 of  666 in irsend and irecv
            Found          669  errors



        That is, the last message from process 1 to 0 is not received
        correctly. When I replace the call to MPI_Waitany with Waitall or
        Wait there are not errors.
        Is there maybe a problem with Waitany or did I just do something
          wrong?
        Gregor


        On 07.01.22 17:59, Raffenetti, Ken
          wrote:


          We would consider a patch, yes. First, you would need to sign and return the contributors agreement. <a class="moz-txt-link-freetext" href="https://www.mpich.org/documentation/contributor-docs/">https://www.mpich.org/documentation/contributor-docs/</a>

    As for whether or not automatic conversion is practical, I think if we structured the tests such that the types needing conversion were easily identifiable, then it could be done. It would require some churn of the existing tests. It may also complicate the addition of new, as the author would need to adhere to guidelines that may not be obvious without prior knowledge.

    I gave myself a task to support automatic conversion of the tests the `use mpi_f08`, but it is not very high priority at the moment.

    Ken

    On 1/7/22, 3:10 AM, "Gregor Corbin via discuss" <a class="moz-txt-link-rfc2396E" href="mailto:discuss@mpich.org"><discuss@mpich.org></a> <a class="moz-txt-link-rfc2396E" href="mailto:discuss@mpich.org"><mailto:discuss@mpich.org></a> wrote:

        Hi MPICH,

        I noticed that some of the tests in test/mpi/f08 still work with 'use 
        mpi' instead of  'use mpi_f08', mostly in the pt2pt folder. These seem 
        to be copies of the tests in f90 which in turn have been generated by 
        f77tof90.

        Shouldn't these tests be converted to 'use mpi_f08'? If so, would you be 
        interested in a PR that fixes this? I would need to do this anyway.


        Kind regards,

        Gregor Corbin


        PS.: The interfaces for 'use mpi' and 'use mpi_f08' are probably too 
        different for an automatic conversion to be practical (how to change all 
        the integers to type(mpi_xxx) for example?).









</pre>
    </blockquote>
  </body>
</html>