Newsgroups: comp.parallel.mpi
From: wcs@win233.nas.nasa.gov (William C. Saphir)
Subject: Re: Performance problems using mpi on the SGI Power Challenge
Organization: NAS/NASA Ames Research Center
Date: 21 Sep 1996 21:03:07 -0700
Message-ID: <v3tohizci2s.fsf@win233.nas.nasa.gov>

Thomas Fiig <recfiig> writes:

> I am running SGI's implementation of MPI on a 16 proc. 90 MHz 8 Gb mem. SGI 
> Power Challenge system. I am having severe problems with the performance.
> 
> ...
> Has anybody seen this degradation ? 
> 
> Is there a cure ?

The reason for the performance hit is that the SGI implementation
of MPI spins when waiting for a message to arrive. The receiving process
accumulates CPU time and doesn't yield to another process that might
have useful work to do. Synchronization delays further magnify the
problem. The tradeoff is that spinning reduces the latency
(substantially?) when there are fewer processes than processors. 
There are ways to get the best of both worlds, by spinning for
a short time and then yielding the processor, but the implementation
is more difficult. I wouldn't be surprised to see this in 
a subsequent release. (No inside info here - it's just an obvious
thing to try). 

The cure is to make sure to run with (# processes) <= (# processors). 
Ideally, this should be strictly "<", leaving 1 processor for the 
system stuff. Even if a new implementation of MPI avoids the spinning, this
will probably remain good advice, unless you have a very loosely 
synchronized application. 

Bill Saphir




