<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Missing MPI_f08_status conversion functions in Intel MPI in Intel® MPI Library</title>
    <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1617810#M11811</link>
    <description>&lt;P&gt;I used &lt;EM&gt;&lt;STRONG&gt;Intel MPI 2021.21&lt;/STRONG&gt;&lt;/EM&gt; to compile on &lt;EM&gt;&lt;STRONG&gt;SLES-15.5&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Reproducer:&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;mpi.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;

int main(int argc, char** argv, char** environ)
{
    int i;
    int my_rank;       /* Rank of process */
    int p;             /* Number of processors */
    int source;        /* Rank of sender */
    int dest;          /* Rank of receiver */
    int tag = 50;      /* Tag for messages */
    char message[100]; /* Storage for the message */

    MPI_Status status; /* Return status for receive */

    MPI_Init(&amp;amp;argc, &amp;amp;argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;my_rank);
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;p);

    if (my_rank != 0) /* deliberately mismatch send-recv with 7 procs */
    {
        sprintf(message, "Greetings from process %d!", my_rank);
        printf("sending message from (%d)\n", my_rank);
        dest = 0;
        /* Use strlen(message)+1 to include '\0' */
        MPI_Send(message, strlen(message) + 1, MPI_CHAR, dest, tag, MPI_COMM_WORLD);
    } else {
        /* my_rank == 0 */
        for (source = 1; source &amp;lt; p; source++) {
            printf("waiting for message from (%d)\n", source);
            MPI_Recv(message, 100, MPI_CHAR, source, tag, MPI_COMM_WORLD, &amp;amp;status);
            printf("%s\n", message);
            MPI_F08_status f08_status;
            MPI_Status_c2f08(&amp;amp;status, &amp;amp;f08_status);
        }
    }

    printf("all done...(%d)\n", my_rank);

    return 0;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;For example, if compiled with OpenMPI 5.0.0 this will compile okay but for IntelMPI I would get the following:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;$ mpicc -g -O0 -o repro ./repro.c 
./repro.c:37:13: error: call to undeclared function 'MPI_Status_c2f08'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   37 |             MPI_Status_c2f08(&amp;amp;status, &amp;amp;f08_status);
      |             ^
./repro.c:37:13: note: did you mean 'MPI_Status_c2f'?
/path/to/intel_installation/2024.1.0/mpi/2021.12/include/mpi.h:1648:5: note: 'MPI_Status_c2f' declared here
 1648 | int MPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status) MPICH_API_PUBLIC;
      |     ^
1 error generated.&lt;/LI-CODE&gt;</description>
    <pubDate>Wed, 24 Jul 2024 16:28:28 GMT</pubDate>
    <dc:creator>Linaro_Josh</dc:creator>
    <dc:date>2024-07-24T16:28:28Z</dc:date>
    <item>
      <title>Missing MPI_f08_status conversion functions in Intel MPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1615805#M11803</link>
      <description>&lt;P&gt;Hey Intel,&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have noticed that IntelMPI is currently missing the following functions:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;MPI_Status_f082f&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;MPI_Status_f2f08&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;MPI_Status_f082c&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;MPI_Status_c2f08&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;These functions are required for our MPI wrappers, but it appears they are also required by the&amp;nbsp;&lt;A href="https://www.mpi-forum.org/docs/mpi-4.1/mpi41-report.pdf#subsection.19.3.5" target="_blank" rel="noopener"&gt;MPI standard&lt;/A&gt; since 3.0. They are required to be avliable in both the C and Fortran workspace:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="f08_conversions.png" style="width: 584px;"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/57041iDF67E69EF82D0C96/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="f08_conversions.png" alt="f08_conversions.png" /&gt;&lt;/span&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I was wondering if it was possible to add these functions into IntelMPI?&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 17 Jul 2024 14:47:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1615805#M11803</guid>
      <dc:creator>Linaro_Josh</dc:creator>
      <dc:date>2024-07-17T14:47:51Z</dc:date>
    </item>
    <item>
      <title>Re: Missing MPI_f08_status conversion functions in Intel MPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1617775#M11807</link>
      <description>&lt;P&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/308410"&gt;@Linaro_Josh&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;do you have a reproducer that fails to build? Which version did you use to build? OS?&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jul 2024 14:43:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1617775#M11807</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-07-24T14:43:03Z</dc:date>
    </item>
    <item>
      <title>Re: Missing MPI_f08_status conversion functions in Intel MPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1617810#M11811</link>
      <description>&lt;P&gt;I used &lt;EM&gt;&lt;STRONG&gt;Intel MPI 2021.21&lt;/STRONG&gt;&lt;/EM&gt; to compile on &lt;EM&gt;&lt;STRONG&gt;SLES-15.5&lt;/STRONG&gt;&lt;/EM&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;Reproducer:&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="cpp"&gt;#include &amp;lt;mpi.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;

