Re: [Boost-mpi] non blocking collectives

2016-10-30 Thread alainm


Hi,

For those interested, there is a branch called nonblockglob with a first 
draft and test of ibroadcast.
Most of the work involved redesigning the request/handler code. It is 
not as clean as I'd like yet but you can get the idea.

There is a ibroacast_test which seems to be ok...

Cheers,

Alain

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-27 Thread alainm

Hi,

As for the non blocking collective, there is some work in progress in 
the 'request' branch.
I am simplifying the request architecture as most of the non blocking 
API will be based on it.
Basically, I am implementing a system where each type of request is 
handled by it's specific, dedicated, small handler.


Cheer

Alain

On 21/10/2016 10:11, Lorenz Hübschle-Schneider wrote:

Hi, Alain,

On 20/10/16 16:15, alainm wrote:
There is a branch call globopt with your implementation, if you'd 
like to have a

look at it.
testing looks ok.


cool! I'm not currently working on any MPI projects, so I can't really 
test it in-depth, but it seems to work fine with some of my old 
projects (which have quite a bunch of assertions), too. But I guess 
that's not surprising given that I used my version of that code before :)



I'm looking if there are other places where we could use the same idea.


I have a somewhat hacky thing that also forgoes serialization under 
some circumstances (and thus isn't generally safe) in

> https://github.com/lorenzhs/unsafe_mpi
but the *_serialize methods should be safe. I implemented them for 
gatherv and allgatherv, due to the issues with archive sizes you 
mentioned I skipped (all-)gather without the v.


Cheers,
Lorenz
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--
Alain Miniussi
Pole Génie Logiciel Scientifique
Observatoire de la Côte d'Azur
Blv de l'Observatoire, Nice

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-21 Thread Lorenz Hübschle-Schneider

Hi, Alain,

On 20/10/16 16:15, alainm wrote:

There is a branch call globopt with your implementation, if you'd like to have a
look at it.
testing looks ok.


cool! I'm not currently working on any MPI projects, so I can't really test it 
in-depth, but it seems to work fine with some of my old projects (which have 
quite a bunch of assertions), too. But I guess that's not surprising given that 
I used my version of that code before :)



I'm looking if there are other places where we could use the same idea.


I have a somewhat hacky thing that also forgoes serialization under some 
circumstances (and thus isn't generally safe) in

> https://github.com/lorenzhs/unsafe_mpi
but the *_serialize methods should be safe. I implemented them for gatherv and 
allgatherv, due to the issues with archive sizes you mentioned I skipped 
(all-)gather without the v.


Cheers,
Lorenz
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-20 Thread alainm
I just did gather in the same spirit, the slight difference is that the 
size of the archive are not homogeneous.

So, although it is called gather, it is implemented through MPI_Gatherv.

Which raises another issue, it is likely that the same interface could 
serve the "v" version of the function, thus simplifying the API. We only 
need to communicate the numbers of array slots along with the size of 
the archives.


Cheers


On 20/10/2016 09:17, Lorenz Hübschle-Schneider wrote:

Hi everyone,

On 19/10/16 10:00, alainm wrote:
b) Not so trivial calls need to go though serialization, and 
manipulate the

archive using  point to point communication


I don't understand why archives would need to be communicated using 
point-to-point communication. I've posted this before with no 
response, but under which circumstances would something like

https://gist.github.com/lorenzhs/79dab54552fd1f9381da

fail?

Cheers,
Lorenz
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--
Alain Miniussi
Pole Génie Logiciel Scientifique
Observatoire de la Côte d'Azur
Blv de l'Observatoire, Nice

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-20 Thread alainm

Hi Lorenz,

There is a branch call globopt with your implementation, if you'd like 
to have a look at it.

testing looks ok.
I'm looking if there are other places where we could use the same idea.

Cheers

Alain

On 20/10/2016 10:40, alainm wrote:


Well, since the required buffer will have the same size on every 
process, this is a very good question indeed.

I just trusted the comments on that one.
I'll have a closer look shortly (or maybe someone with better 
knowledge can answer that one) but you're right, we can probably get 
rid of point to point on that one.
The only draw back I can think of is that the communication of the 
size will act as a barrier. Not sure if this is a real world problem 
though.


