Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

From: Bert Wesarg (wesarg_at_[hidden])
Date: 2006-05-03 09:58:47


Hello list,

i get some erroneous results from calls to MPI_Comm_split with an
intercommunicator as communicator.

this is a brokendown testcase, the source is attached:

test_split.c:

mpi_comm_spwan(world, "test_split_client", 1, &inter)
for i=1:np
  if rank < i
    mpi_comm_split(inter, 0, 0, &inter2)
    /* print new rank and size */
    mpi_comm_free(&inter2)
  else
    mpi_comm_split(inter, MPI_UNDEFINED, 0, &inter2)

test_split_client.c:

mpi_comm_get_parent(&inter)
while true
  mpi_comm_split(inter, 0, 0, &inter2)
  /* print new remote size */
  mpi_comm_free(&inter2)
mpi_comm_free(&inter)

first, my expected results:
np = 2:

        test_split:0 test_split:1 test_split_client:0
i = 1:
        new rank = 0 new remote size = 1
        new size = 1

i = 2:
        new rank = 0 new rank = 1 new remote size = 2
        new size = 2 new size = 2
...

now some actually results:
a)
        test_split:0 test_split:1 test_split_client:0
i = 1:
        new rank = 0 new remote size = 1
        new size = 2

i = 2:
        new rank = 0 new rank = 1 new remote size = 2
        new size = 2 new size = 2

b)
        test_split:0 test_split:1 test_split_client:0
i = 1:
        new rank = 0 new remote size = 1
        new size = 1

i = 2:
        new rank = 0 new rank = 1 new remote size = 2
        new size = 1 new size = 2

c)
        test_split:0 test_split:1 test_split_client:0
i = 1:
        new rank = 0 new remote size = 1
        new size = 2

i = 2:
        new rank = 0 new rank = 1 new remote size = 2
        new size = 1 new size = 2

something with the new size in rank 0 is wrong or the remote size

can someone please pointout if my code is wrong, or something with open-mpi?

greatings
bert wesarg

ps: these test were run on an dual smp machine and open-mpi 1.0.2
pps: i attached also an split test with intracommunicators, these results
are all expected