> 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
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.