[MPICH] Using non-default ethernet interfaces

Jeff Squyres jsquyres at cisco.com
Thu May 17 09:21:59 CDT 2007


Thanks Ralph; that also worked (I used Anthony's solution before  
reading yours).  Your solution allowed mpdboot to use my alternate  
hostnames without barfing.

I had originally tried having a hostfile like this:

m1$ cat hostfile
m1-fast
m2-fast
m1$ mpdboot -n 2 -f hostfile

And got a weird error (see my prior e-mail).  Shouldn't mpdboot be  
smart enough to be able to figure out that it is on the same host as  
m1-fast, and not require the --ifhn argument on the command line?   
Based on the behavior of prior versions of MPICH (and LAM/MPI), I had  
expected that simply supplying the -fast hostnames in the hostfile a)  
would allow mpdboot to work properly, and b) MPI apps started via the  
mpd would "inherit" the -fast hostnames and use them for MPI pt2pt  
communication.

This is somewhat of a moot point since your method works; I mention  
it simply as a usability / Law of Least Astonishment issue.

(BTW, messages sent through this listserver seem to take quite a  
while to be delivered; 30+ minutes sometimes...)



On May 16, 2007, at 6:29 PM, Ralph Butler wrote:

> This can be a bit tricky to get right no matter which way you try  
> to do it, and there are
> multiple ways to pull it off.  You can set the interface when mpds  
> are started and then
> the user pgms will use that same interface.  Or, you can let the  
> mpds use one interface
> and then have your program use a different interface at runtime;  
> this requires using
> the -machinefile option on mpiexec.
>
> I will assume for the present that you want to set the fast  
> interface for the mpds and
> then have the pgm inherit that interface.  From your email, I  
> assume you are also
> planning to start the mpds via mpdboot; that is actually the  
> goofiest part.  Here's how
> it goes.
>
> Let's assume that some machines are named m1, m2, and m3.  Let's  
> also assume that
> each host has a second name associated with a fast interface, e.g.  
> m1-fast, m2-fast, and
> m3-fast.  Finally, we will assume that you are going to run mpdboot  
> from m1 and that you
> want to use the fast interfaces.  Then you might create a hosts  
> file named myhosts that
> contains:
>     m2-fast
>     m3-fast
> Since we are being picky about interfaces, I would leave m1/m1-fast  
> out of the file and handle
> it via the cmd-line.  It can get very confusing for mpdboot to know  
> which IP to associate with
> a given host.  Ultimately, it assumes that info about the local  
> host is reliable from the cmd-line.
> So, you do this:
>     mpdboot -v -f myhosts -n 3 --ifhn=m1-fast
> That --ifhn arg is the tricky part.  It is the ifhn to be  
> associated with the local host.  It will NOT be
> obtained from myhosts.  mpdboot will start one mpd on the local  
> machine (m1 using the ifhn
> m1-fast) and then will start 2 others on m2-fast and m3-fast.  Now,  
> mpich2 pgms should also
> use those interfaces.
>
> --ralph
>
> On WedMay 16, at Wed May 16 5:34PM, Jeff Squyres wrote:
>
>> Greetings.  I'm trying to run MVAPICH2 over ethernet to do some  
>> performance comparisons, but I'm having a heck of a time trying to  
>> figure out how to use a non-default TCP interface.
>>
>> Specifically, eth0 is my "normal" gigE network (the IP address  
>> associated with the hostname).  But I want to run an MVAPICH2 job  
>> over ib0 -- my IPoIB interface.
>>
>> I looked through the user documentation and didn't see anything  
>> about how to do this -- did I miss it?  Pointers would be greatly  
>> appreciated.
>>
>> Thanks.
>>
>> -- 
>> Jeff Squyres
>> Cisco Systems
>>


-- 
Jeff Squyres
Cisco Systems




More information about the mpich-discuss mailing list