<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas",serif;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi Gregor,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This issue was reported before. You can track the issue here:
<a href="https://github.com/pmodels/mpich/issues/4170">https://github.com/pmodels/mpich/issues/4170</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">-- <br>
Hui Zhou<o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:.5in">
<b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">Gregor Corbin via discuss <discuss@mpich.org><br>
<b>Date: </b>Wednesday, January 12, 2022 at 5:19 AM<br>
<b>To: </b>Raffenetti, Ken <raffenet@anl.gov>, discuss@mpich.org <discuss@mpich.org><br>
<b>Cc: </b>Gregor Corbin <g.corbin@fz-juelich.de><br>
<b>Subject: </b>Re: [mpich-discuss] Fortran 08 tests with 'use mpi'<o:p></o:p></span></p>
</div>
<p style="margin-left:.5in">Ken, <o:p></o:p></p>
<p style="margin-left:.5in">while updating the F08 tests with this bugfix, I may have found another bug inside the 'use mpi_f08' wrappers.<o:p></o:p></p>
<p style="margin-left:.5in">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.<o:p></o:p></p>
<p style="margin-left:.5in">Indeed, the function mpi_testsome_ (in src/binding/fortran/mpif_h/fortran_binding.c) converts the indices:<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p style="margin-left:.5in">    for (int i = 0; i < (*outcount); i++) {<br>
        array_of_indices[i] += 1;<br>
    }<o:p></o:p></p>
</blockquote>
<p style="margin-left:.5in">The subroutine MPI_Testsome_f08 (in src/binding/fortran/use_mpi_f08/wrappers_f/f08ts.f90) does no such conversion.
<o:p></o:p></p>
<p style="margin-left:.5in">The bug is also in MPI_Testany (and potentially other functions I did not test yet).<o:p></o:p></p>
<p style="margin-left:.5in">However, without detailed knowledge about internals of MPICH I might not be the best person to fix the issue.<o:p></o:p></p>
<p style="margin-left:.5in">Greetings,<o:p></o:p></p>
<p style="margin-left:.5in">Gregor<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p style="margin-left:.5in"><o:p> </o:p></p>
</blockquote>
<div>
<p class="MsoNormal" style="margin-left:.5in">On 11.01.22 22:52, Raffenetti, Ken wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="margin-left:.5in">Gregor,<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">I believe these are test bugs. A fix for the f77 versions was added previously in <a 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.<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">Ken<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">On 1/11/22, 2:30 AM, "Gregor Corbin" <a href="mailto:g.corbin@fz-juelich.de"><g.corbin@fz-juelich.de></a> wrote:<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        Updating the F08 tests to 'use mpi_f08' was mostly<o:p></o:p></pre>
<pre style="margin-left:.5in">          straightforward. However, i ran into problems with three of the<o:p></o:p></pre>
<pre style="margin-left:.5in">          tests: irsendf08.f90, pssendf08.f90 and prsendf08.f90.<o:p></o:p></pre>
<pre style="margin-left:.5in">        With my modified irsendf08 (attached) for example, the test<o:p></o:p></pre>
<pre style="margin-left:.5in">          produces these error messages:  <o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">           Nonnull request in irsend and irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">             [           0 ] Unexpected source:           0  in irsend and<o:p></o:p></pre>
<pre style="margin-left:.5in">            irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">             [           0 ] Unexpected tag:           0  in irsend and<o:p></o:p></pre>
<pre style="margin-left:.5in">            irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">             [           0 ] Unexpected count:           0  in irsend and<o:p></o:p></pre>
<pre style="margin-left:.5in">            irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">            Invalid data   0.0 at    1 of  666 in irsend and irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">            Invalid data   0.0 at    2 of  666 in irsend and irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">            ...<o:p></o:p></pre>
<pre style="margin-left:.5in">          Invalid data   0.0 at  666 of  666 in irsend and irecv<o:p></o:p></pre>
<pre style="margin-left:.5in">            Found          669  errors<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        That is, the last message from process 1 to 0 is not received<o:p></o:p></pre>
<pre style="margin-left:.5in">        correctly. When I replace the call to MPI_Waitany with Waitall or<o:p></o:p></pre>
<pre style="margin-left:.5in">        Wait there are not errors.<o:p></o:p></pre>
<pre style="margin-left:.5in">        Is there maybe a problem with Waitany or did I just do something<o:p></o:p></pre>
<pre style="margin-left:.5in">          wrong?<o:p></o:p></pre>
<pre style="margin-left:.5in">        Gregor<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        On 07.01.22 17:59, Raffenetti, Ken<o:p></o:p></pre>
<pre style="margin-left:.5in">          wrote:<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">          We would consider a patch, yes. First, you would need to sign and return the contributors agreement. <a href="https://www.mpich.org/documentation/contributor-docs/">https://www.mpich.org/documentation/contributor-docs/</a><o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">    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.<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">    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.<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">    Ken<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">    On 1/7/22, 3:10 AM, "Gregor Corbin via discuss" <a href="mailto:discuss@mpich.org"><discuss@mpich.org></a> <a href="mailto:discuss@mpich.org"><mailto:discuss@mpich.org></a> wrote:<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        Hi MPICH,<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        I noticed that some of the tests in test/mpi/f08 still work with 'use <o:p></o:p></pre>
<pre style="margin-left:.5in">        mpi' instead of  'use mpi_f08', mostly in the pt2pt folder. These seem <o:p></o:p></pre>
<pre style="margin-left:.5in">        to be copies of the tests in f90 which in turn have been generated by <o:p></o:p></pre>
<pre style="margin-left:.5in">        f77tof90.<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        Shouldn't these tests be converted to 'use mpi_f08'? If so, would you be <o:p></o:p></pre>
<pre style="margin-left:.5in">        interested in a PR that fixes this? I would need to do this anyway.<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        Kind regards,<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        Gregor Corbin<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in">        PS.: The interfaces for 'use mpi' and 'use mpi_f08' are probably too <o:p></o:p></pre>
<pre style="margin-left:.5in">        different for an automatic conversion to be practical (how to change all <o:p></o:p></pre>
<pre style="margin-left:.5in">        the integers to type(mpi_xxx) for example?).<o:p></o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
<pre style="margin-left:.5in"><o:p> </o:p></pre>
</blockquote>
</div>
</body>
</html>