<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">You can set the MPIR_PARAM_CH3_NO_LOCAL environment variable to 1. Refer to the README.envvar file.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">  Antonio</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">On Friday, September 13, 2013 08:53:36 AM Jiri Simsa wrote:<br /></p>
<p style=" margin-top:12px; margin-bottom:0px; margin-left:40px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Pavan,</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:40px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:40px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Thank you for your answer. That's precisely what I was looking for. Any chance there is a way to force the intranode communication to use tcp?</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:40px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:40px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">--Jiri</p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:40px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:46px; margin-right:40px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><span style=" font-family:'arial,sans-serif';">Within the node, it uses shared memory.  Outside the node, it depends on the netmod you configured with.  tcp is the default netmod.</span><span style=" font-family:'arial, sans-serif';"><br /></span><span style=" font-family:'arial,sans-serif';"> -- Pavan</span><span style=" font-family:'arial, sans-serif';"><br /></span><span style=" font-family:'arial,sans-serif';">On Sep 12, 2013, at 2:24 PM, Jiri Simsa wrote:</span><span style=" font-family:'arial, sans-serif';"><br /></span><span style=" font-family:'arial,sans-serif';">> The high-order bit of my question is: What OS interface(s) does MPICH use to transfer data from one MPI process to another?<br />><br />><br />> On Thu, Sep 12, 2013 at 1:36 PM, Jiri Simsa <</span><a href="mailto:jsimsa@cs.cmu.edu"><span style=" font-family:'arial,sans-serif'; text-decoration: underline; color:#0057ae;">jsimsa@cs.cmu.edu</span></a><span style=" font-family:'arial,sans-serif';">> wrote:<br />> Hello,<br />><br />> I have been trying to understand how MPICH implements collective operations. To do so, I have been reading the MPICH source code and stepping through mpiexec executions.<br />><br />> For the sake of this discussion, let's assume that all MPI processes are executed on the same computer using: mpiexec -n <n> <mpi_program><br />><br />> This is my current abstract understanding of MPICH:<br />><br />> - mpiexec spawns a hydra_pmi_proxy process, which in turn spawns <n> instances of <mpi_program><br />> - hydra_pmi_proxy process uses socket pairs to communicate with the instances of <mpi_program><br />><br />> I am not quite sure though what happens under the hoods when a collective operation, such as MPI_Allreduce, is executed. I have noticed that instances of <mpi_program> create and listen on a socket in the course of executing MPI_Allreduce but I am not sure who connects to these sockets. Any chance someone could describe the data flow inside of MPICH when a collective operation, such as MPI_Allreduce, is executed? Thanks!<br />><br />> Best,<br />><br />> --Jiri Simsa<br />><br />> _______________________________________________<br />> discuss mailing list     </span><a href="mailto:discuss@mpich.org"><span style=" font-family:'arial,sans-serif'; text-decoration: underline; color:#0057ae;">discuss@mpich.org<br /></span></a><span style=" font-family:'arial,sans-serif';">> To manage subscription options or unsubscribe:<br />> </span><a href="https://lists.mpich.org/mailman/listinfo/discuss"><span style=" font-family:'arial,sans-serif'; text-decoration: underline; color:#0057ae;">https://lists.mpich.org/mailman/listinfo/discuss</span></a><span style=" font-family:'arial, sans-serif';"><br /></span><span style=" font-family:'arial,sans-serif';">--<br />Pavan Balaji<br /></span><a href="http://www.mcs.anl.gov/~balaji"><span style=" font-family:'arial,sans-serif'; text-decoration: underline; color:#0057ae;">http://www.mcs.anl.gov/~balaji</span></a></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br /><br /></p></body></html>