Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] tool for measuring the ping with accuracy
From: George Markomanolis (george_at_[hidden])
Date: 2010-11-21 18:29:34


Dear Eugene,

Thanks a lot for the answer you were right for the eager mode.

I have one more question. I am looking for an official tool to measure
the ping time, just sending a message of 1 byte or more and measure the
duration of the MPI_Send command on the rank 0 and the duration of the
MPI_Recv on rank 1. I would like to know any formal tool because I am
using also SkaMPI and the results really depend on the call of the
synchronization before the measurement starts.

So for example with synchronizing the processors, sending 1 byte, I have:
rank 0, MPI_Send: ~7 ms
rank 1, MPI_Recv: ~52 ms

where 52 ms is almost the half of the ping-pong and this is ok.

Without synchronizing I have:
rank 0, MPI_Send: ~7 ms
rank 1, MPI_Recv: ~7 ms

However I developed a simple application where the rank 0 sends 1000
messages of 1 byte to rank 1 and I have almost the second timings with
the 7 ms. If in the same application I add the MPI_Recv and MPI_Send
respectively in order to have a ping-pong application then the ping-pong
duration is 100ms (like SkaMPI). Can someone explain me why is this
happening? The ping-pong takes 100 ms and the ping without
synchronization takes 7 ms.

Thanks a lot,
Best regards,
George Markomanolis

> Message: 1
> Date: Thu, 18 Nov 2010 10:31:40 -0800
> From: Eugene Loh <eugene.loh_at_[hidden]>
> Subject: Re: [OMPI users] Making MPI_Send to behave as blocking for
> all the sizes of the messages
> To: Open MPI Users <users_at_[hidden]>
> Message-ID: <4CE5710C.8030709_at_[hidden]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Try lowering the eager threshold more gradually... e.g., 4K, 2K, 1K,
> 512, etc. -- and watch what happens. I think you will see what you
> expect, except once you get too small then the value is ignored
> entirely. So, the setting just won't work at the extreme value (0) you
> want.
>
> Maybe the thing to do is convert your MPI_Send calls to MPI_Ssend
> calls. Or, compile in a wrapper that intercepts MPI_Send calls and
> implements them by calling PMPI_Ssend.
>
> George Markomanolis wrote:
>
>
>> Dear all,
>>
>> I am trying to disable the eager mode in OpenMPI 1.3.3 and I don't see
>> a real difference between the timings.
>> I would like to execute a ping (rank 0 sends a message to rank 1) and
>> to measure the duration of the MPI_Send on rank 0 and the duration of
>> MPI_Recv on rank 1. I have the following results.
>>
>> Without changing the eager mode:
>>
>> bytes MPI_Send (in msec) MPI_Recv (in msec)
>> 1 5.8 52.2
>> 2 5.6 51.0
>> 4 5.4 51.1
>> 8 5.6 51.6
>> 16 5.5 49.7
>> 32 5.4 52.1
>> 64 5.3 53.3
>>
>>
>>
>> with disabled the eager mode:
>>
>> ompi_info --param btl tcp | grep eager
>> MCA btl: parameter "btl_tcp_eager_limit" (current value: "0", data
>> source: environment)
>>
>> bytes MPI_Send (in msec) MPI_Recv (in msec)
>> 1 5.4 52.3
>> 2 5.4 51.0
>> 4 5.4 52.1
>> 8 5.4 50.7
>> 16 5.0 50.2
>> 32 5.1 50.1
>> 64 5.4 52.8
>>
>> However I was expecting that with disabled the eager mode the duration
>> of MPI_Send should be longer. Am I wrong? Is there any option for
>> making the MPI_Send to behave like blocking command for all the sizes
>> of the messages?
>>
>>
>> Thanks a lot,
>> Best regards,
>> George Markomanolis
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>