Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] MPI_Comm_split
From: Hicham Mouline (hicham_at_[hidden])
Date: 2010-11-23 15:56:17


> -----Original Message-----
> From: users-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]] On
> Behalf Of Bill Rankin
> Sent: 23 November 2010 19:32
> To: Open MPI Users
> Subject: Re: [OMPI users] MPI_Comm_split
>
> Hicham:
>
> > If I have a 256 mpi processes in 1 communicator, am I able to split
> > that communicator, then again split the resulting 2 subgroups, then
> > again the resulting 4 subgroups and so on, until potentially having
> 256
> > subgroups?
>
> You can. But as the old saying goes: "just because you *can* do
> something doesn't necessarily mean you *should* do it." :-)
>
> What is your intent in creating all these communicators?
>
> > Is this insane in terms of performance?
>
> Well, how much "real" work are you doing? Operations on communicators
> are collectives, so they are expensive. However if you do this only
> once at the beginning of something like a three-week long simulation
> run then you probably won't notice the impact.
>
>
> In any case, I suspect there is a better way.
>
> -bill

I have need for a parallel parameter sweep. I have arguments x0 to x9 say of
a function.
I need to evaluate this function for every acceptable combination of
x0,...x9.
This list of acceptable combinations forms what I can view as a tree:
. under the root node, all possible values of x0 (say there are 10 of them
x0_0 to x0_9)
. under each of these nodes, all possible values of x1 that agree with the
args defined so far, for .e.g
if x1_0 is not possible with x0_0, then it's not part of the tree...
. and so on until reaching the leaf nodes. At those nodes, I evaluate the
function and I want the global maximum and/or minimum.

the order of magnitude is 128 for the depth of the tree, and 100 possible
values for each x.
each eval takes a couple of ms though.

I thought this facility of splitting communicators maps nicely the nature of
my problem.

what do you think?
I'm actually not exactly sure how I'm gonna do it, but wished to have an
opinion about whether it's just crazy

rds,