<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>
    
<div>Hi Alaa,</div><div><br></div><div>Generally, for small number of processes, the performance of MPI_Bcast is usually equal to MPI_Isend/MPI_Recv, for large number of processes, broadcast should be better.</div><div><br></div><div>Could you please try the lateat version of MPICH on you system ? MPICH2 is very old. </div><div><br></div><div>Please also give us following information.</div><div>Number of processes</div><div>Number of processes per node</div><div>The execution time of each algorithm</div><div><br></div><div>Min</div><div><br></div><div><br></div><div><br></div><div id="composer_signature"><div style="font-size:9px">Sent via my cell phone.</div><div></div></div><br><br>-------- Original message --------<br>From: alaa nashar <nashar_al@yahoo.com> <br>Date: 9/7/2016  7:04 AM  (GMT-06:00) <br>To: discuss@mpich.org <br>Subject: [mpich-discuss] MPI_Send and MPI_Bcast <br><br><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:24px"><div id="yui_3_16_0_ym19_1_1473243871493_21673"><span></span></div><div></div><div id="yui_3_16_0_ym19_1_1473243871493_21674"> <span style="font-family: Helvetica; font-size: 18pt;" id="yui_3_16_0_ym19_1_1473243871493_21961">Dear
all</span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21962"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21963"> </span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21964"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21965">I have
implemented the following two algorithms on my home Ethernet LAN containing 2/
and three heterogeneous devices using MPICH2.<o:p id="yui_3_16_0_ym19_1_1473243871493_21966"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21967"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21968"> <o:p id="yui_3_16_0_ym19_1_1473243871493_21969"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21970"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21971">Algorithm1:<o:p id="yui_3_16_0_ym19_1_1473243871493_21972"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21973"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21974">1- Root
process reads the contents of an input array.<o:p id="yui_3_16_0_ym19_1_1473243871493_21975"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21976"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21977">2- It
then sends the array data to all other processes.<o:p id="yui_3_16_0_ym19_1_1473243871493_21978"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21979"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21980">3- All
processes including the root process perform specific<o:p id="yui_3_16_0_ym19_1_1473243871493_21981"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21982"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21983">  
computations on their array copies.<o:p id="yui_3_16_0_ym19_1_1473243871493_21984"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21985"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21986">4- Once
the computations within each process are finished,<o:p id="yui_3_16_0_ym19_1_1473243871493_21987"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21988"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21989">  
the generated arrays are directly written by the process that<o:p id="yui_3_16_0_ym19_1_1473243871493_21990"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21991"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21992">  
performed the computations to separate files.<o:p id="yui_3_16_0_ym19_1_1473243871493_21993"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21994"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21995"> <o:p id="yui_3_16_0_ym19_1_1473243871493_21996"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_21997"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_21998">Algorithm2:<o:p id="yui_3_16_0_ym19_1_1473243871493_21999"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22000"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22001">Same as
Algorithm 1 except step 2 is replace by:<o:p id="yui_3_16_0_ym19_1_1473243871493_22002"></o:p></span></div>

<div dir="LTR" style="text-indent: 6pt; direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22003"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22004">2- Root process broadcast the array data to all other processes.<o:p id="yui_3_16_0_ym19_1_1473243871493_22005"></o:p></span></div>

<div dir="LTR" style="text-indent: 6pt; direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22006"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22007"> <o:p id="yui_3_16_0_ym19_1_1473243871493_22008"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22009"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22010">The
implementation of both algorithms  work fine and give the expected results
but Algorithm2 that uses MIPI_Bcast is slower than Algorithm1 that uses
MPI_Send<o:p id="yui_3_16_0_ym19_1_1473243871493_22011"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22012"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22013"> <o:p id="yui_3_16_0_ym19_1_1473243871493_22014"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22015"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22016">For my
knowledge, MIPI_Bcast is faster than MPI_Send.<o:p id="yui_3_16_0_ym19_1_1473243871493_22017"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22018"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22019">Please,
would you guide me to know if there is any conflict of misunderstand.<o:p id="yui_3_16_0_ym19_1_1473243871493_22020"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22021"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22022"> <o:p id="yui_3_16_0_ym19_1_1473243871493_22023"></o:p></span></div>

<div dir="LTR" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22024"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22025">Thanks
a lot<o:p id="yui_3_16_0_ym19_1_1473243871493_22026"></o:p></span></div>

<div dir="LTR" style="text-indent: 6pt; direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22027"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22028"> <o:p id="yui_3_16_0_ym19_1_1473243871493_22029"></o:p></span></div>

<div dir="LTR" style="text-indent: 6pt; direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22030"><span style="font-size: 18pt; font-family: Helvetica;" id="yui_3_16_0_ym19_1_1473243871493_22031">Alaa<o:p id="yui_3_16_0_ym19_1_1473243871493_22032"></o:p></span></div>

<div dir="ltr" style="direction: ltr; unicode-bidi: embed;" id="yui_3_16_0_ym19_1_1473243871493_22033"><o:p id="yui_3_16_0_ym19_1_1473243871493_22034"> </o:p></div><div class="signature" id="yui_3_16_0_ym19_1_1473243871493_21675"><br></div></div></body></html>