Opened 8 years ago

Last modified 2 years ago

#622 new bug

Intel/ANL MPI test suite release

Reported by: Brian Smith <smithbr@…> Owned by:
Priority: major Milestone: future
Component: imts Keywords:
Cc: michael.blocksome@…

Description (last modified by balaji)

Hi guys, just picking off some failures in the IntelANL MPI test suite
(2006) against MPICH2 1.1. It appears that all the failures are MPI 2.1 vs
MPI 2.0 changes.

However (and this might be a forum question, but I figured I'd ask here
anyway), it appears there might either be an ambiguity in MPI_Cart_map and
MPI_Graph_create, or the MPICH2 code is "ahead" of the standard as I read
it.

Basically, this test:

num_dims = 0;
MPI_Cart_create(MPI_COMM_WORLD, num_dims, dim_size, periods, reorder,
&comm_cart);

"fails" since it is expecting the MPI 2.0 behavior where num_dims = 0 was
un(under?)defined. In MPI 2.1, we updated the description with "If ndims
is zero, then a zero-dimensional Cartesian topology is created", so I'm
happy marking this as an invalid test.

However, this test:
num_dims = 0;
MPI_Cart_map(comm_cart, num_dims, dim_size, periods, &newrank);

also "fails" since it doesn't report an error. I don't see any comments in
the 2.1 standard or 2.2 issues that suggest MPI_Cart_map() changed in the
same way that MPI_Cart_create() did, but it seems logical. So, my question
is, is this correct behavior for MPI_Cart_map() and if so, should we add a
comment in the 2.2 standard (or errata since I believe new tickets are
closed?) that says num_dims=0 is a valid argument?

Finally, the third test that "fails" is doing this:

edges[0] = 0; edges[1] = 3; edges[2] = 0; edges[3] = 3; edges[4] = 0;
edges[5] = 2;
MPI_Graph_create(MPI_COMM_WORLD, nnodes, index, edges, reorder,
&comm_graph)

Again, I don't see any comments on null edges for MPI_Graph_create() in
2.1 or 2.2 tickets. So is this correct behavior?

Thanks.


Brian Smith
BlueGene MPI Development
IBM Rochester
Phone: 507 253 4717
smithbr@us.ibm.com

Attachments (3)

part0001.html (2.5 KB) - added by Brian Smith 8 years ago.
Added by email2trac
part0001.2.html (6.5 KB) - added by Brian Smith 8 years ago.
Added by email2trac
part0001.3.html (2.8 KB) - added by Brian Smith 8 years ago.
Added by email2trac

Download all attachments as: .zip

Change History (15)

Changed 8 years ago by Brian Smith

Added by email2trac

comment:1 Changed 8 years ago by Brian Smith

  • id set to 622

This message has 1 attachment(s)

comment:2 Changed 8 years ago by gropp

Brian,

These are good catches. On MPI_Cart_map, the MPI 2.1 behavior is implicit since page 255, lines 26ff state that MPI_Cart_create may be implemented with MPI_Cart_map. However, this should be made more explicit, so this deserves an errata item to the MPI 2.1 standard.

What are the index values for the Graph_create? I need to see those to understand the graph. (However, edges from a process to itself are permitted (p 247, lines 22-23)).

Note that there isn't anything in the standard that says that these were invalid; this was just the Intel test interpretation. The MPI 2.1 behavior was defined to resolve the ambiguity (is it or isn't it valid).

Changed 8 years ago by Brian Smith

Added by email2trac

comment:3 Changed 8 years ago by Brian Smith

re: MPI_Cart_map/MPI_Cart_create - I missed the connection there in the
standard, though I assumed they were connected. I can submit an errata
suggesting a clarification in MPI_Cart_map.

And, I agree - I didn't see anything in 2.0 that said these tests were
incorrect - they just seemed to be in semi-ambiguous areas and the Intel
suite chose to interpret them as errors. We wouldn't have seen these if
the tests hadn't start "failing" in MPICH2 1.1.

Here's the relevant chunk of code for the MPI_Graph_create() "error". This
is MPI_Graph_create_er[5] in the test suite.

#define  DIMENSIONS      2
#define  TEST_DESC       "MPI_Graph_create with Null Edge"
  int
      index[4],         /* graph cumulative connection count array   */
      edges[6];         /* graph node neighbors list array   */

  num_dims = DIMENSIONS;
   nnodes = 4;

   edges[1] = 3;
   edges[2] = 0;
   edges[3] = 3;
   edges[4] = 0;
   edges[5] = 2;

   index[0] = 2;
   index[1] = 3;
   index[2] = 4;
   index[3] = 6;

   /*-----------------------------  MPI_Graph_create
------------------------*/

   edges[0] = 0;

   reorder = TRUE;

   ierr = MPI_Graph_create(MPI_COMM_WORLD,
            nnodes,
            index,
            edges,
            reorder,
            &comm_graph);
  if (ierr == MPI_SUCCESS) {
      fail++;
      sprintf(info_buf, "%s  did not FAIL", TEST_DESC);
      MPITEST_message(MPITEST_NONFATAL, info_buf);
   }



Thanks.


Brian Smith
BlueGene MPI Development
IBM Rochester
Phone: 507 253 4717
smithbr@us.ibm.com