Cheers

Alain


On 20/10/2016 09:17, Lorenz Hübschle-Schneider wrote:

Hi everyone,

On 19/10/16 10:00, alainm wrote:
b) Not so trivial calls need to go though serialization, and 
manipulate the

archive using  point to point communication


I don't understand why archives would need to be communicated using 
point-to-point communication. I've posted this before with no 
response, but under which circumstances would something like

https://gist.github.com/lorenzhs/79dab54552fd1f9381da

fail?

Cheers,
Lorenz
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--
Alain Miniussi
Pole Génie Logiciel Scientifique
Observatoire de la Côte d'Azur
Blv de l'Observatoire, Nice

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-20 Thread alainm


Well, since the required buffer will have the same size on every 
process, this is a very good question indeed.

I just trusted the comments on that one.
I'll have a closer look shortly (or maybe someone with better knowledge 
can answer that one) but you're right, we can probably get rid of point 
to point on that one.
The only draw back I can think of is that the communication of the size 
will act as a barrier. Not sure if this is a real world problem though.


Cheers

Alain


On 20/10/2016 09:17, Lorenz Hübschle-Schneider wrote:

Hi everyone,

On 19/10/16 10:00, alainm wrote:
b) Not so trivial calls need to go though serialization, and 
manipulate the

archive using  point to point communication


I don't understand why archives would need to be communicated using 
point-to-point communication. I've posted this before with no 
response, but under which circumstances would something like

https://gist.github.com/lorenzhs/79dab54552fd1f9381da

fail?

Cheers,
Lorenz
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-20 Thread Lorenz Hübschle-Schneider

Hi everyone,

On 19/10/16 10:00, alainm wrote:

b) Not so trivial calls need to go though serialization, and manipulate the
archive using  point to point communication


I don't understand why archives would need to be communicated using 
point-to-point communication. I've posted this before with no response, but 
under which circumstances would something like

https://gist.github.com/lorenzhs/79dab54552fd1f9381da

fail?

Cheers,
Lorenz
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-19 Thread alainm


Hi,

Just a few thoughts.

Boost.MPI mapping of MPI could be splitted in two categories, especially 
for collectives.
a) the "trivial" calls (the one with MPI dataypes), on simple type, are 
directly mapped to it MPI API counter part.
b) Not so trivial calls need to go though serialization, and manipulate 
the archive using  point to point communication (sometime, the size need 
to be communicated first, then the data).


Adapting that to non blocking means delegating to MPI_IBcast for a) and 
to non blocking point to point for b. Now, for case b, the surrent 
implementation already uses non blocking point to point, but wait for 
the completion of all requests before returning. I guess the async 
version will need to offer a kind of request compound object that offer 
a single API to handle both cases.


Regards


On 19/10/2016 08:10, MM wrote:

On 17 October 2016 at 14:48, alainm  wrote:

MPI3 is not covered yet. It will probably be done at some points.

Regards

Alain


I'll have a go at implementing ibroadcast based off the broadcast()
implementations

Thanks
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--
Alain Miniussi
Pole Génie Logiciel Scientifique
Observatoire de la Côte d'Azur
Blv de l'Observatoire, Nice

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-18 Thread MM
On 17 October 2016 at 14:48, alainm  wrote:
>
> MPI3 is not covered yet. It will probably be done at some points.
>
> Regards
>
> Alain
>
I'll have a go at implementing ibroadcast based off the broadcast()
implementations

Thanks
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


Re: [Boost-mpi] non blocking collectives

2016-10-17 Thread alainm


MPI3 is not covered yet. It will probably be done at some points.

Regards

Alain

On 16/10/2016 23:44, MM wrote:

Are there already non blocking collectives or are there any plans to
implement them?

THanks
___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi


--
Alain Miniussi
Pole Génie Logiciel Scientifique
Observatoire de la Côte d'Azur
Blv de l'Observatoire, Nice

___
Boost-mpi mailing list
Boost-mpi@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi