Ticket #622 (new bug)

Opened 5 months ago

Last modified 4 months ago

Intel/ANL MPI test suite release

Reported by: Brian Smith <smithbr@…> Owned by: balaji
Priority: major Milestone: future
Component: imts Keywords:
Cc: jratt@…, blocksom@…

Description

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

part0001.html (2.5 KB) - added by Brian Smith 5 months ago.
Added by email2trac
part0001.2.html (6.5 KB) - added by Brian Smith 5 months ago.
Added by email2trac
part0001.3.html (2.8 KB) - added by Brian Smith 4 months ago.
Added by email2trac

Change History

Changed 5 months ago by Brian Smith

Added by email2trac

Changed 5 months ago by Brian Smith

  • id set to 622

This message has 1 attachment(s)

Changed 5 months 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 5 months ago by Brian Smith

Added by email2trac

Changed 5 months 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_err5 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
>

Changed 4 months ago by thakur

  • owner set to thakur
  • milestone set to mpich2-1.1.1

Changed 4 months 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_err5 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

Changed 4 months 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

Changed 4 months ago by thakur

  • status changed from new to closed
  • resolution set to invalid

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

Changed 4 months ago by Brian Smith

Added by email2trac

Changed 4 months 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
>

Changed 4 months ago by balaji

  • status changed from closed to reopened
  • resolution invalid deleted
  • 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.

Changed 4 months ago by balaji

  • owner changed from thakur to balaji
  • status changed from reopened to new
  • component changed from mpich2 to imts
  • milestone changed from mpich2-1.1.1 to future

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

WARNING! You need to either login using OpenID here or enter your email address here before you can create or edit tickets. Otherwise the ticket will get treated as spam. More information on creating tickets can be found here.

Don't forget to add your email address to the cc list to make sure that you get updated of the ticket status.

Add/Change #622 (Intel/ANL MPI test suite release)

Author



Change Properties
Action
as new
 
Note: See TracTickets for help on using tickets.