"mpich2" <mpich2-maint@mcs.anl.gov>
Sent by: owner-mpich2-bugs@mcs.anl.gov
05/29/2009 08:19 AM
Please respond to
mpich2-maint@mcs.anl.gov


To
undisclosed-recipients: ;
cc

Subject
Re: [mpich2-maint] #622: MPI_Graph_create with null edges, MPI_Cart_map
with num_dims = 0






----------------------------------------------+-----------------------------
 Reporter:  Brian Smith <smithbr@us.ibm.com>  |        Owner:
     Type:  bug                               |       Status:  new
 Priority:  major                             |    Milestone:
Component:  mpich2                            |   Resolution:
 Keywords:                                    |
----------------------------------------------+-----------------------------


Comment (by gropp):

 Brian,

 These are good catches.  On MPI_Cart_map, the MPI 2.1 behavior is
implicit
 since page 255, lines 26ff state that MPI_Cart_create may be implemented
 with MPI_Cart_map.  However, this should be made more explicit, so this
 deserves an errata item to the MPI 2.1 standard.

 What are the index values for the Graph_create?  I need to see those to
 understand the graph.  (However, edges from a process to itself are
 permitted (p 247, lines 22-23)).

 Note that there isn't anything in the standard that says that these were
 invalid; this was just the Intel test interpretation.  The MPI 2.1
 behavior was defined to resolve the ambiguity (is it or isn't it valid).

--
Ticket URL: <https://trac.mcs.anl.gov/projects/mpich2/ticket/622#comment:2
>

comment:4 Changed 8 years ago by thakur

  • Milestone set to mpich2-1.1.1
  • Owner set to thakur

comment:5 Changed 8 years ago by thakur

Brian,

MPI 2.1 added the sentence "A process is also allowed to be a neighbor to itself (i.e., a self loop in the graph)." on pg 247 ln 22. So the test MPI_Graph_create_er[5] is no longer valid. In fact, we have not been running it since 7/25/08. You can look at what Intel tests we run in the output of our nightly testing results, e.g., http://www.mcs.anl.gov/research/projects/mpich2/nightly/old/runs/IA32-Linux-GNU-mpd-ch3:nemesis-2009-06-30-22-00-testsumm-intel.xml

comment:6 Changed 8 years ago by balaji

We have been maintaining the Intel/ANL MPI test suite for the past few years here: https://svn.mcs.anl.gov/repos/mpi/test_suites/intel/trunk

There have been several fixes for this compared to the 1.0 release version. It's probably time for the 1.1 release for that as well.

-- Pavan

comment:7 Changed 8 years ago by thakur

  • Resolution set to invalid
  • Status changed from new to closed

Just to clarify my earlier comment, all the lines from ln 20-28 on pg 247 were added in MPI 2.1.

Changed 8 years ago by Brian Smith

Added by email2trac

comment:8 Changed 8 years ago by Brian Smith

Can you let us know when there is a new release of the test suite?

Thanks.


Brian Smith
BlueGene MPI Development
IBM Rochester
Phone: 507 253 4717
smithbr@us.ibm.com




"mpich2" <mpich2-maint@mcs.anl.gov>
Sent by: owner-mpich2-bugs@mcs.anl.gov
07/01/2009 03:33 PM
Please respond to
mpich2-maint@mcs.anl.gov


To
undisclosed-recipients: ;
cc

Subject
Re: [mpich2-maint] #622: MPI_Graph_create with null edges, MPI_Cart_map
with num_dims = 0






----------------------------------------------+-----------------------------
 Reporter:  Brian Smith <smithbr@us.ibm.com>  |        Owner:  thakur
     Type:  bug                               |       Status:  new
 Priority:  major                             |    Milestone: mpich2-1.1.1
Component:  mpich2                            |   Resolution:
 Keywords:                                    |
----------------------------------------------+-----------------------------


Comment (by balaji):

 We have been maintaining the Intel/ANL MPI test suite for the past few
 years here: https://svn.mcs.anl.gov/repos/mpi/test_suites/intel/trunk

 There have been several fixes for this compared to the 1.0 release
 version. It's probably time for the 1.1 release for that as well.

  -- Pavan

--
Ticket URL: <https://trac.mcs.anl.gov/projects/mpich2/ticket/622#comment:6
>

comment:9 Changed 8 years ago by balaji

  • Resolution invalid deleted
  • Status changed from closed to reopened
  • Summary changed from MPI_Graph_create with null edges, MPI_Cart_map with num_dims = 0 to Intel/ANL MPI test suite release

Nothing is planned right now for the Intel/ANL test suite release. Currently, we are all busy with the mpich2-1.1.1 release. We will draft up a release plan for the test suite once that's done. Can you use the svn version in the meanwhile?

I'm changing the title of this ticket and reopening it.

comment:10 Changed 8 years ago by balaji

  • Component changed from mpich2 to imts
  • Milestone changed from mpich2-1.1.1 to future
  • Owner changed from thakur to balaji
  • Status changed from reopened to new

This is not a 1.1.1 release ticket. Moving this to future (since trac only tracks MPICH2's releases, and not those of the Intel/ANL test suite).

comment:11 Changed 4 years ago by balaji

  • Description modified (diff)
  • Owner balaji deleted

comment:12 Changed 2 years ago by blocksom

  • Cc michael.blocksome@… added; jratt@…, blocksom@… removed

Maybe this crusty old ticket can be safely deleted?

Note: See TracTickets for help on using tickets.