[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1rc4-2-ge7cef01

Service Account noreply at mpich.org
Wed Feb 19 10:35:21 CST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  e7cef017d770711afd152c3899602c9d58a5c392 (commit)
       via  f3f022b4243df40a038835990568125be41a9b29 (commit)
      from  09b425c7ffd1767db5e5f942fa4294ad5d5a1d17 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/e7cef017d770711afd152c3899602c9d58a5c392

commit e7cef017d770711afd152c3899602c9d58a5c392
Author: Pavan Balaji <balaji at mcs.anl.gov>
Date:   Wed Feb 19 00:34:08 2014 -0600

    Better control virtual function ordering.
    
    Allow some virtual functions to be placed at the end, so it matches
    the layout of the Intel MPI header.  This should make our output file
    nearly identical to that of Intel MPI.  All virtual functions should
    be exactly ordered.
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/src/binding/cxx/buildiface b/src/binding/cxx/buildiface
index 88ee212..5fa6310 100755
--- a/src/binding/cxx/buildiface
+++ b/src/binding/cxx/buildiface
@@ -84,7 +84,7 @@ $indent = "    ";
 $print_line_len = 0;
 $gDebug = 0;
 $gDebugRoutine = "NONE";
- at mpilevels = ( 'mpi1' , 'mpi2' );
+ at mpilevels = ( 'mpi1' , 'mpi2', 'post' );
 # feature variables (for the -feature commandline option)
 $do_subdecls = 1;
 
@@ -457,12 +457,13 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
 		    'Delete_attr' => '0',
 #		    'Create_keyval' => 'int',
 		    'Free_keyval' =>  'static:0:1',
-		    'Call_errhandler' => '0',
 		    'Set_name' => '0:2',
 		    'Get_name' => '0:3',
 		    'Disconnect' => '0',
 		    'Get_parent' => 'static:0;Intercomm',
 		   );
