Thanks Krishna for ur efforts.<br>But, <br>I am expressing this doubt related to <b>MPICH-G2 means mpich1 device globus2.</b><br>How is all-to-all (hostname+port no) exchange is done) ?<br><br>As far as now I traced till the calls to globus_duroc_runtime_inter_subjob_send from the intra_subjob_send call which is again called from intra_subjob_bcast call.<br>
<br>Is this globus_duroc_runtime_inter_subjob_send ,globus_duroc_runtime_inter_subjob_receive exchage through the hostname+port through gatekeeper or any other ports ??<br><br>Any help will be great indeed.<br><br><div class="gmail_quote">
On Tue, Mar 11, 2008 at 5:54 PM, Krishna Chaitanya <<a href="mailto:kris.c1986@gmail.com">kris.c1986@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi, <br> I have traced through the point to point module a few times. So, may be I can share the flow of events : <br>MPI_Init does some basic error checking first and calls MPIR_Init_thread() which primarily populates the MPIR_Process data structure, which also includes the communicator structure. Apart from that, it also initialises some other global variables and the channel interface. <br>
<div class="Ih2E3d">
<br>> How the initial communication is established in order to exchange the hostname+ port number details ?<br></div> Suppose, you are using the standard blocking send mode, the bulk of this work is done in the MPID_Send() function. Here, the library either selects the eager mode or the rendezvous mode ,depending on the size of the message that you intend to transfer. There is a cut-off size ( vc->eager_max_msg_sz ) upto which the library chooses the eager mode, for data sizes beyond this, the rendezvous mode is selected. <br>
Suppose, the message is small and the data is contiguous,either the MPIDI_CH3_EagerContigShortSend() function is invoked. Over here, the eager packet is initialized and the data is copied from the buffer to the eager packet and invokes the MPIDI_CH3_iStartMsg(). This function examines the current connection state, since it is the first call, it is still un-connected. It creates the request data structure and enqueues it. The progress engine takes care of the request from here. The library now tries to form a new connection to the node whose rank has been specified,by invoking the MPIDI_CH3I_VC_post_connect() function. The destination is already known to the library through the rank and the hostname( mpd.hosts). This function gets the info related to the destination IP and the port address. <br>
The library now invokes the progress engine, through the call to MPIDI_CH3i_Progress_wait(). The actual connection establishment and the data transfer takes place in this function through the calls to MPIDI_CH3I_Progress_handle_sock_event() and MPIDU_Sock_wait(). It loops around till the completion counter is set to 1. <br>
<div class="Ih2E3d">
<br>>How is the hostname+port number details sent and received <br></div>
I remember Dave had once helped me out with this : <a href="http://wiki.mcs.anl.gov/mpich2/index.php/" target="_blank">http://wiki.mcs.anl.gov/mpich2/index.php/</a>Sock_conn_protocol<br>
<br>
Its quite copious in content. The best way to understand what
is happening is to actually trace through the entire progress engine. <br><div class="Ih2E3d"><br>> How is all-to-all communication is done? On which ports this will be done ?<br></div> I am sure the other experienced members would help you on this. I havent done much in this area. <br>
<br> I just have a few months exposure to MPICH. If I have gone wrong somewhere, please do correct me.<br><br>Best,<br>Krishna Chaitanya K,<br>Final Year B-Tech,<br>Dept. of Information Technology,<br>National Institute of Technology,Karnataka (NITK)<div>
<div></div><div class="Wj3C7c"><br>
<br><br> <br><br><br><div class="gmail_quote">On Tue, Mar 11, 2008 at 3:15 AM, Ravi Thati <<a href="mailto:gotothati@gmail.com" target="_blank">gotothati@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello All,<br><br> I am working with MPICH-G2.<br> I came to know (from mailing search) that while MPI_Init is called , the initialization is being done.<br> All-to-all exchange of host+port details is done.<br>
<br>My doubt is :<br><br> How the initial communication is established in order to exchange the hostname+ port number details ?<br> How is the hostname+port number details sent and received ? what are the destination IPs these packets?<br>
<br> How is all-to-all communication is done? On which ports this will be done ?<br> Only after the exchange , each process can communicate with other.<br><br> Thanks for any clarifications. <br>-- <br>Regards,<br><font color="#888888">Ravi.Thati
</font></blockquote></div><br><br clear="all"><br></div></div><font color="#888888">-- <br>In the middle of difficulty, lies opportunity
</font></blockquote></div><br><br clear="all"><br>-- <br>Thanks & Regards,<br>Ravi.Thati