[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