Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Calculate time spent on non blocking communication?
From: Gustavo Correa (gus_at_[hidden])
Date: 2011-02-02 19:16:47


On Feb 2, 2011, at 7:35 AM, Bibrak Qamar wrote:

> Gus Correa, But it will include the time of computation which took place before waitAll( ).
>
Correct.
Now I realize you want the communication time only,
not the overall time.

Even to define precisely what this means may be a bit tricky.
I guess Eugene Loh was hinting this difficulty.

Is it the time MPI_Isend takes to return?
It returns as soon as the send is posted, I think,
but this doesn't mean that the message was received at the other end,
or that you are free to use the send buffer either.
You could do it with
start=MPI_Wtime()
call MPI_Isend(...)
end=MPI_Wtime()
but this may not be very useful.

Is it the time until MPI_[I]recv returns?
Well, that one could be measured the way I suggested,
but it will probably contain also time used to compute.

Is it something else, perhaps?

My guess is that it may be hard to nail down communication time alone,
particularly in non-blocking case,
at least if you try to get it only with MPI calls.
Non-blocking is really designed to overlap communication and computation,
not to separate them.
Also, I guess MPI itself doesn't give user access to the details of *how* it
provides communication, timing information included.
However, OpenMPI may give this info, with non-MPI (hence non-portable) functions, I'd guess.

Have you tried inserting MPI_Test calls as Jeff suggested?
(Perhaps along with MPI_Wtime)

Maybe there is more timing information available outside MPI,
at another OpenMPI internal level.
Perhaps this is accessible from within the program, via non-MPI calls,
but I don't really know.
Maybe the OpenMPI developers have a hint.
Have you read Eugene Loh's suggestions?

Now I am asking more questions than answering anything. :)

Gus Correa
>
> Date: Tue, 1 Feb 2011 10:09:03 +0400
> From: Bibrak Qamar <bibrakc_at_[hidden]>
> Subject: [OMPI users] Calculate time spent on non blocking
> communication?
> To: users_at_[hidden]
> Message-ID:
> <AANLkTinewz_xYx88PgouojvogAF6Ld8NwF_nCHsY0rf6_at_[hidden]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Hello All,
>
> I am using non-blocking send and receive, and i want to calculate the time
> it took for the communication. Is there any method or a way to do this using
> openmpi.
>
> Thanks
> Bibrak Qamar
> Undergraduate Student BIT-9
> Member Center for High Performance Scientific Computing
> NUST-School of Electrical Engineering and Computer Science.
> -------------- next part --------------
> HTML attachment scrubbed and removed
>
> ------------------------------
>
> Message: 4
> Date: Mon, 31 Jan 2011 22:14:53 -0800
> From: Eugene Loh <eugene.loh_at_[hidden]>
> Subject: Re: [OMPI users] Calculate time spent on non blocking
> communication?
> To: Open MPI Users <users_at_[hidden]>
> Message-ID: <4D47A4DD.5010106_at_[hidden]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Bibrak Qamar wrote:
>
> > Hello All,
> >
> > I am using non-blocking send and receive, and i want to calculate the
> > time it took for the communication. Is there any method or a way to do
> > this using openmpi.
>
> You probably have to start by defining what you mean by "the time it
> took for the communication". Anyhow, the Peruse instrumentation in OMPI
> might help.
>
>
> ------------------------------
>
> Message: 5
> Date: Tue, 1 Feb 2011 01:20:36 -0500
> From: Gustavo Correa <gus_at_[hidden]>
> Subject: Re: [OMPI users] Calculate time spent on non blocking
> communication?
> To: Open MPI Users <users_at_[hidden]>
> Message-ID: <8F16054C-6FCA-4E65-9C83-5EFBFCB18DB7_at_[hidden]
> >
> Content-Type: text/plain; charset=us-ascii
>
>
> On Feb 1, 2011, at 1:09 AM, Bibrak Qamar wrote:
>
>
>
>
> > Hello All,
> >
> > I am using non-blocking send and receive, and i want to calculate the time it took for the communication. Is there any method or a way to do this using openmpi.
> >
> > Thanks
> > Bibrak Qamar
> > Undergraduate Student BIT-9
> > Member Center for High Performance Scientific Computing
> > NUST-School of Electrical Engineering and Computer Science.
> > _______________________________________________
>
> About the same as with blocking communication, I guess.
>
> Would this do work for you?
>
> start=MPI_Wtime()
> MPI_Isend(...)
> ...
> MPI_Irecv(...)
> ...
> MPI_Wait[all](...)
> end=MPI_Wtime()
> print *, 'walltime = ', end-start
>
> My two cents,
> Gus Correa
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users