[mvapich-discuss] MPI blocking mode progress with 10GbE/ iWARP
Ken Cain
kcain at mc.com
Thu Oct 18 16:21:08 EDT 2007
Sundeep Narravula wrote:
>>I would like to run mvapich2 in blocking mode (i.e., do not take up any
>>CPU while waiting for incoming messages). I would like this even when I
>>am running one MPI process per node. What are the prerequisites to
>>achieve this using the current Gen2-iWARP transport? Should I simply use
>>the MV2_USE_BLOCKING parameter (knowing that it is documented to only
>>work for the Gen2-InfiniBand transport)? Or do I need to take into
>>account additional parameters such as the threading support parameter to
>>the mvapich2 library build?
>>
>>
>>
>Hi Ken,
>
> Currently if you run one MPI process per node you *can* use
>MV2_USE_BLOCKING mode with MV2_USE_IWARP_MODE with the Gen2-iWARP device.
>You should not need to worry about other issues for this case. The
>following execution is a perfectly valid one.
>
>mpiexec -n 2 -env MV2_USE_IWARP_MODE 1 -env MV2_USE_BLOCKING 1 ./a.out
>
>Please note that as of now this works only for one MPI process per node.
>
>Hope that helps.
>
>Regards,
> --Sundeep.
>
>
>
>
Hello Sundeep,
Sorry it's been a while since your most recent response, but I have just
now had a chance to perform some experiments.
With MVAPICH2-1.0 I have found that I can control polling or blocking
mode progress with MV2_USE_BLOCKING, but only for trivial MPI programs
(e.g., rank 0 sleeps, then sends to rank 1 whose CPU utilization I
monitor while inside MPI_Recv or MPI_Wait). When there is more
communication activity (e.g., in an MPI ping-pong benchmark) I can no
longer control the behavior and I typically see 100% CPU utilization,
even when the benchmark is sending large (e.g., 1, 2, 4, 8 MB) messages.
I have seen this behavior with the Gen2 InfiniBand device.
In MVAPICH-0.9.9 blocking mode progress (VIADEV_USE_BLOCKING) is
documented to be conditional, yielding CPU only if there are no more
incoming messages. I have refined this behavior by setting
VIADEV_MAX_SPIN_COUNT (=1) to achieve my goal of blocking mode progress
under all circumstances.
Is there a similar spin count mechanism availabe in MVAPICH2-1.0 that I
would need for iWARP? I cannot find one in the user guide. There is an
MV2_SPIN_COUNT variable in the source code but I have not been
successful while trying to use it. The reference is in
src/mpid/osu_ch3/channels/mrail/src/gen2/ibv_param.c.
Thank you,
-Ken
More information about the mvapich-discuss
mailing list