<?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: Differentiating Broadcast and Recv messages in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872376#M2998</link>
    <description>&lt;DIV style="margin:0px;"&gt;Hi Jimmy,&lt;/DIV&gt;
&lt;P&gt;MPI_Bcast is a collective operation. There's no mechanism for it to accept messages from apoint-to-point function like MPI_Isend.Are youdoing something like this?&lt;/P&gt;
&lt;PRE&gt;[cpp]switch(rank) { 
    case 0: 
        MPI_Bcast(buf1, count, type, 0, comm); 
        MPI_Send(buf2, count, type, 1, tag, comm); 
        break; 
    case 1: 
        MPI_Recv(buf2, count, type, 0, tag, comm, status); 
        MPI_Bcast(buf1, count, type, 0, comm); 
        break; 
}[/cpp]&lt;/PRE&gt;
&lt;P&gt;This code is incorrect because the MPI processes reverse theorder of point-to-point and collective communication. The MPI Forum shows several examples of erroneous collective operations: &lt;A href="http://www.mpi-forum.org/docs/mpi-11-html/node86.html#Node86"&gt;http://www.mpi-forum.org/docs/mpi-11-html/node86.html#Node86&lt;/A&gt;. Can you post some pseudocode illustrating what your program is doing?&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Henry&lt;/P&gt;</description>
    <pubDate>Fri, 09 Jan 2009 23:55:16 GMT</pubDate>
    <dc:creator>Henry_G_Intel</dc:creator>
    <dc:date>2009-01-09T23:55:16Z</dc:date>
    <item>
      <title>Differentiating Broadcast and Recv messages</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872375#M2997</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt; My code performs broadcasting and transmission using bcast and isend simultaneously.&lt;BR /&gt;&lt;BR /&gt; At the receiving end, how can I differentiate between bcast and isend messages? The program is multi-threaded with a receiving end for broadcast messages and received messages. I discover that if I incorrectly accepts an incoming data with ibcast function, the program would crash. How can I best resolved this?&lt;BR /&gt;&lt;BR /&gt; Thanks for helping.&lt;BR /&gt;&lt;BR /&gt;Kind Regards,&lt;BR /&gt;Jimmy</description>
      <pubDate>Tue, 06 Jan 2009 18:23:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872375#M2997</guid>
      <dc:creator>Jimmy821</dc:creator>
      <dc:date>2009-01-06T18:23:36Z</dc:date>
    </item>
    <item>
      <title>Re: Differentiating Broadcast and Recv messages</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872376#M2998</link>
      <description>&lt;DIV style="margin:0px;"&gt;Hi Jimmy,&lt;/DIV&gt;
&lt;P&gt;MPI_Bcast is a collective operation. There's no mechanism for it to accept messages from apoint-to-point function like MPI_Isend.Are youdoing something like this?&lt;/P&gt;
&lt;PRE&gt;[cpp]switch(rank) { 
    case 0: 
        MPI_Bcast(buf1, count, type, 0, comm); 
        MPI_Send(buf2, count, type, 1, tag, comm); 
        break; 
    case 1: 
        MPI_Recv(buf2, count, type, 0, tag, comm, status); 
        MPI_Bcast(buf1, count, type, 0, comm); 
        break; 
}[/cpp]&lt;/PRE&gt;
&lt;P&gt;This code is incorrect because the MPI processes reverse theorder of point-to-point and collective communication. The MPI Forum shows several examples of erroneous collective operations: &lt;A href="http://www.mpi-forum.org/docs/mpi-11-html/node86.html#Node86"&gt;http://www.mpi-forum.org/docs/mpi-11-html/node86.html#Node86&lt;/A&gt;. Can you post some pseudocode illustrating what your program is doing?&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Henry&lt;/P&gt;</description>
      <pubDate>Fri, 09 Jan 2009 23:55:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872376#M2998</guid>
      <dc:creator>Henry_G_Intel</dc:creator>
      <dc:date>2009-01-09T23:55:16Z</dc:date>
    </item>
    <item>
      <title>Re: Differentiating Broadcast and Recv messages</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872377#M2999</link>
      <description>&lt;DIV style="margin:0px;"&gt;
&lt;DIV id="quote_reply" style="width: 100%; margin-top: 5px;"&gt;
&lt;DIV style="margin-left:2px;margin-right:2px;"&gt;Quoting - &lt;A href="https://community.intel.com/en-us/profile/334783"&gt;Henry Gabb (Intel)&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV style="background-color:#E5E5E5; padding:5px;border: 1px; border-style: inset;margin-left:2px;margin-right:2px;"&gt;&lt;EM&gt;
&lt;DIV style="margin:0px;"&gt;Hi Jimmy,&lt;/DIV&gt;
&lt;P&gt;MPI_Bcast is a collective operation. There's no mechanism for it to accept messages from apoint-to-point function like MPI_Isend.Are youdoing something like this?&lt;/P&gt;
&lt;/EM&gt;&lt;PRE&gt;&lt;EM&gt;[cpp]switch(rank) { &lt;BR /&gt;    case 0: &lt;BR /&gt;        MPI_Bcast(buf1, count, type, 0, comm); &lt;BR /&gt;        MPI_Send(buf2, count, type, 1, tag, comm); &lt;BR /&gt;        break; &lt;BR /&gt;    case 1: &lt;BR /&gt;        MPI_Recv(buf2, count, type, 0, tag, comm, status); &lt;BR /&gt;        MPI_Bcast(buf1, count, type, 0, comm); &lt;BR /&gt;        break; &lt;BR /&gt;}[/cpp]&lt;/EM&gt;&lt;/PRE&gt;
&lt;P&gt;This code is incorrect because the MPI processes reverse theorder of point-to-point and collective communication. The MPI Forum shows several examples of erroneous collective operations: &lt;A href="http://www.mpi-forum.org/docs/mpi-11-html/node86.html#Node86"&gt;http://www.mpi-forum.org/docs/mpi-11-html/node86.html#Node86&lt;/A&gt;. Can you post some pseudocode illustrating what your program is doing?&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Henry&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;BR /&gt;I wanted to distribute out data as a broadcast to all the slave threads.&lt;BR /&gt;&lt;BR /&gt;However, I require the slave threads to return different types of objects back to the master which perform the broadcast. A simple bcast operation is not sufficient because it does not different the types.&lt;BR /&gt;&lt;BR /&gt;In addition, I may want to perform inter-process communications in between the slave threads. I feel riding on top of MPI infrusturture is the best.&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;BR /&gt;</description>
      <pubDate>Sun, 11 Jan 2009 16:59:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Differentiating-Broadcast-and-Recv-messages/m-p/872377#M2999</guid>
      <dc:creator>Jimmy821</dc:creator>
      <dc:date>2009-01-11T16:59:56Z</dc:date>
    </item>
  </channel>
</rss>