int main(int argc, char** argv, char** environ)
{
    int i;
    int my_rank;       /* Rank of process */
    int p;             /* Number of processors */
    int source;        /* Rank of sender */
    int dest;          /* Rank of receiver */
    int tag = 50;      /* Tag for messages */
    char message[100]; /* Storage for the message */

    MPI_Status status; /* Return status for receive */

    MPI_Init(&amp;amp;argc, &amp;amp;argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;my_rank);
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;p);

    if (my_rank != 0) /* deliberately mismatch send-recv with 7 procs */
    {
        sprintf(message, "Greetings from process %d!", my_rank);
        printf("sending message from (%d)\n", my_rank);
        dest = 0;
        /* Use strlen(message)+1 to include '\0' */
        MPI_Send(message, strlen(message) + 1, MPI_CHAR, dest, tag, MPI_COMM_WORLD);
    } else {
        /* my_rank == 0 */
        for (source = 1; source &amp;lt; p; source++) {
            printf("waiting for message from (%d)\n", source);
            MPI_Recv(message, 100, MPI_CHAR, source, tag, MPI_COMM_WORLD, &amp;amp;status);
            printf("%s\n", message);
            MPI_F08_status f08_status;
            MPI_Status_c2f08(&amp;amp;status, &amp;amp;f08_status);
        }
    }

    printf("all done...(%d)\n", my_rank);

    return 0;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;For example, if compiled with OpenMPI 5.0.0 this will compile okay but for IntelMPI I would get the following:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;$ mpicc -g -O0 -o repro ./repro.c 
./repro.c:37:13: error: call to undeclared function 'MPI_Status_c2f08'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   37 |             MPI_Status_c2f08(&amp;amp;status, &amp;amp;f08_status);
      |             ^
./repro.c:37:13: note: did you mean 'MPI_Status_c2f'?
/path/to/intel_installation/2024.1.0/mpi/2021.12/include/mpi.h:1648:5: note: 'MPI_Status_c2f' declared here
 1648 | int MPI_Status_c2f(const MPI_Status *c_status, MPI_Fint *f_status) MPICH_API_PUBLIC;
      |     ^
1 error generated.&lt;/LI-CODE&gt;</description>
      <pubDate>Wed, 24 Jul 2024 16:28:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1617810#M11811</guid>
      <dc:creator>Linaro_Josh</dc:creator>
      <dc:date>2024-07-24T16:28:28Z</dc:date>
    </item>
    <item>
      <title>Re:Missing MPI_f08_status conversion functions in Intel MPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1618098#M11813</link>
      <description>&lt;P&gt;Thanks for reporting that, we will likely fix it in the second next release, shipped with the oneAPI 2025.0 release.&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 25 Jul 2024 12:43:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1618098#M11813</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-07-25T12:43:45Z</dc:date>
    </item>
    <item>
      <title>Re:Missing MPI_f08_status conversion functions in Intel MPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1626810#M11863</link>
      <description>&lt;P&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/308410"&gt;@Linaro_Josh&lt;/a&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;it's now confirmed, the fix is in 2025.0&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 28 Aug 2024 12:46:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1626810#M11863</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-08-28T12:46:33Z</dc:date>
    </item>
    <item>
      <title>Re: Missing MPI_f08_status conversion functions in Intel MPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1626823#M11864</link>
      <description>&lt;P&gt;Thanks &lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/245425"&gt;@TobiasK&lt;/a&gt;, do let me know when this becomes available.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Aug 2024 13:17:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Missing-MPI-f08-status-conversion-functions-in-Intel-MPI/m-p/1626823#M11864</guid>
      <dc:creator>Linaro_Josh</dc:creator>
      <dc:date>2024-08-28T13:17:17Z</dc:date>
    </item>
  </channel>
</rss>

