[MPICH] FreeBSD and the ch3:smm channel?
Steve Kargl
sgk at troutmask.apl.washington.edu
Wed Jan 31 16:20:46 CST 2007
On Wed, Jan 31, 2007 at 03:40:25PM -0600, Darius Buntinas wrote:
>
> On Wed, 31 Jan 2007, Steve Kargl wrote:
>
> >On Wed, Jan 31, 2007 at 01:34:24PM -0600, Darius Buntinas wrote:
> >>
> >>We're working on a fixing this the right way, but in the mean time, as
> >>long as you don't need to use --enable-fast, edit the file
> >>src/mpid/ch3/channels/nemesis/setup_channel.args and remove every thing
> >>after, and including, the line that starts with "eval" (i.e., the eval
> >>line and the whole for loop). Then give configure a try again.
> >>
> >>Let me know if this helps.
> >>
> >
> >That appears to work. I can build and install mpich2 with
> >the nemesis device. Unfortunately, it doesn't appear to
> >help performance on the SMP systems.
> >
>
> What kind of latency/bandwidth are you getting, and what kind or machine
> are you running on?
>
The cluster topology can be seen at
http://troutmask.apl.washington.edu/~kargl/hpc.html
The nodes are connected with gigE ethernet using standard TCP/IP
packets. I tried jumbo frames, but that also seemed to reduce
performance. Each node has 2 dual-core opteron processors (ie
4 effective cpus per node). I was hoping the ch3:smm (or
ch3:nemesis) would improve communication for same-node-processes.
I'm still trying to determine the best way to measure the latency
for our codes. All I have at the moment is antidotal measures
(ie, wall-clock and Fortran cpu_time). My code is a standard
master-slave algorithm and ch3:sock works well. My colleague uses
a scatter-gather algorithm and communication appears to be killing
him. If I switch us to ch3:nemesis, performance appears to go
down for both codes.
With my code and ch3:nemesis and an otherwise idle cluster, I do
$ mpiexec -n 24 ./ripmp
and top(1) immediately shows
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
4079 kargl 1 96 0 33880K 10276K select 0 0:01 0.00% python2.4
54225 kargl 1 96 0 32960K 9524K select 0 0:00 0.00% python2.4
54228 kargl 1 96 0 34148K 10548K select 0 0:00 0.00% python2.4
54227 kargl 1 96 0 34148K 10548K select 0 0:00 0.00% python2.4
54226 kargl 1 96 0 34148K 10548K select 3 0:00 0.00% python2.4
54229 kargl 1 96 0 34148K 10548K select 0 0:00 0.00% python2.4
54231 kargl 1 4 0 7156K 2304K sbwait 0 0:00 0.00% ripmp
54232 kargl 1 4 0 7156K 2304K sbwait 2 0:00 0.00% ripmp
54230 kargl 1 4 0 7156K 2304K sbwait 0 0:00 0.00% ripmp
54233 kargl 1 4 0 7156K 2304K sbwait 3 0:00 0.00% ripmp
ripmp is my code and the python2.4 jobs are from mpiexec. The ripmp
jobs remain in the sbwait state for at least 45 seconds, then the state
changes to accept and back to sbwait, after 60+ seconds the ripmp jobs
suddenly start to run
54233 kargl 1 112 0 40860K 3176K RUN 0 0:43 84.52% ripmp
54230 kargl 1 112 0 40836K 3192K CPU3 1 0:41 84.27% ripmp
54231 kargl 1 112 0 40836K 3200K CPU2 3 0:40 83.98% ripmp
54232 kargl 1 112 0 40836K 3196K CPU1 2 0:38 83.78% ripmp
With the ch3:sock, the ripmp jobs start to run almost immediately and
actually reach 98% cpu utilitization.
If you have a suggestion on how to measure the difference in
latency for ch3:sock and ch3:nemesis, then I'll try to gather
some numbers.
--
Steve
More information about the mpich-discuss
mailing list