+%class_postcomm = ( 'Call_errhandler' => '0',
+                   );
 %class_mpi2cart = ();
 %class_mpi2dtype = ( 'Set_name' => '0:2', 
 		     'Get_name' => '0:3',
@@ -585,7 +586,8 @@ if ($build_io) {
 		   'Sync' => '0',
 		   'Get_errhandler' => 'MPI_Errhandler',
 		   'Set_errhandler' => '0',
- 		   'Call_errhandler' => '0',
+		   );
+    %class_postfile = ( 'Call_errhandler' => '0',
 		   );		
 #     %class_mpi2file = ( 
 # 		   'File_open' => 'static:MPI_File:2',
@@ -649,7 +651,6 @@ if ($build_io) {
 		    'Free' => '0',
 		    'Fence' => '0', 
 		    'Get_group' => 'MPI_Group',
-		    'Call_errhandler' => 0,
 		    'Get_attr' => '0',
 		    'Start' => '0',
 		    'Complete' => '0',
@@ -665,6 +666,8 @@ if ($build_io) {
 		    'Delete_attr' => '0',
 		    'Free_keyval' =>  'static:0:1',
 		    );
+%class_postwin = ( 'Call_errhandler' => 0,
+		    );
 %class_mpi2info = ( 'Create' => 'static:1',
 		    'Set' => '0:2:3',
 		    'Delete' => '0:2',
@@ -1228,6 +1231,7 @@ print $OUTFD "extern     File FILE_NULL;\n";
 
 # Build the routines by class
 foreach $class (@classes) {
+    my $printed_extra_fnc = 0;
     $shortclass = $class;
     $Class = $fullclassname{$class};
     #$mpi_type = $class_type{$class};
@@ -1253,6 +1257,14 @@ typedef int MPI_File;\
     }
 
     foreach $mpilevel (@mpilevels) {
+	if ($mpilevel eq "post") {
+	    $printed_extra_fnc = 1;
+	    if (defined($class_extra_fnc{$class})) {
+		$extrafnc = $class_extra_fnc{$class};
+		&$extrafnc( $OUTFD );
+	    }
+	}
+
         $mpiclass = "$mpilevel$class";
         $class_hash = "class_$mpiclass";
 	@routines = keys(%$class_hash);
@@ -1286,7 +1298,7 @@ typedef int MPI_File;\
 	    close (FD);
 	}
     }
-    if (defined($class_extra_fnc{$class})) {
+    if (defined($class_extra_fnc{$class}) && !$printed_extra_fnc) {
 	$extrafnc = $class_extra_fnc{$class};
 	&$extrafnc( $OUTFD );
     }
@@ -5016,8 +5028,14 @@ sub ReadFuncSpec {
 	}
 	# Handle special cases
 	if (/<(\w*)>/) {
+	    my $match = 0;
 	    $mpilevel = $1;
-	    if ($mpilevel ne "mpi1" && $mpilevel ne "mpi2") {
+	    foreach $level (@mpilevels) {
+		if ($mpilevel eq $level) {
+		    $match = 1;
+		}
+	    }
+	    if (!$match) {
 		print STDERR "Unrecognized MPI level $mpilevel\n";
 	    }
 	    next;
diff --git a/src/binding/cxx/cxx.vlist b/src/binding/cxx/cxx.vlist
index 191c85d..0785455 100644
--- a/src/binding/cxx/cxx.vlist
+++ b/src/binding/cxx/cxx.vlist
@@ -170,6 +170,8 @@
 	"Scatterv",
 	"Get_name",
 	"Allgatherv",
+);
+ at routinespostcomm = (
 	"Call_errhandler",
 	"Reduce_scatter_block",
 );
@@ -257,6 +259,8 @@
 	"Write_ordered_end",
 	"Write",
 	"Get_atomicity",
+);
+ at routinespostfile = (
 	"Call_errhandler",
 );
 @routinesmpi2greq = (
@@ -315,5 +319,7 @@
 	"Lock",
 	"Get_errhandler",
 	"Get_name",
+);
+ at routinespostwin = (
 	"Call_errhandler",
 );
diff --git a/src/binding/cxx/cxxdecl3.dat b/src/binding/cxx/cxxdecl3.dat
index 845a6ce..9cbf2f9 100644
--- a/src/binding/cxx/cxxdecl3.dat
+++ b/src/binding/cxx/cxxdecl3.dat
@@ -2,6 +2,8 @@
 # by using the perl script cxxtodecl.  However, that script cannot
 # handle every feature of the bindings, so the final changes 
 # were made by hand.
+<post>
+comm-Reduce_scatter_block void (in:const , , ,in:constref:Datatype ,in:constref:Op, ) const
 <mpi2>
 -Alloc_mem  void* ( ,in:constref:Info ,return)
 dtype-Create_darray Datatype (, , ,in:const ,in:const ,in:const ,in:const , , ,return) const
@@ -73,7 +75,6 @@ comm-Gather void (in:const , ,in:constref:Datatype , , ,in:constref:Datatype , )
 comm-Gatherv void (in:const , ,in:constref:Datatype , ,in:const ,in:const ,in:constref:Datatype , ) const
 comm-Reduce void (in:const , , ,in:constref:Datatype ,in:constref:Op , ) const
 comm-Reduce_scatter void (in:const , , ,in:constref:Datatype ,in:constref:Op, ) const
-comm-Reduce_scatter_block void (in:const , , ,in:constref:Datatype ,in:constref:Op, ) const
 comm-Scatter void (in:const , ,in:constref:Datatype , , ,in:constref:Datatype , ) const
 comm-Scatterv void (in:const ,in:const ,in:const ,in:constref:Datatype , , ,in:constref:Datatype , ) const
 # FIXME: this entry confuses buildiface, which groups it with

http://git.mpich.org/mpich.git/commitdiff/f3f022b4243df40a038835990568125be41a9b29

commit f3f022b4243df40a038835990568125be41a9b29
Author: Pavan Balaji <balaji at mcs.anl.gov>
Date:   Tue Feb 18 14:11:27 2014 -0600

    Reorder C++ virtual functions to match Intel MPI.
    
    This patch breaks ABI compatibility between this and older versions of
    MPICH, but is needed to get MPICH closer to the ABI compatibility
    initiative with Intel, IBM and Cray.
    
    This patch does not make the resultant mpicxx.h exactly the same as
    what Intel MPI ships, but most of the publicly exposed virtual
    functions should be in order.  The remaining functions that are
    out-of-order are Reduce_scatter_block and Call_errhandler for
    communicators, which are placed after the internal Clone function.
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/src/binding/cxx/cxx.vlist b/src/binding/cxx/cxx.vlist
index 1d436d3..191c85d 100644
--- a/src/binding/cxx/cxx.vlist
+++ b/src/binding/cxx/cxx.vlist
@@ -147,7 +147,6 @@
 	"Is_thread_main",
 );
 @routinesmpi2comm = (
-	"Reduce_scatter_block",
 	"Gatherv",
 	"Disconnect",
 	"Allreduce",
@@ -163,7 +162,6 @@
 	"Alltoallv",
 	"Reduce_scatter",
 	"Scatter",
-	"Call_errhandler",
 	"Gather",
 	"Free_keyval",
 	"Reduce",
@@ -172,6 +170,8 @@
 	"Scatterv",
 	"Get_name",
 	"Allgatherv",
+	"Call_errhandler",
+	"Reduce_scatter_block",
 );
 @routinesmpi2distgraph = (
 	"Get_dist_neighbors",
@@ -226,7 +226,6 @@
 	"Write_shared",
 	"Iwrite_at",
 	"Get_view",
-	"Call_errhandler",
 	"Write_all_begin",
 	"Read_all_end",
 	"Get_byte_offset",
@@ -258,6 +257,7 @@
 	"Write_ordered_end",
 	"Write",
 	"Get_atomicity",
+	"Call_errhandler",
 );
 @routinesmpi2greq = (
 	"Complete",
@@ -308,7 +308,6 @@
 	"Set_name",
 	"Accumulate",
 	"Create",
-	"Call_errhandler",
 	"Free_keyval",
 	"Post",
 	"Unlock",
@@ -316,4 +315,5 @@
 	"Lock",
 	"Get_errhandler",
 	"Get_name",
+	"Call_errhandler",
 );

-----------------------------------------------------------------------

Summary of changes:
 src/binding/cxx/buildiface   |   30 ++++++++++++++++++++++++------
 src/binding/cxx/cxx.vlist    |   14 ++++++++++----
 src/binding/cxx/cxxdecl3.dat |    3 ++-
 3 files changed, 36 insertions(+), 11 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list