commits
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 2054 discussions
[mpich] MPICH primary repository branch, master, updated. v3.0.4-256-g6a68809
by noreply@mpich.org 05 Jun '13
by noreply@mpich.org 05 Jun '13
05 Jun '13
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 6a688097dfbf3d1af2a50b605ed7aee97a6fa363 (commit)
via bdf6294fff07280d9d9480fd9fb5181902783a56 (commit)
from 1bbe0ba39a5c2486b9b73a17e8314d8039b5f92b (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/6a688097dfbf3d1af2a50b605ed7aee97…
commit 6a688097dfbf3d1af2a50b605ed7aee97a6fa363
Author: William Gropp <wgropp(a)illinois.edu>
Date: Wed Jun 5 08:18:59 2013 -0500
Turned off the error reporting since that causes autogen.sh to abort.
This must be re-enabled once the errors in the error calls are fixed.
diff --git a/maint/extracterrmsgs b/maint/extracterrmsgs
index c1391ac..1015c43 100755
--- a/maint/extracterrmsgs
+++ b/maint/extracterrmsgs
@@ -22,6 +22,9 @@ $carefulFilename = "";
$showfiles = 0;
$quiet = 0;
$build_test_pgm = 1;
+# FIXME: checkErrClass should be set to 1; currently set to zero
+# to permit autogen.sh to complete
+$checkErrClass = 0;
# Strict is used to control checking of error message strings.
$gStrict = 0;
@@ -720,7 +723,7 @@ sub ProcessFile
}
next;
}
- if ($errClassLoc >= 0) {
+ if ($errClassLoc >= 0 && $checkErrClass) {
if (!($args[$errClassLoc] =~ /^MPI_ERR_/) &&
!($args[$errClassLoc] =~ /^MPIDU_SOCK_ERR_/) &&
!($args[$errClassLoc] =~ /^MPIX_ERR_/) &&
http://git.mpich.org/mpich.git/commitdiff/bdf6294fff07280d9d9480fd9fb518190…
commit bdf6294fff07280d9d9480fd9fb5181902783a56
Author: William Gropp <wgropp(a)illinois.edu>
Date: Fri May 31 22:16:04 2013 +0800
Check that an MPI Error Class is provided where one is required
Discovered this error while fixing an unrelated problem. Note that autogen
will detect that errors were encountered while building the error message
tables and will fail, so the problems discovered by this fix need to be
addressed.
diff --git a/maint/extracterrmsgs b/maint/extracterrmsgs
index a26b741..c1391ac 100755
--- a/maint/extracterrmsgs
+++ b/maint/extracterrmsgs
@@ -629,57 +629,58 @@ sub ProcessFile
# location of __LINE__ (-1 for none)
# specific msg arg required (0 for no, > 0 for yes)
# is the generic message an indirect from errnames.txt (1=yes 0=no)
- %KnownErrRoutines = ( 'MPIR_Err_create_code' => '5:3:1:1',
- 'MPIO_Err_create_code' => '5:3:1:0',
- 'MPIU_ERR_SET' => '2:-1:0:1',
- 'MPIU_ERR_SETSIMPLE' => '2:-1:0:1',
- 'MPIU_ERR_SET1' => '2:-1:1:1',
- 'MPIU_ERR_SET2' => '2:-1:2:1',
- 'MPIU_ERR_SETANDSTMT' => '3:-1:0:1',
- 'MPIU_ERR_SETANDSTMT1' => '3:-1:1:1',
- 'MPIU_ERR_SETANDSTMT2' => '3:-1:1:1',
- 'MPIU_ERR_SETANDSTMT3' => '3:-1:1:1',
- 'MPIU_ERR_SETANDSTMT4' => '3:-1:1:1',
- 'MPIU_ERR_SETANDJUMP' => '2:-1:0:1',
- 'MPIU_ERR_SETANDJUMP1' => '2:-1:1:1',
- 'MPIU_ERR_SETANDJUMP2' => '2:-1:1:1',
- 'MPIU_ERR_SETANDJUMP3' => '2:-1:1:1',
- 'MPIU_ERR_SETANDJUMP4' => '2:-1:1:1',
- 'MPIU_ERR_CHKANDSTMT' => '4:-1:0:1',
- 'MPIU_ERR_CHKANDSTMT1' => '4:-1:1:1',
- 'MPIU_ERR_CHKANDSTMT2' => '4:-1:1:1',
- 'MPIU_ERR_CHKANDSTMT3' => '4:-1:1:1',
- 'MPIU_ERR_CHKANDSTMT4' => '4:-1:1:1',
- 'MPIU_ERR_CHKANDJUMP' => '3:-1:0:1',
- 'MPIU_ERR_CHKANDJUMP1' => '3:-1:1:1',
- 'MPIU_ERR_CHKANDJUMP2' => '3:-1:1:1',
- 'MPIU_ERR_CHKANDJUMP3' => '3:-1:1:1',
- 'MPIU_ERR_CHKANDJUMP4' => '3:-1:1:1',
- 'MPIU_ERR_SETFATAL' => '2:-1:0:1',
- 'MPIU_ERR_SETFATALSIMPLE' => '2:-1:0:1',
- 'MPIU_ERR_SETFATAL1' => '2:-1:1:1',
- 'MPIU_ERR_SETFATAL2' => '2:-1:2:1',
- 'MPIU_ERR_SETFATALANDSTMT' => '3:-1:0:1',
- 'MPIU_ERR_SETFATALANDSTMT1' => '3:-1:1:1',
- 'MPIU_ERR_SETFATALANDSTMT2' => '3:-1:1:1',
- 'MPIU_ERR_SETFATALANDSTMT3' => '3:-1:1:1',
- 'MPIU_ERR_SETFATALANDSTMT4' => '3:-1:1:1',
- 'MPIU_ERR_SETFATALANDJUMP' => '2:-1:0:1',
- 'MPIU_ERR_SETFATALANDJUMP1' => '2:-1:1:1',
- 'MPIU_ERR_SETFATALANDJUMP2' => '2:-1:1:1',
- 'MPIU_ERR_SETFATALANDJUMP3' => '2:-1:1:1',
- 'MPIU_ERR_SETFATALANDJUMP4' => '2:-1:1:1',
- 'MPIU_ERR_CHKFATALANDSTMT' => '4:-1:0:1',
- 'MPIU_ERR_CHKFATALANDSTMT1' => '4:-1:1:1',
- 'MPIU_ERR_CHKFATALANDSTMT2' => '4:-1:1:1',
- 'MPIU_ERR_CHKFATALANDSTMT3' => '4:-1:1:1',
- 'MPIU_ERR_CHKFATALANDSTMT4' => '4:-1:1:1',
- 'MPIU_ERR_CHKFATALANDJUMP' => '3:-1:0:1',
- 'MPIU_ERR_CHKFATALANDJUMP1' => '3:-1:1:1',
- 'MPIU_ERR_CHKFATALANDJUMP2' => '3:-1:1:1',
- 'MPIU_ERR_CHKFATALANDJUMP3' => '3:-1:1:1',
- 'MPIU_ERR_CHKFATALANDJUMP4' => '3:-1:1:1',
- 'MPIR_ERRTEST_VALID_HANDLE' => '4:-1:0:1',
+ # location of the error class
+ %KnownErrRoutines = ( 'MPIR_Err_create_code' => '5:3:1:1:4',
+ 'MPIO_Err_create_code' => '5:3:1:0:-1',
+ 'MPIU_ERR_SET' => '2:-1:0:1:1',
+ 'MPIU_ERR_SETSIMPLE' => '2:-1:0:1:1',
+ 'MPIU_ERR_SET1' => '2:-1:1:1:1',
+ 'MPIU_ERR_SET2' => '2:-1:2:1:1',
+ 'MPIU_ERR_SETANDSTMT' => '3:-1:0:1:1',
+ 'MPIU_ERR_SETANDSTMT1' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETANDSTMT2' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETANDSTMT3' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETANDSTMT4' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETANDJUMP' => '2:-1:0:1:1',
+ 'MPIU_ERR_SETANDJUMP1' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETANDJUMP2' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETANDJUMP3' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETANDJUMP4' => '2:-1:1:1:1',
+ 'MPIU_ERR_CHKANDSTMT' => '4:-1:0:1:2',
+ 'MPIU_ERR_CHKANDSTMT1' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKANDSTMT2' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKANDSTMT3' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKANDSTMT4' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKANDJUMP' => '3:-1:0:1:2',
+ 'MPIU_ERR_CHKANDJUMP1' => '3:-1:1:1:2',
+ 'MPIU_ERR_CHKANDJUMP2' => '3:-1:1:1:2',
+ 'MPIU_ERR_CHKANDJUMP3' => '3:-1:1:1:2',
+ 'MPIU_ERR_CHKANDJUMP4' => '3:-1:1:1:2',
+ 'MPIU_ERR_SETFATAL' => '2:-1:0:1:1',
+ 'MPIU_ERR_SETFATALSIMPLE' => '2:-1:0:1:1',
+ 'MPIU_ERR_SETFATAL1' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETFATAL2' => '2:-1:2:1:1',
+ 'MPIU_ERR_SETFATALANDSTMT' => '3:-1:0:1:1',
+ 'MPIU_ERR_SETFATALANDSTMT1' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDSTMT2' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDSTMT3' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDSTMT4' => '3:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDJUMP' => '2:-1:0:1:1',
+ 'MPIU_ERR_SETFATALANDJUMP1' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDJUMP2' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDJUMP3' => '2:-1:1:1:1',
+ 'MPIU_ERR_SETFATALANDJUMP4' => '2:-1:1:1:1',
+ 'MPIU_ERR_CHKFATALANDSTMT' => '4:-1:0:1:2',
+ 'MPIU_ERR_CHKFATALANDSTMT1' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDSTMT2' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDSTMT3' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDSTMT4' => '4:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDJUMP' => '3:-1:0:1:2',
+ 'MPIU_ERR_CHKFATALANDJUMP1' => '3:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDJUMP2' => '3:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDJUMP3' => '3:-1:1:1:2',
+ 'MPIU_ERR_CHKFATALANDJUMP4' => '3:-1:1:1:2',
+ 'MPIR_ERRTEST_VALID_HANDLE' => '4:-1:0:1:3',
);
while (/(MPI[OUR]_E[A-Za-z0-9_]+)\s*(\(.*)$/) {
my $routineName = $1;
@@ -689,7 +690,7 @@ sub ProcessFile
last;
}
print "Found $routineName\n" if $debug;
- my ($genericArgLoc,$hasLine,$hasSpecific,$onlyIndirect) =
+ my ($genericArgLoc,$hasLine,$hasSpecific,$onlyIndirect,$errClassLoc) =
split(/:/,$KnownErrRoutines{$routineName});
($leader, $remainder, @args ) = &GetSubArgs( FD, $arglist );
@@ -719,6 +720,16 @@ sub ProcessFile
}
next;
}
+ if ($errClassLoc >= 0) {
+ if (!($args[$errClassLoc] =~ /^MPI_ERR_/) &&
+ !($args[$errClassLoc] =~ /^MPIDU_SOCK_ERR_/) &&
+ !($args[$errClassLoc] =~ /^MPIX_ERR_/) &&
+ !($args[$errClassLoc] =~ /^errclass/) ) {
+ $bad_syntax_in_file{$filename} = 1;
+ print STDERR "Invalid argument $args[$errClassLoc] for the MPI Error class in $routineName in $filename\n";
+ next;
+ }
+ }
#my $last_errcode = $args[0];
#my $fatal_flag = $args[1];
diff --git a/src/include/mpierrs.h b/src/include/mpierrs.h
index 330c296..ee592e2 100644
--- a/src/include/mpierrs.h
+++ b/src/include/mpierrs.h
@@ -143,12 +143,12 @@
goto fn_fail; \
}
-#define MPIR_ERRTEST_ARGNONPOS(arg,arg_name,err,err_class) \
+#define MPIR_ERRTEST_ARGNONPOS(arg,arg_name,err,errclass) \
if ((arg) <= 0) { \
err = MPIR_Err_create_code(MPI_SUCCESS, \
MPIR_ERR_RECOVERABLE, \
FCNAME, __LINE__, \
- err_class, \
+ errclass, \
"**argnonpos", \
"**argnonpos %s %d", \
arg_name, arg ); \
diff --git a/src/mpi/errhan/errnames.txt b/src/mpi/errhan/errnames.txt
index 0633d3a..127f150 100644
--- a/src/mpi/errhan/errnames.txt
+++ b/src/mpi/errhan/errnames.txt
@@ -2,6 +2,8 @@
**argnonpos %s %d:Invalid value for %s; must be positive but is %d
**argneg:Invalid argument; must be non-negative
**argneg %s %d:Invalid value for %s, must be non-negative but is %d
+**argtoosmall:Invalid argument; value is too small
+**argtoosmall %s %d %d:Invalid argument for %s: value is %d but must be at least %d
**countneg:Negative count
**countneg %d:Negative count, value is %d
**initialized:MPI not initialized. Call MPI_Init or MPI_Init_thread first
diff --git a/src/mpi/topo/dist_gr_create.c b/src/mpi/topo/dist_gr_create.c
index f00596e..67ae7b4 100644
--- a/src/mpi/topo/dist_gr_create.c
+++ b/src/mpi/topo/dist_gr_create.c
@@ -313,18 +313,23 @@ int MPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[],
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
MPIR_Get_count_impl(&status, MPI_INT, &count);
/* can't use CHKLMEM macros b/c we are in a loop */
+ /* FIXME: Why not - there is only one allocated at a time. Is it only
+ that there is no defined macro to pop and free an item? */
buf = MPIU_Malloc(count*sizeof(int));
MPIU_ERR_CHKANDJUMP(!buf, mpi_errno, MPIR_ERR_RECOVERABLE, "**nomem");
mpi_errno = MPIC_Recv(buf, count, MPI_INT, MPI_ANY_SOURCE, MPIR_TOPO_A_TAG, comm_old, MPI_STATUS_IGNORE);
+ /* FIXME: buf is never freed on error! */
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
for (j = 0; j < count/2; ++j) {
int deg = dist_graph_ptr->indegree++;
if (deg >= in_capacity) {
in_capacity *= 2;
+ /* FIXME: buf is never freed on error! */
MPIU_REALLOC_ORJUMP(dist_graph_ptr->in, in_capacity*sizeof(int), mpi_errno);
if (dist_graph_ptr->is_weighted)
+ /* FIXME: buf is never freed on error! */
MPIU_REALLOC_ORJUMP(dist_graph_ptr->in_weights, in_capacity*sizeof(int), mpi_errno);
}
dist_graph_ptr->in[deg] = buf[2*j];
@@ -343,18 +348,22 @@ int MPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[],
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
MPIR_Get_count_impl(&status, MPI_INT, &count);
/* can't use CHKLMEM macros b/c we are in a loop */
+ /* Why not? */
buf = MPIU_Malloc(count*sizeof(int));
MPIU_ERR_CHKANDJUMP(!buf, mpi_errno, MPIR_ERR_RECOVERABLE, "**nomem");
mpi_errno = MPIC_Recv(buf, count, MPI_INT, MPI_ANY_SOURCE, MPIR_TOPO_B_TAG, comm_old, MPI_STATUS_IGNORE);
+ /* FIXME: buf is never freed on error! */
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
for (j = 0; j < count/2; ++j) {
int deg = dist_graph_ptr->outdegree++;
if (deg >= out_capacity) {
out_capacity *= 2;
+ /* FIXME: buf is never freed on error! */
MPIU_REALLOC_ORJUMP(dist_graph_ptr->out, out_capacity*sizeof(int), mpi_errno);
if (dist_graph_ptr->is_weighted)
+ /* FIXME: buf is never freed on error! */
MPIU_REALLOC_ORJUMP(dist_graph_ptr->out_weights, out_capacity*sizeof(int), mpi_errno);
}
dist_graph_ptr->out[deg] = buf[2*j];
diff --git a/src/mpi/topo/dist_gr_neighb.c b/src/mpi/topo/dist_gr_neighb.c
index 873117a..56d2c72 100644
--- a/src/mpi/topo/dist_gr_neighb.c
+++ b/src/mpi/topo/dist_gr_neighb.c
@@ -38,7 +38,7 @@ int MPIR_Dist_graph_neighbors_impl(MPID_Comm *comm_ptr,
MPIR_Topology *topo_ptr = NULL;
topo_ptr = MPIR_Topology_get(comm_ptr);
- MPIU_ERR_CHKANDJUMP(!topo_ptr || topo_ptr->kind != MPI_DIST_GRAPH, mpi_errno, MPIR_ERR_RECOVERABLE, "**notdistgraphtopo");
+ MPIU_ERR_CHKANDJUMP(!topo_ptr || topo_ptr->kind != MPI_DIST_GRAPH, mpi_errno, MPI_ERR_TOPOLOGY, "**notdistgraphtopo");
MPIU_Memcpy(sources, topo_ptr->topo.dist_graph.in, maxindegree*sizeof(int));
MPIU_Memcpy(destinations, topo_ptr->topo.dist_graph.out, maxoutdegree*sizeof(int));
@@ -118,12 +118,12 @@ int MPI_Dist_graph_neighbors(MPI_Comm comm,
{
MPIR_Topology *topo_ptr = NULL;
topo_ptr = MPIR_Topology_get(comm_ptr);
- MPIU_ERR_CHKANDJUMP(!topo_ptr || topo_ptr->kind != MPI_DIST_GRAPH, mpi_errno, MPIR_ERR_RECOVERABLE, "**notdistgraphtopo");
+ MPIU_ERR_CHKANDJUMP(!topo_ptr || topo_ptr->kind != MPI_DIST_GRAPH, mpi_errno, MPI_ERR_TOPOLOGY, "**notdistgraphtopo");
MPIR_ERRTEST_ARGNEG(maxindegree, "maxindegree", mpi_errno);
MPIR_ERRTEST_ARGNEG(maxoutdegree, "maxoutdegree", mpi_errno);
- MPIU_ERR_CHKANDJUMP3((maxindegree > topo_ptr->topo.dist_graph.indegree), mpi_errno, MPIR_ERR_RECOVERABLE, "**argrange", "**argrange %s %d %d", "maxindegree", maxindegree, topo_ptr->topo.dist_graph.indegree);
- MPIU_ERR_CHKANDJUMP3((maxoutdegree > topo_ptr->topo.dist_graph.outdegree), mpi_errno, MPIR_ERR_RECOVERABLE, "**argrange", "**argrange %s %d %d", "maxoutdegree", maxoutdegree, topo_ptr->topo.dist_graph.outdegree);
+ MPIU_ERR_CHKANDJUMP3((maxindegree < topo_ptr->topo.dist_graph.indegree), mpi_errno, MPI_ERR_ARG, "**argtoosmall", "**argtoosmall %s %d %d", "maxindegree", maxindegree, topo_ptr->topo.dist_graph.indegree);
+ MPIU_ERR_CHKANDJUMP3((maxoutdegree < topo_ptr->topo.dist_graph.outdegree), mpi_errno, MPI_ERR_ARG, "**argtoosmall", "**argtoosmall %s %d %d", "maxoutdegree", maxoutdegree, topo_ptr->topo.dist_graph.outdegree);
}
MPID_END_ERROR_CHECKS;
}
diff --git a/src/mpi/topo/dist_gr_neighb_count.c b/src/mpi/topo/dist_gr_neighb_count.c
index 36b3feb..78b4488 100644
--- a/src/mpi/topo/dist_gr_neighb_count.c
+++ b/src/mpi/topo/dist_gr_neighb_count.c
@@ -36,7 +36,7 @@ int MPIR_Dist_graph_neighbors_count_impl(MPID_Comm *comm_ptr, int *indegree, int
MPIR_Topology *topo_ptr = NULL;
topo_ptr = MPIR_Topology_get(comm_ptr);
- MPIU_ERR_CHKANDJUMP(!topo_ptr || topo_ptr->kind != MPI_DIST_GRAPH, mpi_errno, MPIR_ERR_RECOVERABLE, "**notdistgraphtopo");
+ MPIU_ERR_CHKANDJUMP(!topo_ptr || topo_ptr->kind != MPI_DIST_GRAPH, mpi_errno, MPI_ERR_TOPOLOGY, "**notdistgraphtopo");
*indegree = topo_ptr->topo.dist_graph.indegree;
*outdegree = topo_ptr->topo.dist_graph.outdegree;
*weighted = topo_ptr->topo.dist_graph.is_weighted;
diff --git a/src/mpi/topo/graph_get.c b/src/mpi/topo/graph_get.c
index fabde67..79a48f4 100644
--- a/src/mpi/topo/graph_get.c
+++ b/src/mpi/topo/graph_get.c
@@ -103,10 +103,10 @@ int MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges,
topo_ptr = MPIR_Topology_get( comm_ptr );
MPIU_ERR_CHKANDJUMP((!topo_ptr || topo_ptr->kind != MPI_GRAPH), mpi_errno, MPI_ERR_TOPOLOGY, "**notgraphtopo");
- MPIU_ERR_CHKANDJUMP3((topo_ptr->topo.graph.nnodes > maxindex), mpi_errno, MPI_ERR_ARG, "**argrange",
- "**argrange %s %d %d", "maxindex", maxindex, topo_ptr->topo.graph.nnodes);
- MPIU_ERR_CHKANDJUMP3((topo_ptr->topo.graph.nedges > maxedges), mpi_errno, MPI_ERR_ARG, "**argrange",
- "**argrange %s %d %d", "maxedges", maxedges, topo_ptr->topo.graph.nedges);
+ MPIU_ERR_CHKANDJUMP3((topo_ptr->topo.graph.nnodes > maxindex), mpi_errno, MPI_ERR_ARG, "**argtoosmall",
+ "**argtoosmall %s %d %d", "maxindex", maxindex, topo_ptr->topo.graph.nnodes);
+ MPIU_ERR_CHKANDJUMP3((topo_ptr->topo.graph.nedges > maxedges), mpi_errno, MPI_ERR_ARG, "**argtoosmall",
+ "**argtoosmall %s %d %d", "maxedges", maxedges, topo_ptr->topo.graph.nedges);
/* Get index */
n = topo_ptr->topo.graph.nnodes;
-----------------------------------------------------------------------
Summary of changes:
maint/extracterrmsgs | 118 +++++++++++++++++++---------------
src/include/mpierrs.h | 4 +-
src/mpi/errhan/errnames.txt | 2 +
src/mpi/topo/dist_gr_create.c | 9 +++
src/mpi/topo/dist_gr_neighb.c | 8 +-
src/mpi/topo/dist_gr_neighb_count.c | 2 +-
src/mpi/topo/graph_get.c | 8 +-
7 files changed, 88 insertions(+), 63 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-254-g1bbe0ba
by noreply@mpich.org 02 Jun '13
by noreply@mpich.org 02 Jun '13
02 Jun '13
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 1bbe0ba39a5c2486b9b73a17e8314d8039b5f92b (commit)
from 32dc8c1b689e98ed6a1289b11c81245312fdf761 (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/1bbe0ba39a5c2486b9b73a17e8314d803…
commit 1bbe0ba39a5c2486b9b73a17e8314d8039b5f92b
Author: William Gropp <wgropp(a)illinois.edu>
Date: Sat Jun 1 13:54:52 2013 +0800
Correct typo in usage of parameter in bcast
This bug was found by the Tianhe-2 software group, and applies only to the
device-override path for the MPI_Bcast operation. Because of a missing trailing
underscore, the wrong bcast override function could be selected. As our tests
don't check the override path, this went undetected.
diff --git a/src/mpi/coll/bcast.c b/src/mpi/coll/bcast.c
index da83463..261cc78 100644
--- a/src/mpi/coll/bcast.c
+++ b/src/mpi/coll/bcast.c
@@ -876,7 +876,7 @@ fn_fail:
if (comm_ptr_->coll_fns != NULL && comm_ptr_->coll_fns->Bcast != NULL) \
{ \
/* --BEGIN USEREXTENSION-- */ \
- mpi_errno_ = comm_ptr->coll_fns->Bcast(buffer_, count_, \
+ mpi_errno_ = comm_ptr_->coll_fns->Bcast(buffer_, count_, \
datatype_, root_, comm_ptr_, errflag_); \
/* --END USEREXTENSION-- */ \
} \
-----------------------------------------------------------------------
Summary of changes:
src/mpi/coll/bcast.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-253-g32dc8c1
by noreply@mpich.org 31 May '13
by noreply@mpich.org 31 May '13
31 May '13
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 32dc8c1b689e98ed6a1289b11c81245312fdf761 (commit)
from a803acf6b206d59d09229605324f10b964f98e8f (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/32dc8c1b689e98ed6a1289b11c8124531…
commit 32dc8c1b689e98ed6a1289b11c81245312fdf761
Author: Rajeev Thakur <thakur(a)mcs.anl.gov>
Date: Fri May 31 17:09:06 2013 -0500
remove check for committed type in Type_size_x. Fixes ticket #1774
diff --git a/src/mpi/datatype/type_size_x.c b/src/mpi/datatype/type_size_x.c
index 20588c9..2ab5bcb 100644
--- a/src/mpi/datatype/type_size_x.c
+++ b/src/mpi/datatype/type_size_x.c
@@ -95,7 +95,6 @@ int MPI_Type_size_x(MPI_Datatype datatype, MPI_Count *size)
MPID_Datatype *datatype_ptr = NULL;
MPID_Datatype_get_ptr(datatype, datatype_ptr);
MPID_Datatype_valid_ptr(datatype_ptr, mpi_errno);
- MPID_Datatype_committed_ptr(datatype_ptr, mpi_errno);
}
/* TODO more checks may be appropriate (counts, in_place, buffer aliasing, etc) */
-----------------------------------------------------------------------
Summary of changes:
src/mpi/datatype/type_size_x.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-252-ga803acf
by noreply@mpich.org 29 May '13
by noreply@mpich.org 29 May '13
29 May '13
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 a803acf6b206d59d09229605324f10b964f98e8f (commit)
via cabd1a06512932ffbbe8c307b0bfa537aba9a118 (commit)
from 670a216ebb3cd3e376ef7bc019ece16a6be2c282 (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/a803acf6b206d59d09229605324f10b96…
commit a803acf6b206d59d09229605324f10b964f98e8f
Author: Jeff Hammond <jhammond(a)alcf.anl.gov>
Date: Sat May 18 20:30:30 2013 -0500
Replace bzero with memset.
Replace all instances of bzero(x,n) with memset(x,0,n) per the
recommendation of
http://pubs.opengroup.org/onlinepubs/009696899/functions/bzero.html
Signed-off-by: Michael Blocksome <blocksom(a)us.ibm.com>
Signed-off-by: Pavan Balaji <balaji(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/ad_panfs/ad_panfs_open.c b/src/mpi/romio/adio/ad_panfs/ad_panfs_open.c
index 807337e..c052c83 100644
--- a/src/mpi/romio/adio/ad_panfs/ad_panfs_open.c
+++ b/src/mpi/romio/adio/ad_panfs/ad_panfs_open.c
@@ -191,7 +191,7 @@ void ADIOI_PANFS_Open(ADIO_File fd, int *error_code)
}
/* create PanFS object */
- bzero(&file_create_args,sizeof(pan_fs_client_layout_create_args_t));
+ memset(&file_create_args,0,sizeof(pan_fs_client_layout_create_args_t));
/* open directory */
fd_dir = open(path, O_RDONLY);
if (fd_dir < 0) {
@@ -285,7 +285,7 @@ void ADIOI_PANFS_Open(ADIO_File fd, int *error_code)
int rc;
char temp_buffer[TEMP_BUFFER_SIZE];
pan_fs_client_layout_query_args_t file_query_args;
- bzero(&file_query_args,sizeof(pan_fs_client_layout_query_args_t));
+ memset(&file_query_args,0,sizeof(pan_fs_client_layout_query_args_t));
file_query_args.version = PAN_FS_CLIENT_LAYOUT_VERSION;
rc = ioctl(fd->fd_sys, PAN_FS_CLIENT_LAYOUT_QUERY_FILE, &file_query_args);
if (rc < 0)
diff --git a/src/mpid/pamid/include/mpidi_trace.h b/src/mpid/pamid/include/mpidi_trace.h
index 143cae3..9f04067 100644
--- a/src/mpid/pamid/include/mpidi_trace.h
+++ b/src/mpid/pamid/include/mpidi_trace.h
@@ -112,7 +112,7 @@ typedef struct {
MPIDI_Trace_buf[src].totPR++ ; \
seqNo=MPIDI_Trace_buf[src].totPR; \
idx = (seqNo & SEQMASK); \
- bzero(&MPIDI_Trace_buf[src].PR[idx],sizeof(posted_recv)); \
+ memset(&MPIDI_Trace_buf[src].PR[idx],0,sizeof(posted_recv)); \
MPIDI_Trace_buf[src].PR[idx].src_task= pami_id; \
MPIDI_Trace_buf[src].PR[idx].rank = rank; \
MPIDI_Trace_buf[src].PR[idx].bufadd = buf; \
@@ -132,7 +132,7 @@ typedef struct {
int dest=sreq->mpid.partner_id; \
int seqNo=sreq->mpid.envelope.msginfo.MPIseqno; \
int idx = (seqNo & SEQMASK); \
- bzero(&MPIDI_Trace_buf[dest].S[idx],sizeof(send_status));\
+ memset(&MPIDI_Trace_buf[dest].S[idx],0,sizeof(send_status));\
sstatus=&MPIDI_Trace_buf[dest].S[idx]; \
sstatus->req = (void *)sreq; \
sstatus->tag = sreq->mpid.envelope.msginfo.MPItag; \
diff --git a/src/mpid/pamid/src/dyntask/mpid_comm_disconnect.c b/src/mpid/pamid/src/dyntask/mpid_comm_disconnect.c
index 4351ae9..669158a 100644
--- a/src/mpid/pamid/src/dyntask/mpid_comm_disconnect.c
+++ b/src/mpid/pamid/src/dyntask/mpid_comm_disconnect.c
@@ -58,7 +58,7 @@ void MPIDI_send_AM_to_remote_leader_on_disconnect(int taskid, long long comm_cnt
AM_data.tranid = comm_cntr;
AM_data.whichAM = whichAM;
- bzero(&xferP, sizeof(pami_send_immediate_t));
+ memset(&xferP, 0, sizeof(pami_send_immediate_t));
xferP.header.iov_base = (void*)&AM_data;
xferP.header.iov_len = sizeof(AM_struct2);
xferP.dispatch = (size_t)MPIDI_Protocols_Dyntask_disconnect;
diff --git a/src/mpid/pamid/src/dyntask/mpidi_port.c b/src/mpid/pamid/src/dyntask/mpidi_port.c
index a90e24e..13038c1 100644
--- a/src/mpid/pamid/src/dyntask/mpidi_port.c
+++ b/src/mpid/pamid/src/dyntask/mpidi_port.c
@@ -184,7 +184,7 @@ int MPIDU_send_AM_to_leader(MPID_VCR new_vcr, int port_name_tag, pami_task_t tas
TRACE_ERR("send - %p %d %p %d\n", AM_data.vcr, AM_data.port_name_tag, AM_data.vcr, AM_data.vcr->taskid);
- bzero(&xferP, sizeof(pami_send_t));
+ memset(&xferP, 0, sizeof(pami_send_t));
xferP.send.header.iov_base = (void*)&AM_data;
xferP.send.header.iov_len = sizeof(AM_struct);
xferP.send.dispatch = MPIDI_Protocols_Dyntask;
diff --git a/src/mpid/pamid/src/mpid_init.c b/src/mpid/pamid/src/mpid_init.c
index 3fb57bb..2db821d 100644
--- a/src/mpid/pamid/src/mpid_init.c
+++ b/src/mpid/pamid/src/mpid_init.c
@@ -1364,7 +1364,7 @@ int MPIDI_Banner(char * bufPtr) {
/* The version string generated by CMVC during weekly build has a */
/* date which is the time when the mpidi_platform.h file is last */
/* updated. This date can be quite old and is better removed. */
- bzero(ver_buf, sizeof(ver_buf));
+ memset(ver_buf, 0, sizeof(ver_buf));
strncpy(ver_buf, level, sizeof(ver_buf)-1);
if ( cp = strchr(ver_buf, ',') ) *cp = '\0';
}
diff --git a/src/mpid/pamid/src/mpidi_util.c b/src/mpid/pamid/src/mpidi_util.c
index e600dfe..70f2a60 100644
--- a/src/mpid/pamid/src/mpidi_util.c
+++ b/src/mpid/pamid/src/mpidi_util.c
@@ -69,7 +69,7 @@ void MPIDI_Set_mpich_env(int rank, int size) {
mpich_env->use_token_flow_control=MPIDI_Process.is_token_flow_control_on;
mpich_env->mp_statistics=MPIDI_Process.mp_statistics;
if (mpich_env->polling_interval == 0) {
- bzero(&config, sizeof(config));
+ memset(&config, 0, sizeof(config));
config.name = (pami_attribute_name_t)PAMI_CONTEXT_TIMER_INTERVAL;
rc= PAMI_Context_query(MPIDI_Context[0], &config, 1);
mpich_env->polling_interval = config.value.intval;;
@@ -78,7 +78,7 @@ void MPIDI_Set_mpich_env(int rank, int size) {
rc = putenv(polling_buf);
}
if (mpich_env->retransmit_interval == 0) {
- bzero(&config, sizeof(config));
+ memset(&config, 0, sizeof(config));
config.name = (pami_attribute_name_ext_t)PAMI_CONTEXT_RETRANSMIT_INTERVAL;
rc= PAMI_Context_query(MPIDI_Context[0], &config, 1);
mpich_env->retransmit_interval = config.value.intval;
@@ -150,7 +150,7 @@ void MPIDI_Setup_networkenv()
* mpi_printenv variable can print them out.
*/
if ( mpich_env->retransmit_interval == 0 ) {
- bzero(&config, sizeof(config));
+ memset(&config, 0, sizeof(config));
config.name = (pami_attribute_name_t)PAMI_CONTEXT_RETRANSMIT_INTERVAL;
rc= PAMI_Context_query(MPIDI_Context[0], &config, 1);
mpich_env->retransmit_interval = config.value.intval;
diff --git a/src/mutex/mutex_create.c b/src/mutex/mutex_create.c
index b015494..5bae747 100644
--- a/src/mutex/mutex_create.c
+++ b/src/mutex/mutex_create.c
@@ -7,6 +7,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
+#include <string.h>
#include <strings.h>
#include <mpi.h>
@@ -83,7 +84,7 @@ int MPIX_Mutex_create(int my_count, MPI_Comm comm, MPIX_Mutex * hdl_out)
if (i < my_count) {
MPI_Alloc_mem(nproc, MPI_INFO_NULL, &hdl->bases[i]);
assert(hdl->bases[i] != NULL);
- bzero(hdl->bases[i], nproc);
+ memset(hdl->bases[i], 0, nproc);
base = hdl->bases[i];
size = nproc;
diff --git a/src/pm/mpd/mpdroot.c b/src/pm/mpd/mpdroot.c
index 2476c66..7f517cd 100644
--- a/src/pm/mpd/mpdroot.c
+++ b/src/pm/mpd/mpdroot.c
@@ -80,7 +80,7 @@ int main(int argc, char *argv[])
/* setup default console */
strncpy(console_name,argv[1],NAME_LEN);
- bzero( (void *)&sa, sizeof( sa ) );
+ memset( (void *)&sa, 0, sizeof( sa ) );
sa.sun_family = AF_UNIX;
strncpy(sa.sun_path,console_name, sizeof(sa.sun_path)-1 );
sock = atoi(argv[2]);
diff --git a/src/pm/mpd/pmitest.c b/src/pm/mpd/pmitest.c
index e81776d..c12fe0e 100644
--- a/src/pm/mpd/pmitest.c
+++ b/src/pm/mpd/pmitest.c
@@ -146,7 +146,7 @@ int connect_to_pm( char *hostname, int portnum )
exit(-1);
}
- bzero( (void *)&sin, sizeof(sin) );
+ memset( (void *)&sin, 0, sizeof(sin) );
memmove( (void *)&sin.sin_addr, (void *)hp->h_addr, hp->h_length);
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons( (unsigned short) portnum );
http://git.mpich.org/mpich.git/commitdiff/cabd1a06512932ffbbe8c307b0bfa537a…
commit cabd1a06512932ffbbe8c307b0bfa537aba9a118
Author: Jeff Hammond <jhammond(a)alcf.anl.gov>
Date: Sat May 18 22:00:38 2013 -0500
Replace bcopy with memmove.
Signed-off-by: Pavan Balaji <balaji(a)mcs.anl.gov>
diff --git a/src/pm/mpd/pmitest.c b/src/pm/mpd/pmitest.c
index 32e2c2c..e81776d 100644
--- a/src/pm/mpd/pmitest.c
+++ b/src/pm/mpd/pmitest.c
@@ -6,6 +6,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
@@ -146,7 +147,7 @@ int connect_to_pm( char *hostname, int portnum )
}
bzero( (void *)&sin, sizeof(sin) );
- bcopy( (void *)hp->h_addr, (void *)&sin.sin_addr, hp->h_length);
+ memmove( (void *)&sin.sin_addr, (void *)hp->h_addr, hp->h_length);
sin.sin_family = hp->h_addrtype;
sin.sin_port = htons( (unsigned short) portnum );
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/ad_panfs/ad_panfs_open.c | 4 ++--
src/mpid/pamid/include/mpidi_trace.h | 4 ++--
src/mpid/pamid/src/dyntask/mpid_comm_disconnect.c | 2 +-
src/mpid/pamid/src/dyntask/mpidi_port.c | 2 +-
src/mpid/pamid/src/mpid_init.c | 2 +-
src/mpid/pamid/src/mpidi_util.c | 6 +++---
src/mutex/mutex_create.c | 3 ++-
src/pm/mpd/mpdroot.c | 2 +-
src/pm/mpd/pmitest.c | 5 +++--
9 files changed, 16 insertions(+), 14 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-250-g670a216
by noreply@mpich.org 28 May '13
by noreply@mpich.org 28 May '13
28 May '13
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 670a216ebb3cd3e376ef7bc019ece16a6be2c282 (commit)
from df5d41be07d90561affc18f535c0ebc9af19c761 (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/670a216ebb3cd3e376ef7bc019ece16a6…
commit 670a216ebb3cd3e376ef7bc019ece16a6be2c282
Author: Pavan Balaji <balaji(a)mcs.anl.gov>
Date: Sun May 19 13:31:12 2013 -0500
Enable shared builds by default.
diff --git a/configure.ac b/configure.ac
index b119e92..09826a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -656,7 +656,7 @@ AM_MAINTAINER_MODE([enable])
AM_PROG_AR
-LT_INIT([disable-shared])
+LT_INIT()
# Non-verbose make by default
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/src/armci/configure.ac b/src/armci/configure.ac
index f7a5951..99c71a4 100644
--- a/src/armci/configure.ac
+++ b/src/armci/configure.ac
@@ -21,7 +21,7 @@ AC_PROG_CC(mpicc)
AM_PROG_AR
-LT_INIT(disable-shared)
+LT_INIT()
PAC_POP_FLAG(CFLAGS)
## Non-verbose make
diff --git a/src/mpl/configure.ac b/src/mpl/configure.ac
index 0ea3ab1..fa7380c 100644
--- a/src/mpl/configure.ac
+++ b/src/mpl/configure.ac
@@ -22,7 +22,7 @@ LT_PREREQ([2.2.6])
# Bug in libtool adds -O2 and -g by default
PAC_PUSH_FLAG([CFLAGS])
-LT_INIT(disable-shared)
+LT_INIT()
PAC_POP_FLAG([CFLAGS])
# ----------------------------------------------------------------------------
diff --git a/src/openpa/configure.ac b/src/openpa/configure.ac
index bf682fd..7390333 100644
--- a/src/openpa/configure.ac
+++ b/src/openpa/configure.ac
@@ -22,7 +22,7 @@ LT_PREREQ([2.2.6])
# Bug in libtool adds -O2 and -g by default
save_cflags=$CFLAGS
-LT_INIT(disable-shared)
+LT_INIT()
CFLAGS=$save_cflags
# ----------------------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 2 +-
src/armci/configure.ac | 2 +-
src/mpl/configure.ac | 2 +-
src/openpa/configure.ac | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-249-gdf5d41b
by noreply@mpich.org 22 May '13
by noreply@mpich.org 22 May '13
22 May '13
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 df5d41be07d90561affc18f535c0ebc9af19c761 (commit)
via cf0c57d23010b6b33d859229bc323c10d00a68e8 (commit)
via b8ddea4fbe24a96371767ebd50057f8de9e9ead5 (commit)
from 438a49fe9eba9cdb63bc4dc07cef3fc4031afd03 (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/df5d41be07d90561affc18f535c0ebc9a…
commit df5d41be07d90561affc18f535c0ebc9af19c761
Author: William Gropp <wgropp(a)illinois.edu>
Date: Wed May 22 15:21:35 2013 -0500
Cleaned up files to remove unused code from distgraph update
diff --git a/src/binding/cxx/buildiface b/src/binding/cxx/buildiface
index 8f8e17d..bd112f0 100755
--- a/src/binding/cxx/buildiface
+++ b/src/binding/cxx/buildiface
@@ -229,11 +229,11 @@ if (! -d "../../mpi/romio") { $build_io = 0; }
'Create_cart-4' => 'in:boolarray:2',
'Create_cart-5' => 'in:bool',
'Create_graph-5' => 'in:bool',
-# 'Dist_graph_create-8' => 'in:bool',
-# 'Dist_graph_create_adjacent-9' => 'in:bool',
- # Other versions with one less argument (no weights)
- # also needed.
-# 'distgraph-Get_dist_neighbors_count-4' => 'out:bool',
+# Because there are multiple versions of the Distgraph create routines,
+# to allow for the optional weights,
+# we don't use the automatic method to create them. Thus, there are
+# no entries for Dist_graph_create, Dist_graph_create_adjacent, or
+# Dist_graph_neighrbors_count
'cart-Get_topo-4' => 'out:boolarray:2',
'Sub-2' => 'in:boolarray:-10', # Use -10 for immediate number
'Shift-4' => 'in:refint',
@@ -363,8 +363,8 @@ $specialReturnType{"inter-Split"} = "Intercomm";
'Create_intercomm' => MPI_Comm,
'Create_cart' => 'MPI_Comm:4:5',
'Create_graph' => 'MPI_Comm:5',
-# 'Dist_graph_create' => 'MPI_Comm:8',
-# 'Dist_graph_create_adjacent' => 'MPI_Comm:9',
+# Because the Dist_graph_create and Dist_graph_create_adjacent routines
+# have two signatures, their definitions are handled as a special case
);
$specialReturnType{"intra-Split"} = "Intracomm";
$specialReturnType{"intra-Create"} = "Intracomm";
@@ -455,7 +455,8 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
);
%class_mpi2graph = ();
%class_mpi2distgraph = (
-# 'Get_dist_neighbors_count' => '0',
+# Because of the weights option, Get_dist_neighbors_count is handled as
+# special case
'Get_dist_neighbors' => '0',
);
%class_mpi2group = ();
@@ -482,9 +483,9 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
# also require special handling
%class_mpi2intra = ( #'Alltoallw' => 0,
'Exscan' => 0,
-# 'Spawn' => 'MPI_Comm',
-# 'Spawn_multiple' => 'MPI_Comm',
- 'Accept' => 'MPI_Comm',
+ # Because Spawn and Spawn_multiple have two different
+ # signaturs, they are handled as special cases.
+ 'Accept' => 'MPI_Comm',
'Connect' => 'MPI_Comm',
);
%class_mpi2op = (
@@ -980,8 +981,8 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
'intra-Split' => 'Comm_split',
'intra-Create_cart' => 'Cart_create',
'intra-Create_graph' => 'Graph_create',
-# 'intra-Dist_graph_create' => 'Dist_graph_create',
-# 'intra-Dist_graph_create_adjacent' => 'Dist_graph_create_adjacent',
+ # Dist_graph_create and Dist_graph_create_adjacent are handled
+ # as a special case
'intra-Connect' => 'Comm_connect',
'intra-Spawn' => 'Comm_spawn',
'intra-Spawn_multiple' => 'Comm_spawn_multiple',
@@ -1041,8 +1042,6 @@ if ($doFuncspec) {
# Use the MPI C++ binding names for the defered definitions
$defer_definition{"Create_cart"} = "Comm";
$defer_definition{"Create_graph"} = "Comm";
-# $defer_definition{"Dist_graph_create"} = "Comm";
-# $defer_definition{"Dist_graph_create_adjacent"} = "Comm";
$defer_definition{"Get_parent"} = "Comm";
$defer_definition{"Join"} = "Comm";
$defer_definition{"Merge"} = "Intercomm";
diff --git a/src/binding/cxx/cxxdecl3.dat b/src/binding/cxx/cxxdecl3.dat
index 10618f2..845a6ce 100644
--- a/src/binding/cxx/cxxdecl3.dat
+++ b/src/binding/cxx/cxxdecl3.dat
@@ -288,10 +288,8 @@ inter-Merge Intracomm (,in:bool ,return) const
intra-Create_cart Cartcomm (, ,in:const ,in:boolarray:2 ,in:bool ,return) const
-Compute_dims void ( , , )
intra-Create_graph Graphcomm (, ,in:const ,in:const ,in:bool ,return) const
-#intra-Dist_graph_create Distgraphcomm (,,in:const,in:const,in:const,in:const,in:constref:Info,in:bool,return) const
-#intra-Dist_graph_create_adjacent Distgraphcomm (,,in:const,in:const,,in:const,in:const,in:constref:Info,in:bool,return) const
-##intra-Create_dist_graph Distgraphcomm (,,in:const,in:const,in:const,in:const,in:constref:Info,in:bool,return) const
-##intra-Create_dist_graph_adjacent Distgraphcomm (,,in:const,in:const,,in:const,in:const,in:constref:Info,in:bool,return) const
+# Dist_graph_create, Dist_graph_create_adjacent are handled specially
+# because of the optional weights parameter
comm-Get_topology int (,return) const
graph-Get_dims void (, , ) const
graph-Get_topo void (, , , , ) const
http://git.mpich.org/mpich.git/commitdiff/cf0c57d23010b6b33d859229bc323c10d…
commit cf0c57d23010b6b33d859229bc323c10d00a68e8
Author: William Gropp <wgropp(a)illinois.edu>
Date: Tue May 21 11:55:03 2013 -0500
Missed adding the change to the C++ testlist for the new topo test
diff --git a/test/mpi/cxx/testlist.in b/test/mpi/cxx/testlist.in
index 594aedc..ce4c53e 100644
--- a/test/mpi/cxx/testlist.in
+++ b/test/mpi/cxx/testlist.in
@@ -6,6 +6,7 @@ errhan
init
info
datatype
+topo
@iodir@
@spawndir@
@rmadir@
http://git.mpich.org/mpich.git/commitdiff/b8ddea4fbe24a96371767ebd50057f8de…
commit b8ddea4fbe24a96371767ebd50057f8de9e9ead5
Author: William Gropp <wgropp(a)illinois.edu>
Date: Sat Apr 20 15:44:12 2013 -0500
Corrected MPI-2 C++ interface to include the Distgraph routines
Updated buildiface for C++ (relevant for MPI 2.2) to create the Distgraph
C++ interfaces. Also fixed errors in the C++ tests where the tests failed
to include the configure-generated configuration file mpitestconf.h before
included files that depended upon that file.
In the process of creating the tests for the C++ Distgraph routines,
discovered errors in the error checking in the MPI dist graph routine to
extract the graph data. This commit does not fix that error.
diff --git a/src/binding/cxx/buildiface b/src/binding/cxx/buildiface
index 13db2b8..8f8e17d 100755
--- a/src/binding/cxx/buildiface
+++ b/src/binding/cxx/buildiface
@@ -229,6 +229,11 @@ if (! -d "../../mpi/romio") { $build_io = 0; }
'Create_cart-4' => 'in:boolarray:2',
'Create_cart-5' => 'in:bool',
'Create_graph-5' => 'in:bool',
+# 'Dist_graph_create-8' => 'in:bool',
+# 'Dist_graph_create_adjacent-9' => 'in:bool',
+ # Other versions with one less argument (no weights)
+ # also needed.
+# 'distgraph-Get_dist_neighbors_count-4' => 'out:bool',
'cart-Get_topo-4' => 'out:boolarray:2',
'Sub-2' => 'in:boolarray:-10', # Use -10 for immediate number
'Shift-4' => 'in:refint',
@@ -310,6 +315,9 @@ $specialReturnType{"cart-Split"} = "Cartcomm";
);
$specialReturnType{"graph-Dup"} = "Graphcomm";
$specialReturnType{"graph-Split"} = "Graphcomm";
+$specialReturnType{"distgraph-Dup"} = "Distgraphcomm";
+$specialReturnType{"distgraph-Split"} = "Distgraphcomm";
+
# Range routines will require special handling
# The Translate_ranks, Union, Intersect, Difference, and Compare routines are
@@ -354,7 +362,9 @@ $specialReturnType{"inter-Split"} = "Intercomm";
'Split' => MPI_Comm,
'Create_intercomm' => MPI_Comm,
'Create_cart' => 'MPI_Comm:4:5',
- 'Create_graph' => 'MPI_Comm:5'
+ 'Create_graph' => 'MPI_Comm:5',
+# 'Dist_graph_create' => 'MPI_Comm:8',
+# 'Dist_graph_create_adjacent' => 'MPI_Comm:9',
);
$specialReturnType{"intra-Split"} = "Intracomm";
$specialReturnType{"intra-Create"} = "Intracomm";
@@ -407,20 +417,20 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
'Is_finalized' => '1;bool',
'Query_thread' => '1',
'Is_thread_main' => '1;bool',
- 'Add_error_class' => 1,
- 'Add_error_code' => 2,
+ 'Add_error_class' => '1',
+ 'Add_error_code' => '2',
'Add_error_string' => '0:2',
);
-%class_mpi2comm = ( 'Barrier' => 0,
+%class_mpi2comm = ( 'Barrier' => '0',
'Get_attr' => 'int',
- 'Set_attr' => 0,
- 'Delete_attr' => 0,
+ 'Set_attr' => '0',
+ 'Delete_attr' => '0',
# 'Create_keyval' => 'int',
'Free_keyval' => 'static:0:1',
- 'Call_errhandler' => 0,
+ 'Call_errhandler' => '0',
'Set_name' => '0:2',
'Get_name' => '0:3',
- 'Disconnect' => 0,
+ 'Disconnect' => '0',
'Get_parent' => 'static:0;Intercomm',
);
%class_mpi2cart = ();
@@ -432,18 +442,22 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
'Create_hindexed' => 'MPI_Datatype',
'Get_extent' => '0',
'Create_resized' => 'MPI_Datatype', # FIXME Check not just resized
- 'Get_true_extent' => 0,
+ 'Get_true_extent' => '0',
'Create_subarray' => 'MPI_Datatype',
'Create_darray' => 'MPI_Datatype',
'Get_attr' => 'int',
- 'Set_attr' => 0,
- 'Delete_attr' => 0,
+ 'Set_attr' => '0',
+ 'Delete_attr' => '0',
# 'Create_keyval' => 'int',
'Free_keyval' => 'static:0:1',
);
%class_mpi2errh = (
);
%class_mpi2graph = ();
+%class_mpi2distgraph = (
+# 'Get_dist_neighbors_count' => '0',
+ 'Get_dist_neighbors' => '0',
+);
%class_mpi2group = ();
%class_mpi2inter = ( #'Barrier' => 0, # MPI-2 adds intercomm collective
#'Bcast' => 0, # These are moved into the Comm class
@@ -464,7 +478,7 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
#$specialReturnType{"inter-Split"} = "Intercomm";
# Alltoallw uses an array of datatypes, which requires special handling
-# Spawn and spawn mulitple uses arrays of character strings, which
+# Spawn and spawn multiple uses arrays of character strings, which
# also require special handling
%class_mpi2intra = ( #'Alltoallw' => 0,
'Exscan' => 0,
@@ -537,10 +551,10 @@ if ($build_io) {
'Get_type_extent' => 'MPI_Aint',
'Set_atomicity' => '0:2',
'Get_atomicity' => 'int;bool',
- 'Sync' => 0,
+ 'Sync' => '0',
'Get_errhandler' => 'MPI_Errhandler',
- 'Set_errhandler' => 0,
- 'Call_errhandler' => 0,
+ 'Set_errhandler' => '0',
+ 'Call_errhandler' => '0',
);
# %class_mpi2file = (
# 'File_open' => 'static:MPI_File:2',
@@ -616,8 +630,8 @@ if ($build_io) {
'Set_name' => '0:2',
'Get_name' => '0:3',
'Get_attr' => 'int',
- 'Set_attr' => 0,
- 'Delete_attr' => 0,
+ 'Set_attr' => '0',
+ 'Delete_attr' => '0',
'Free_keyval' => 'static:0:1',
);
%class_mpi2info = ( 'Create' => 'static:1',
@@ -651,6 +665,7 @@ if ($build_io) {
'win',
'file',
'graph',
+ 'distgraph',
'cart',
);
@@ -662,11 +677,12 @@ if ($build_io) {
%class_extra_fnc = ( 'st' => 'Status_methods',
'except' => 'Exception_methods',
'comm' => 'Comm_methods',
- 'null' => 'Nullcomm_methods',
- 'inter' => 'Intercomm_methods',
- 'intra' => 'Intracomm_methods',
- 'graph' => 'Graphcomm_methods',
- 'cart' => 'Cartcomm_methods',
+ 'null' => 'Nullcomm_methods',
+ 'inter' => 'Intercomm_methods',
+ 'intra' => 'Intracomm_methods',
+ 'graph' => 'Graphcomm_methods',
+ 'distgraph' => 'Distgraphcomm_methods',
+ 'cart' => 'Cartcomm_methods',
'dtype' => 'Datatype_methods',
'op' => 'Op_methods',
'file' => 'File_methods',
@@ -797,6 +813,7 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
'errh' => MPI_Errhandler,
'null' => MPI_Comm,
'graph' => MPI_Comm,
+ 'distgraph' => MPI_Comm,
'group' => MPI_Group,
'inter' => MPI_Comm,
'intra' => MPI_Comm,
@@ -817,6 +834,7 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
'dtype' => 'Datatype',
'errh' => 'Errhandler',
'graph' => 'Graphcomm',
+ 'distgraph' => 'Distgraphcomm',
'group' => 'Group',
'null' => 'Nullcomm',
'inter' => 'Intercomm',
@@ -837,14 +855,15 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
# This has gives the list of friends for each class (i.e., the
# classes that are allowed to directly access the protected members).
# The friends are the full class names
-%class_friends = ( 'comm' => 'Cartcomm,Intercomm,Intracomm,Graphcomm,Nullcomm,Datatype,Win,File',
+%class_friends = ( 'comm' => 'Cartcomm,Intercomm,Intracomm,Graphcomm,Distgraphcomm,Nullcomm,Datatype,Win,File',
'cart' => '',
'dtype' => 'Comm,Status,Intracomm,Intercomm,Win,File,Op',
'errh' => 'Comm,File,Win',
'graph' => '',
+ 'distgraph' => '',
'group' => 'Comm,Intracomm,Intercomm,Win,File',
'inter' => 'Intracomm',
- 'intra' => 'Cartcomm,Graphcomm,Datatype',
+ 'intra' => 'Cartcomm,Graphcomm,Distgraphcomm,Datatype',
# Op adds comm as a friend because of MPI2
'op' => 'Intracomm,Intercomm,Win,Comm',
'preq' => '',
@@ -860,6 +879,7 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
# We also need to know the derived classes. This gives the class that
# a class is derived from. Base classes are not included here.
%derived_class = ( 'graph' => 'Intracomm',
+ 'distgraph' => 'Intracomm',
'preq' => 'Request',
'greq' => 'Request',
'null' => 'Comm',
@@ -874,6 +894,8 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
# used to store the C version of the class handle.
%mytopclass = ( 'graph' => 'comm',
'graphcomm' => 'comm',
+ 'distgraph' => 'comm',
+ 'distgraphcomm' => 'comm',
'nullcomm' => 'comm',
'intracomm' => 'comm',
'intercomm' => 'comm',
@@ -958,6 +980,8 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
'intra-Split' => 'Comm_split',
'intra-Create_cart' => 'Cart_create',
'intra-Create_graph' => 'Graph_create',
+# 'intra-Dist_graph_create' => 'Dist_graph_create',
+# 'intra-Dist_graph_create_adjacent' => 'Dist_graph_create_adjacent',
'intra-Connect' => 'Comm_connect',
'intra-Spawn' => 'Comm_spawn',
'intra-Spawn_multiple' => 'Comm_spawn_multiple',
@@ -978,6 +1002,9 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
'graph-Get_neighbors_count' => 'Graph_neighbors_count',
'graph-Get_dims' => 'Graphdims_get',
'graph-Dup' => 'Comm_dup',
+ 'distgraph-Dup' => 'Comm_dup',
+ 'distgraph-Get_dist_neighbors' => 'Dist_graph_neighbors',
+ 'distgraph-Get_dist_neighbors_count' => 'Dist_graph_neighbors_count',
'op-Is_commutative' => 'Op_commutative',
'op-Reduce_local' => 'Reduce_local',
);
@@ -999,6 +1026,7 @@ if ( -s "../../mpi/romio/include/mpio.h.in" ) {
'Nullcomm' => 1,
'Cartcomm' => 1,
'Graphcomm' => 1,
+ 'Distgraphcomm' => 1,
'Prequest' => 1,
);
# These classes do not have a default intialization
@@ -1013,6 +1041,8 @@ if ($doFuncspec) {
# Use the MPI C++ binding names for the defered definitions
$defer_definition{"Create_cart"} = "Comm";
$defer_definition{"Create_graph"} = "Comm";
+# $defer_definition{"Dist_graph_create"} = "Comm";
+# $defer_definition{"Dist_graph_create_adjacent"} = "Comm";
$defer_definition{"Get_parent"} = "Comm";
$defer_definition{"Join"} = "Comm";
$defer_definition{"Merge"} = "Intercomm";
@@ -1084,6 +1114,7 @@ class Intercomm;
class Intracomm;
class Cartcomm;
class Graphcomm;
+class Distgraphcomm;
class File;
\n";
@@ -1826,7 +1857,7 @@ extern Datatype TWOINTEGER;
}
# Predefined integers
- foreach $int (BSEND_OVERHEAD, KEYVAL_INVALID, CART, GRAPH,
+ foreach $int (BSEND_OVERHEAD, KEYVAL_INVALID, CART, GRAPH, DIST_GRAPH,
IDENT, SIMILAR, CONGRUENT, UNEQUAL, PROC_NULL,
ANY_TAG, ANY_SOURCE, ROOT, TAG_UB, IO, HOST, WTIME_IS_GLOBAL,
UNIVERSE_SIZE, LASTUSEDCODE, APPNUM,
@@ -2236,11 +2267,16 @@ MPIR_Comm_delete_attr_cxx_proxy(
MPI::Cartcomm c = comm;
return f( c, keyval, value, extra_state );
}
- else
+ else if (ttype == MPI_GRAPH)
{
MPI::Graphcomm c = comm;
return f( c, keyval, value, extra_state );
}
+ else
+ {
+ MPI::Distgraphcomm c = comm;
+ return f( c, keyval, value, extra_state );
+ }
}
static
@@ -2289,11 +2325,16 @@ MPIR_Comm_copy_attr_cxx_proxy(
MPI::Cartcomm c = comm;
return f( c, keyval, extra_state, value, new_value, *(bool*)flag );
}
- else
+ else if (ttype == MPI_GRAPH)
{
MPI::Graphcomm c = comm;
return f( c, keyval, extra_state, value, new_value, *(bool*)flag );
}
+ else
+ {
+ MPI::Distgraphcomm c = comm;
+ return f( c, keyval, extra_state, value, new_value, *(bool*)flag );
+ }
}
@@ -2764,6 +2805,72 @@ void Datatype::Unpack( const void *inbuf, int insize, void *outbuf,
}\n";
print $OUTFD "\
+ Distgraphcomm Intracomm::Dist_graph_create( int v2, const int v3[], const int v4[], const int v5[], const int v6[], const MPI::Info &v7, bool v8 ) const
+ {
+ Distgraphcomm v9;
+ int l8;
+ l8 = (v8 == true) ? 1 : 0;\n";
+ &printCoverageStart( $OUTFD, "Dist_graph_create", 9 );
+ print $OUTFD "\
+ MPIX_CALLREF( this,
+ MPI_Dist_graph_create( (MPI_Comm) the_real_comm,
+ v2, (int *)v3, (int *)v4, (int *)v5, (int *)v6,
+ (MPI_Info)v7, l8, &(v9.the_real_comm) ));\n";
+ &printCoverageEnd( $OUTFD, "Dist_graph_create", 9 );
+ print $OUTFD "\
+ return v9;
+ }
+
+ Distgraphcomm Intracomm::Dist_graph_create( int v2, const int v3[], const int v4[], const int v5[], const MPI::Info &v7, bool v8 ) const
+ {
+ Distgraphcomm v9;
+ int l8;
+ l8 = (v8 == true) ? 1 : 0;\n";
+ &printCoverageStart( $OUTFD, "Dist_graph_create", 9 );
+ print $OUTFD "\
+ MPIX_CALLREF( this,
+ MPI_Dist_graph_create( (MPI_Comm) the_real_comm,
+ v2, (int *)v3, (int *)v4, (int *)v5, MPI_UNWEIGHTED,
+ (MPI_Info)v7, l8, &(v9.the_real_comm) ));\n";
+ &printCoverageEnd( $OUTFD, "Dist_graph_create", 9 );
+ print $OUTFD "\
+ return v9;
+ }
+
+ Distgraphcomm Intracomm::Dist_graph_create_adjacent( int v2, const int v3[], const int v4[], int v5, const int v6[], const int v7[], const MPI::Info &v8, bool v9 ) const
+ {
+ Distgraphcomm v10;
+ int l9;
+ l9 = (v9 == true) ? 1 : 0;\n";
+ &printCoverageStart( $OUTFD, "Dist_graph_create_adjacent", 9 );
+ print $OUTFD "\
+ MPIX_CALLREF( this,
+ MPI_Dist_graph_create_adjacent( (MPI_Comm) the_real_comm,
+ v2, (int *)v3, (int *)v4, v5, (int *)v6, (int *)v7,
+ (MPI_Info)v8, l9, &(v10.the_real_comm) ));\n";
+ &printCoverageEnd( $OUTFD, "Dist_graph_create_adjacent", 10 );
+ print $OUTFD "\
+ return v10;
+ }
+
+ Distgraphcomm Intracomm::Dist_graph_create_adjacent( int v2, const int v3[], int v5, const int v6[], const MPI::Info &v8, bool v9 ) const
+ {
+ Distgraphcomm v10;
+ int l9;
+ l9 = (v9 == true) ? 1 : 0;\n";
+ &printCoverageStart( $OUTFD, "Dist_graph_create_adjacent", 9 );
+ print $OUTFD "\
+ MPIX_CALLREF( this,
+ MPI_Dist_graph_create_adjacent( (MPI_Comm) the_real_comm,
+ v2, (int *)v3, MPI_UNWEIGHTED, v5, (int *)v6, MPI_UNWEIGHTED,
+ (MPI_Info)v8, l9, &(v10.the_real_comm) ));\n";
+ &printCoverageEnd( $OUTFD, "Dist_graph_create_adjacent", 10 );
+ print $OUTFD "\
+ return v10;
+ }\n";
+
+
+ print $OUTFD "\
Intracomm Intercomm::Merge( bool v2 ) const
{
Intracomm v3;
@@ -2887,7 +2994,7 @@ Grequest Grequest::Start( Grequest::Query_function *query_fn,
# Add the routine to initialize MPI datatype names for the C++ datatypes
print $OUTFD "
-/* MT FIXME: this is not thread-safe */
+// MT FIXME: this is not thread-safe
void MPIR_CXX_InitDatatypeNames( void )
{
static int _isInit = 1;
@@ -3437,6 +3544,10 @@ sub Graphcomm_methods {
my $OUTFD = $_[0];
&Clone_method( $OUTFD, "Graphcomm" );
}
+sub Distgraphcomm_methods {
+ my $OUTFD = $_[0];
+ &Clone_method( $OUTFD, "Distgraphcomm" );
+}
sub Intercomm_methods {
my $OUTFD = $_[0];
&Clone_method( $OUTFD, "Intercomm" );
@@ -3494,6 +3605,21 @@ Intercomm Spawn_multiple(int count, const char* array_of_commands[], const char*
}
";
+
+ # Because there are two versions of each of the dist graph
+ # create routines (fewer arguments for the case that uses
+ # MPI_UNWEIGHTED in C or Fortran), we must define these explicitly
+ # rather than generating them from the definitions.
+ print $OUTFD "\
+ virtual Distgraphcomm Dist_graph_create( int v2, const int v3[], const int v4[], const int v5[], const int v6[], const MPI::Info &v7, bool v8 ) const;
+
+ virtual Distgraphcomm Dist_graph_create( int v2, const int v3[], const int v4[], const int v5[], const MPI::Info &v7, bool v8 ) const;
+
+ virtual Distgraphcomm Dist_graph_create_adjacent( int v2, const int v3[], const int v4[], int v5, const int v6[], const int v7[], const MPI::Info &v8, bool v9 ) const;
+
+ virtual Distgraphcomm Dist_graph_create_adjacent( int v2, const int v3[], int v5, const int v6[], const MPI::Info &v8, bool v9 ) const;
+ \n";
+
}
sub Op_methods {
@@ -3964,7 +4090,7 @@ sub PrintRoutineCall {
my $useThis = 0;
my $TYPE = "OBJ", $obj = "COMM_WORLD";
if ($class eq "comm" || $class eq "inter" || $class eq "intra" ||
- $class eq "cart" || $class eq "graph") {
+ $class eq "cart" || $class eq "graph" || $class eq "distgraph") {
$useThis = 1;
$TYPE = "REF";
$obj = "this";
@@ -4074,7 +4200,7 @@ sub DoSpecialArgProcessing {
# }
}
else {
- print STDERR "Expected :$subname: for $routine but is was not defined\n";
+ print STDERR "Expected :$subname: for $routine but it was not defined\n";
}
}
return 0;
@@ -4141,6 +4267,13 @@ sub bool_in_methoddecl {
if (!$first) { print $OUTFD ", "; }
print $OUTFD "bool v$count";
}
+sub bool_out_methoddecl {
+ my $count = $_[0];
+ if (!$first) { print $OUTFD ", "; }
+ print $OUTFD "bool &v$count";
+}
+sub bool_out_cxxtoc {
+}
sub bool_out_decl {
my $count = $_[0];
print $OUTFD "$indent int l$count;\n";
@@ -4154,6 +4287,10 @@ sub bool_in_call {
my $count = $_[0];
print $OUTFD "l$count";
}
+sub bool_out_call {
+ my $count = $_[0];
+ print $OUTFD "&l$count";
+}
sub bool_out_ctocxx {
# my $cinvar = $_[0];
# my $cxxoutvar = $_[1];
diff --git a/src/binding/cxx/cxxdecl3.dat b/src/binding/cxx/cxxdecl3.dat
index ae76f4c..10618f2 100644
--- a/src/binding/cxx/cxxdecl3.dat
+++ b/src/binding/cxx/cxxdecl3.dat
@@ -270,11 +270,13 @@ intra-Dup Intracomm (,return) const
inter-Dup Intercomm (,return) const
cart-Dup Cartcomm (,return) const
graph-Dup Graphcomm (,return) const
+distgraph-Dup Distgraphcomm (,return) const
comm-Clone (,return)
intra-Clone (,return) const
inter-Clone (,return) const
cart-Clone (,return) const
graph-Clone (,return) const
+distgraph-Clone (,return) const
intra-Create Intracomm (,in:constref:Group ,return) const
intra-Split Intracomm (, , ,return) const
comm-Free void ()
@@ -286,6 +288,10 @@ inter-Merge Intracomm (,in:bool ,return) const
intra-Create_cart Cartcomm (, ,in:const ,in:boolarray:2 ,in:bool ,return) const
-Compute_dims void ( , , )
intra-Create_graph Graphcomm (, ,in:const ,in:const ,in:bool ,return) const
+#intra-Dist_graph_create Distgraphcomm (,,in:const,in:const,in:const,in:const,in:constref:Info,in:bool,return) const
+#intra-Dist_graph_create_adjacent Distgraphcomm (,,in:const,in:const,,in:const,in:const,in:constref:Info,in:bool,return) const
+##intra-Create_dist_graph Distgraphcomm (,,in:const,in:const,in:const,in:const,in:constref:Info,in:bool,return) const
+##intra-Create_dist_graph_adjacent Distgraphcomm (,,in:const,in:const,,in:const,in:const,in:constref:Info,in:bool,return) const
comm-Get_topology int (,return) const
graph-Get_dims void (, , ) const
graph-Get_topo void (, , , , ) const
@@ -295,6 +301,8 @@ cart-Get_cart_rank int (,in:const ,return) const
cart-Get_coords void (, , , ) const
graph-Get_neighbors_count int (, ,return) const
graph-Get_neighbors void (, , , ) const
+distgraph-Get_dist_neighbors_count void (,in:refint,in:refint,out:bool) const
+distgraph-Get_dist_graph_neighbors void (, , , , ,) const
cart-Shift void (, , ,in:refint ,in:refint ) const
cart-Sub Cartcomm ( ,in:boolarray:-10 ,return) const
cart-Map int (, ,in:const ,in:boolarray:2 ,return) const
diff --git a/test/mpi/configure.ac b/test/mpi/configure.ac
index 09b0427..bac91ac 100644
--- a/test/mpi/configure.ac
+++ b/test/mpi/configure.ac
@@ -1384,6 +1384,7 @@ AC_OUTPUT(maint/testmerge \
cxx/init/Makefile \
cxx/rma/Makefile \
cxx/spawn/Makefile \
+ cxx/topo/Makefile \
threads/Makefile \
threads/pt2pt/Makefile \
threads/util/Makefile \
diff --git a/test/mpi/cxx/coll/icallgathervx.cxx b/test/mpi/cxx/coll/icallgathervx.cxx
index dce5627..cc0be06 100644
--- a/test/mpi/cxx/coll/icallgathervx.cxx
+++ b/test/mpi/cxx/coll/icallgathervx.cxx
@@ -6,6 +6,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm allgatherv test";
diff --git a/test/mpi/cxx/coll/icallgatherx.cxx b/test/mpi/cxx/coll/icallgatherx.cxx
index 7a5c5ca..049e157 100644
--- a/test/mpi/cxx/coll/icallgatherx.cxx
+++ b/test/mpi/cxx/coll/icallgatherx.cxx
@@ -5,6 +5,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm allgather test";
diff --git a/test/mpi/cxx/coll/icbarrierx.cxx b/test/mpi/cxx/coll/icbarrierx.cxx
index 325d7fe..6907aa3 100644
--- a/test/mpi/cxx/coll/icbarrierx.cxx
+++ b/test/mpi/cxx/coll/icbarrierx.cxx
@@ -5,6 +5,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm barrier test";
diff --git a/test/mpi/cxx/coll/icbcastx.cxx b/test/mpi/cxx/coll/icbcastx.cxx
index 3d48511..e740f4f 100644
--- a/test/mpi/cxx/coll/icbcastx.cxx
+++ b/test/mpi/cxx/coll/icbcastx.cxx
@@ -6,6 +6,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm broadcast test";
diff --git a/test/mpi/cxx/coll/icgathervx.cxx b/test/mpi/cxx/coll/icgathervx.cxx
index 63ad5ec..6267ca5 100644
--- a/test/mpi/cxx/coll/icgathervx.cxx
+++ b/test/mpi/cxx/coll/icgathervx.cxx
@@ -6,6 +6,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm gatherv test";
diff --git a/test/mpi/cxx/coll/icgatherx.cxx b/test/mpi/cxx/coll/icgatherx.cxx
index 705a650..ec69a94 100644
--- a/test/mpi/cxx/coll/icgatherx.cxx
+++ b/test/mpi/cxx/coll/icgatherx.cxx
@@ -6,6 +6,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm gather test";
diff --git a/test/mpi/cxx/coll/icreducex.cxx b/test/mpi/cxx/coll/icreducex.cxx
index a8257ef..5757944 100644
--- a/test/mpi/cxx/coll/icreducex.cxx
+++ b/test/mpi/cxx/coll/icreducex.cxx
@@ -6,6 +6,7 @@
*/
#include "mpi.h"
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
static char MTEST_Descrip[] = "Simple intercomm reduce test";
diff --git a/test/mpi/cxx/pt2pt/bsend1cxx.cxx b/test/mpi/cxx/pt2pt/bsend1cxx.cxx
index 36cc650..ea299f4 100644
--- a/test/mpi/cxx/pt2pt/bsend1cxx.cxx
+++ b/test/mpi/cxx/pt2pt/bsend1cxx.cxx
@@ -8,8 +8,8 @@
bug fixes */
#include "mpi.h"
-#include "mpitestcxx.h"
#include "mpitestconf.h"
+#include "mpitestcxx.h"
#ifdef HAVE_IOSTREAM
// Not all C++ compilers have iostream instead of iostream.h
#include <iostream>
diff --git a/test/mpi/cxx/pt2pt/sendrecvx.cxx b/test/mpi/cxx/pt2pt/sendrecvx.cxx
index ee5d2c4..8931f94 100644
--- a/test/mpi/cxx/pt2pt/sendrecvx.cxx
+++ b/test/mpi/cxx/pt2pt/sendrecvx.cxx
@@ -12,9 +12,9 @@
/* #include <stdio.h> */
#include "mpi.h"
+#include "mpitestconf.h"
#include "mpitestcxx.h"
-#include "mpitestconf.h"
#ifdef HAVE_IOSTREAM
// Not all C++ compilers have iostream instead of iostream.h
#include <iostream>
diff --git a/test/mpi/cxx/topo/Makefile.am b/test/mpi/cxx/topo/Makefile.am
new file mode 100644
index 0000000..1729ba5
--- /dev/null
+++ b/test/mpi/cxx/topo/Makefile.am
@@ -0,0 +1,17 @@
+# -*- Mode: Makefile; -*-
+# vim: set ft=automake :
+#
+# (C) 2011 by Argonne National Laboratory.
+# See COPYRIGHT in top-level directory.
+#
+
+include $(top_srcdir)/Makefile_cxx.mtest
+
+EXTRA_DIST = testlist
+
+# avoid having to write many "foo_SOURCES = foo.cxx" lines because
+# automake is too limited to figure this out for itself
+AM_DEFAULT_SOURCE_EXT = .cxx
+
+noinst_PROGRAMS = distgraphcxx
+
diff --git a/test/mpi/cxx/topo/distgraphcxx.cxx b/test/mpi/cxx/topo/distgraphcxx.cxx
new file mode 100644
index 0000000..f3ead85
--- /dev/null
+++ b/test/mpi/cxx/topo/distgraphcxx.cxx
@@ -0,0 +1,100 @@
+/* -*- Mode: C++; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2013 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#include "mpi.h"
+#include "mpitestconf.h"
+#include "mpitestcxx.h"
+#ifdef HAVE_IOSTREAM
+// Not all C++ compilers have iostream instead of iostream.h
+#include <iostream>
+#ifdef HAVE_NAMESPACE_STD
+// Those that do often need the std namespace; otherwise, a bare "cout"
+// is likely to fail to compile
+using namespace std;
+#endif
+#else
+#include <iostream.h>
+#endif
+
+int main( int argc, char *argv[] )
+{
+ int errs = 0;
+ int indegree, outdegree, sources[4], dests[4], sweights[4], dweights[4];
+ int wrank, wsize;
+ MPI::Distgraphcomm dcomm;
+
+ MTest_Init();
+
+ // Create a graph where each process sends to rank+1, rank+3 and
+ // receives from rank - 2
+ wrank = MPI::COMM_WORLD.Get_rank();
+ wsize = MPI::COMM_WORLD.Get_size();
+ indegree = 0;
+ outdegree = 0;
+ if (wrank+1 < wsize) dests[outdegree++] = wrank+1;
+ if (wrank+3 < wsize) dests[outdegree++] = wrank+3;
+ if (wrank-2 >= 0) sources[indegree++] = wrank-2;
+
+ // Create with no reordering to test final ranks
+ dcomm = MPI::COMM_WORLD.Dist_graph_create_adjacent( indegree, sources,
+ outdegree, dests, MPI::INFO_NULL, false );
+
+
+ // Check that the created communicator has the properties specified
+ if (dcomm.Get_topology() != MPI_DIST_GRAPH) {
+ errs++;
+ cout << "Incorrect topology for dist_graph: " <<
+ dcomm.Get_topology() << "\n";
+ }
+ else {
+ int myindegree, myoutdegree;
+ bool myweighted;
+ dcomm.Get_dist_neighbors_count( myindegree, myoutdegree, myweighted );
+ if (myindegree != indegree) {
+ errs++;
+ cout << "Indegree is " << myindegree << " should be " << indegree
+ << "\n";
+ }
+ if (myoutdegree != outdegree) {
+ errs++;
+ cout << "Outdegree is " << myoutdegree << " should be " <<
+ outdegree << "\n";
+ }
+ if (myweighted) {
+ errs++;
+ cout << "Weighted is true, should be false\n";
+ }
+ }
+ if (!errs) {
+ int mysources[4], mysweights[4], mydests[4], mydweights[4], i;
+ dcomm.Get_dist_neighbors( 4, mysources, mysweights,
+ 4, mydests, mydweights );
+ // May need to sort mysources and mydests first
+ for (i=0; i<indegree; i++) {
+ if (mysources[i] != sources[i]) {
+ errs++;
+ }
+ }
+ for (i=0; i<outdegree; i++) {
+ if (mydests[i] != dests[i]) {
+ errs++;
+ }
+ }
+ }
+ dcomm.Free();
+
+ // ToDo:
+ // Test dup and clone.
+ // Test with weights.
+ // Test with reorder.
+ // Test Dist_graph (not just adjacent) with awkward specification.
+ // Note that there is no dist_graph_map function in MPI (!)
+
+ MTest_Finalize( errs );
+ MPI::Finalize();
+
+ return 0;
+}
diff --git a/test/mpi/cxx/topo/testlist b/test/mpi/cxx/topo/testlist
new file mode 100644
index 0000000..5f2f4cb
--- /dev/null
+++ b/test/mpi/cxx/topo/testlist
@@ -0,0 +1 @@
+distgraphcxx 8
diff --git a/test/mpi/errors/cxx/errhan/throwtest.cxx b/test/mpi/errors/cxx/errhan/throwtest.cxx
index 12a3ba9..b00468d 100644
--- a/test/mpi/errors/cxx/errhan/throwtest.cxx
+++ b/test/mpi/errors/cxx/errhan/throwtest.cxx
@@ -15,6 +15,7 @@
#include <mpi.h>
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
/* #define VERBOSE */
diff --git a/test/mpi/errors/cxx/io/throwtestfilex.cxx b/test/mpi/errors/cxx/io/throwtestfilex.cxx
index b28ca19..05ad038 100644
--- a/test/mpi/errors/cxx/io/throwtestfilex.cxx
+++ b/test/mpi/errors/cxx/io/throwtestfilex.cxx
@@ -15,6 +15,7 @@
#include <mpi.h>
#include <iostream>
+#include "mpitestconf.h"
#include "mpitestcxx.h"
/* #define VERBOSE */
diff --git a/test/mpi/include/mpitestcxx.h b/test/mpi/include/mpitestcxx.h
index a1301e7..57d15c2 100644
--- a/test/mpi/include/mpitestcxx.h
+++ b/test/mpi/include/mpitestcxx.h
@@ -4,6 +4,10 @@
* (C) 2001 by Argonne National Laboratory.
* See COPYRIGHT in top-level directory.
*/
+#ifndef MPITESTCONF_H_INCLUDED
+#error Required mpitestconf.h file not included first!
+#endif
+
#ifndef MTEST_INCLUDED
#define MTEST_INCLUDED
/*
-----------------------------------------------------------------------
Summary of changes:
src/binding/cxx/buildiface | 202 ++++++++++++++++++++++++-----
src/binding/cxx/cxxdecl3.dat | 6 +
test/mpi/configure.ac | 1 +
test/mpi/cxx/coll/icallgathervx.cxx | 1 +
test/mpi/cxx/coll/icallgatherx.cxx | 1 +
test/mpi/cxx/coll/icbarrierx.cxx | 1 +
test/mpi/cxx/coll/icbcastx.cxx | 1 +
test/mpi/cxx/coll/icgathervx.cxx | 1 +
test/mpi/cxx/coll/icgatherx.cxx | 1 +
test/mpi/cxx/coll/icreducex.cxx | 1 +
test/mpi/cxx/pt2pt/bsend1cxx.cxx | 2 +-
test/mpi/cxx/pt2pt/sendrecvx.cxx | 2 +-
test/mpi/cxx/testlist.in | 1 +
test/mpi/cxx/{spawn => topo}/Makefile.am | 5 +-
test/mpi/cxx/topo/distgraphcxx.cxx | 100 ++++++++++++++
test/mpi/cxx/topo/testlist | 1 +
test/mpi/errors/cxx/errhan/throwtest.cxx | 1 +
test/mpi/errors/cxx/io/throwtestfilex.cxx | 1 +
test/mpi/include/mpitestcxx.h | 4 +
19 files changed, 296 insertions(+), 37 deletions(-)
copy test/mpi/cxx/{spawn => topo}/Makefile.am (60%)
create mode 100644 test/mpi/cxx/topo/distgraphcxx.cxx
create mode 100644 test/mpi/cxx/topo/testlist
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-246-g438a49f
by noreply@mpich.org 21 May '13
by noreply@mpich.org 21 May '13
21 May '13
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 438a49fe9eba9cdb63bc4dc07cef3fc4031afd03 (commit)
via f44e3d4a8675182c6e1e21fd3d47c7bcd96af07e (commit)
via 038aa7cd0f7cda525ed40469bc5f0341822fa152 (commit)
from c3a8a817c9611dffc5b4bbdbbe6ad09aa5af6342 (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/438a49fe9eba9cdb63bc4dc07cef3fc40…
commit 438a49fe9eba9cdb63bc4dc07cef3fc4031afd03
Author: Michael Blocksome <blocksom(a)us.ibm.com>
Date: Tue May 21 09:01:19 2013 -0500
better bgq 'is local task' fix.
diff --git a/src/mpid/pamid/src/pamix/pamix.c b/src/mpid/pamid/src/pamix/pamix.c
index e213d3a..ab16295 100644
--- a/src/mpid/pamid/src/pamix/pamix.c
+++ b/src/mpid/pamid/src/pamix/pamix.c
@@ -113,7 +113,9 @@ PAMIX_Initialize(pami_client_t client)
PAMIX_Extensions.is_local_task.base = PAMI_EXTENSION_FUNCTION(uint8_t *, "base", PAMIX_Extensions.is_local_task.extension);
PAMIX_Extensions.is_local_task.stride = PAMI_EXTENSION_FUNCTION(uintptr_t, "stride", PAMIX_Extensions.is_local_task.extension);
PAMIX_Extensions.is_local_task.bitmask = PAMI_EXTENSION_FUNCTION(uintptr_t, "bitmask", PAMIX_Extensions.is_local_task.extension);
+#if defined(MPID_USE_NODE_IDS)
PAMIX_Extensions.is_local_task.node_info = PAMI_EXTENSION_FUNCTION(node_info_fn, "get_node_info", PAMIX_Extensions.is_local_task.extension);
+#endif
}
#if defined(PAMIX_IS_LOCAL_TASK_STRIDE) && defined(PAMIX_IS_LOCAL_TASK_BITMASK)
http://git.mpich.org/mpich.git/commitdiff/f44e3d4a8675182c6e1e21fd3d47c7bcd…
commit f44e3d4a8675182c6e1e21fd3d47c7bcd96af07e
Author: Michael Blocksome <blocksom(a)us.ibm.com>
Date: Tue May 21 08:56:07 2013 -0500
Revert "Do not assert when a pami extension is missing."
This reverts commit e4fa6c06477c329c83d71479b667a70a6ef570dc.
diff --git a/src/mpid/pamid/src/pamix/pamix.c b/src/mpid/pamid/src/pamix/pamix.c
index e274176..e213d3a 100644
--- a/src/mpid/pamid/src/pamix/pamix.c
+++ b/src/mpid/pamid/src/pamix/pamix.c
@@ -81,6 +81,7 @@ pamix_extension_info_t PAMIX_Extensions;
({ \
void* fn; \
fn = PAMI_Extension_symbol(ext, name); \
+ PAMIX_assert_always(fn != NULL); \
(type)fn; \
})
void
http://git.mpich.org/mpich.git/commitdiff/038aa7cd0f7cda525ed40469bc5f03418…
commit 038aa7cd0f7cda525ed40469bc5f0341822fa152
Author: Michael Blocksome <blocksom(a)us.ibm.com>
Date: Tue May 21 08:55:11 2013 -0500
compile fix for bgq unsupported MPID_Node_id_t
diff --git a/src/mpid/pamid/src/mpidi_util.c b/src/mpid/pamid/src/mpidi_util.c
index 2bd89db..e600dfe 100644
--- a/src/mpid/pamid/src/mpidi_util.c
+++ b/src/mpid/pamid/src/mpidi_util.c
@@ -1907,7 +1907,7 @@ void MPIDI_collsel_pami_tune_cleanup()
MPIDI_collsel_free_advisor_params(&MPIDI_Collsel_advisor_params);
}
-
+#if defined(MPID_USE_NODE_IDS)
#undef FUNCNAME
#define FUNCNAME MPID_Get_node_id
#undef FCNAME
@@ -1958,4 +1958,5 @@ int MPID_Get_max_node_id(MPID_Comm *comm, MPID_Node_id_t *max_id_p)
fn_fail:
return mpi_errno;
}
+#endif
#undef FUNCNAME
-----------------------------------------------------------------------
Summary of changes:
src/mpid/pamid/src/mpidi_util.c | 3 ++-
src/mpid/pamid/src/pamix/pamix.c | 3 +++
2 files changed, 5 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-243-gc3a8a81
by noreply@mpich.org 20 May '13
by noreply@mpich.org 20 May '13
20 May '13
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 c3a8a817c9611dffc5b4bbdbbe6ad09aa5af6342 (commit)
from e4fa6c06477c329c83d71479b667a70a6ef570dc (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/c3a8a817c9611dffc5b4bbdbbe6ad09aa…
commit c3a8a817c9611dffc5b4bbdbbe6ad09aa5af6342
Author: Charles Archer <archerc(a)us.ibm.com>
Date: Mon May 20 06:56:58 2013 -0400
PAMID device code for local task detection
diff --git a/src/mpid/pamid/src/mpidi_util.c b/src/mpid/pamid/src/mpidi_util.c
index ee8eda9..2bd89db 100644
--- a/src/mpid/pamid/src/mpidi_util.c
+++ b/src/mpid/pamid/src/mpidi_util.c
@@ -1908,3 +1908,54 @@ void MPIDI_collsel_pami_tune_cleanup()
}
+#undef FUNCNAME
+#define FUNCNAME MPID_Get_node_id
+#undef FCNAME
+#define FCNAME MPIDI_QUOTE(FUNCNAME)
+static int _g_max_node_id = -1;
+int MPID_Get_node_id(MPID_Comm *comm, int rank, MPID_Node_id_t *id_p)
+{
+ int mpi_errno = MPI_SUCCESS;
+ uint32_t node_id;
+ uint32_t offset;
+ uint32_t max_nodes;
+ if(!PAMIX_Extensions.is_local_task.node_info)
+ MPIU_ERR_SETANDJUMP(mpi_errno, MPI_ERR_OTHER, "**notimpl");
+
+ pami_result_t rc = PAMIX_Extensions.is_local_task.node_info(comm->vcr[rank]->taskid,
+ &node_id,&offset,&max_nodes);
+ if(rc != PAMI_SUCCESS) MPIU_ERR_SETANDJUMP(mpi_errno, MPI_ERR_OTHER, "**notimpl");
+ *id_p = node_id;
+
+ fn_fail:
+ return mpi_errno;
+}
+
+#undef FUNCNAME
+#define FUNCNAME MPID_Get_max_node_id
+#undef FCNAME
+#define FCNAME MPIDI_QUOTE(FUNCNAME)
+int MPID_Get_max_node_id(MPID_Comm *comm, MPID_Node_id_t *max_id_p)
+{
+ int mpi_errno = MPI_SUCCESS;
+ uint32_t node_id;
+ uint32_t offset;
+ uint32_t max_nodes;
+ if(_g_max_node_id == -1)
+ {
+ if(!PAMIX_Extensions.is_local_task.node_info)
+ MPIU_ERR_SETANDJUMP(mpi_errno, MPI_ERR_OTHER, "**notimpl");
+
+ pami_result_t rc = PAMIX_Extensions.is_local_task.node_info(comm->vcr[0]->taskid,
+ &node_id,&offset,&max_nodes);
+ if(rc != PAMI_SUCCESS) MPIU_ERR_SETANDJUMP(mpi_errno, MPI_ERR_OTHER, "**notimpl");
+ *max_id_p = max_nodes;
+ _g_max_node_id = max_nodes;
+ }
+ else
+ *max_id_p = _g_max_node_id;
+
+ fn_fail:
+ return mpi_errno;
+}
+#undef FUNCNAME
-----------------------------------------------------------------------
Summary of changes:
src/mpid/pamid/src/mpidi_util.c | 51 +++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-242-ge4fa6c0
by noreply@mpich.org 20 May '13
by noreply@mpich.org 20 May '13
20 May '13
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 e4fa6c06477c329c83d71479b667a70a6ef570dc (commit)
via dfef4246d7af2b17b75d816c077baca3bfab4b85 (commit)
from e21480612e97a8a8151801e87e2f3c46fe125359 (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/e4fa6c06477c329c83d71479b667a70a6…
commit e4fa6c06477c329c83d71479b667a70a6ef570dc
Author: Michael Blocksome <blocksom(a)us.ibm.com>
Date: Mon May 20 15:36:15 2013 -0500
Do not assert when a pami extension is missing.
diff --git a/src/mpid/pamid/src/pamix/pamix.c b/src/mpid/pamid/src/pamix/pamix.c
index e213d3a..e274176 100644
--- a/src/mpid/pamid/src/pamix/pamix.c
+++ b/src/mpid/pamid/src/pamix/pamix.c
@@ -81,7 +81,6 @@ pamix_extension_info_t PAMIX_Extensions;
({ \
void* fn; \
fn = PAMI_Extension_symbol(ext, name); \
- PAMIX_assert_always(fn != NULL); \
(type)fn; \
})
void
http://git.mpich.org/mpich.git/commitdiff/dfef4246d7af2b17b75d816c077baca3b…
commit dfef4246d7af2b17b75d816c077baca3bfab4b85
Author: Michael Blocksome <blocksom(a)us.ibm.com>
Date: Fri May 17 15:35:11 2013 -0500
Disable MPI_IN_PLACE for versions of pami that do not support PAMI_IN_PLACE.
Attempting to use 'MPI_IN_PLACE' with a pamid collective and a pami
library that does not support 'PAMI_IN_PLACE' will abort.
Versions of pami that support `PAMI_IN_PLACE` will be available in the
near future.
diff --git a/src/mpid/pamid/src/coll/allgather/mpido_allgather.c b/src/mpid/pamid/src/coll/allgather/mpido_allgather.c
index 36e7fe7..a65181c 100644
--- a/src/mpid/pamid/src/coll/allgather/mpido_allgather.c
+++ b/src/mpid/pamid/src/coll/allgather/mpido_allgather.c
@@ -289,6 +289,13 @@ MPIDO_Allgather(const void *sendbuf,
MPID_Comm * comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
/* *********************************
* Check the nature of the buffers
* *********************************
@@ -581,6 +588,13 @@ MPIDO_Allgather_simple(const void *sendbuf,
MPID_Comm * comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
/* *********************************
* Check the nature of the buffers
* *********************************
diff --git a/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c b/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c
index cec19d4..b8ab1ef 100644
--- a/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c
+++ b/src/mpid/pamid/src/coll/allgatherv/mpido_allgatherv.c
@@ -296,6 +296,13 @@ MPIDO_Allgatherv(const void *sendbuf,
MPID_Comm * comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Allgatherv\n");
/* function pointer to be used to point to approperiate algorithm */
@@ -616,6 +623,13 @@ MPIDO_Allgatherv_simple(const void *sendbuf,
MPID_Comm * comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Allgatherv_optimized\n");
/* function pointer to be used to point to approperiate algorithm */
/* Check the nature of the buffers */
diff --git a/src/mpid/pamid/src/coll/allreduce/mpido_allreduce.c b/src/mpid/pamid/src/coll/allreduce/mpido_allreduce.c
index b921f9d..41e5759 100644
--- a/src/mpid/pamid/src/coll/allreduce/mpido_allreduce.c
+++ b/src/mpid/pamid/src/coll/allreduce/mpido_allreduce.c
@@ -43,6 +43,13 @@ int MPIDO_Allreduce(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
void *sbuf;
TRACE_ERR("Entering mpido_allreduce\n");
pami_type_t pdt;
@@ -397,6 +404,13 @@ int MPIDO_Allreduce_simple(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
void *sbuf;
TRACE_ERR("Entering MPIDO_Allreduce_optimized\n");
pami_type_t pdt;
diff --git a/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c b/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c
index 8246b21..c3952a7 100644
--- a/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c
+++ b/src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c
@@ -42,6 +42,13 @@ int MPIDO_Alltoall(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Alltoall\n");
volatile unsigned active = 1;
MPID_Datatype *sdt, *rdt;
@@ -221,6 +228,13 @@ int MPIDO_Alltoall_simple(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Alltoall_optimized\n");
volatile unsigned active = 1;
void *snd_noncontig_buff = NULL, *rcv_noncontig_buff = NULL;
diff --git a/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c b/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c
index d2b1c14..76b45a5 100644
--- a/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c
+++ b/src/mpid/pamid/src/coll/alltoallv/mpido_alltoallv.c
@@ -43,6 +43,13 @@ int MPIDO_Alltoallv(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Alltoallv\n");
volatile unsigned active = 1;
void *snd_noncontig_buff = NULL, *rcv_noncontig_buff = NULL;
@@ -402,6 +409,13 @@ int MPIDO_Alltoallv_simple(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Alltoallv_optimized\n");
volatile unsigned active = 1;
int sndtypelen, rcvtypelen, snd_contig = 1, rcv_contig = 1;
diff --git a/src/mpid/pamid/src/coll/gather/mpido_gather.c b/src/mpid/pamid/src/coll/gather/mpido_gather.c
index 6e9fff3..7ff1807 100644
--- a/src/mpid/pamid/src/coll/gather/mpido_gather.c
+++ b/src/mpid/pamid/src/coll/gather/mpido_gather.c
@@ -130,6 +130,13 @@ int MPIDO_Gather(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype * data_ptr;
MPI_Aint true_lb = 0;
pami_xfer_t gather;
@@ -375,6 +382,13 @@ int MPIDO_Gather_simple(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype * data_ptr;
MPI_Aint true_lb = 0;
pami_xfer_t gather;
diff --git a/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c b/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c
index 8dddd72..d7b9764 100644
--- a/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c
+++ b/src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c
@@ -42,6 +42,13 @@ int MPIDO_Gatherv(const void *sendbuf,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Gatherv\n");
int rc;
int contig, rsize=0, ssize=0;
@@ -238,6 +245,13 @@ int MPIDO_Gatherv_simple(const void *sendbuf,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
TRACE_ERR("Entering MPIDO_Gatherv_optimized\n");
int snd_contig = 1, rcv_contig = 1;
void *snd_noncontig_buff = NULL, *rcv_noncontig_buff = NULL;
diff --git a/src/mpid/pamid/src/coll/reduce/mpido_reduce.c b/src/mpid/pamid/src/coll/reduce/mpido_reduce.c
index abc45fd..5a53b48 100644
--- a/src/mpid/pamid/src/coll/reduce/mpido_reduce.c
+++ b/src/mpid/pamid/src/coll/reduce/mpido_reduce.c
@@ -40,6 +40,13 @@ int MPIDO_Reduce(const void *sendbuf,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype *dt_null = NULL;
MPI_Aint true_lb = 0;
int dt_contig, tsize;
@@ -247,6 +254,13 @@ int MPIDO_Reduce_simple(const void *sendbuf,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype *dt_null = NULL;
MPI_Aint true_lb = 0;
int dt_contig, tsize;
diff --git a/src/mpid/pamid/src/coll/scan/mpido_scan.c b/src/mpid/pamid/src/coll/scan/mpido_scan.c
index f7a055b..429b355 100644
--- a/src/mpid/pamid/src/coll/scan/mpido_scan.c
+++ b/src/mpid/pamid/src/coll/scan/mpido_scan.c
@@ -96,6 +96,13 @@ int MPIDO_Doscan(const void *sendbuf, void *recvbuf,
int count, MPI_Datatype datatype,
MPI_Op op, MPID_Comm * comm_ptr, int *mpierrno, int exflag)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype *dt_null = NULL;
MPI_Aint true_lb = 0;
int dt_contig, tsize;
@@ -257,6 +264,13 @@ int MPIDO_Doscan_simple(const void *sendbuf, void *recvbuf,
int count, MPI_Datatype datatype,
MPI_Op op, MPID_Comm * comm_ptr, int *mpierrno, int exflag)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype *dt_null = NULL;
MPI_Aint true_lb = 0;
int dt_contig, tsize;
diff --git a/src/mpid/pamid/src/coll/scatter/mpido_scatter.c b/src/mpid/pamid/src/coll/scatter/mpido_scatter.c
index b2e9a9d..58d371f 100644
--- a/src/mpid/pamid/src/coll/scatter/mpido_scatter.c
+++ b/src/mpid/pamid/src/coll/scatter/mpido_scatter.c
@@ -108,6 +108,13 @@ int MPIDO_Scatter(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype * data_ptr;
MPI_Aint true_lb = 0;
int contig, nbytes = 0;
@@ -323,6 +330,13 @@ int MPIDO_Scatter_simple(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
MPID_Datatype * data_ptr;
const int rank = comm_ptr->rank;
int success = 1, snd_contig = 1, rcv_contig = 1;
diff --git a/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c b/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c
index fcafbe0..26b8056 100644
--- a/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c
+++ b/src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c
@@ -236,6 +236,13 @@ int MPIDO_Scatterv(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
int contig, tmp, pamidt = 1;
int ssize, rsize;
MPID_Datatype *dt_ptr = NULL;
@@ -445,6 +452,13 @@ int MPIDO_Scatterv_simple(const void *sendbuf,
MPID_Comm *comm_ptr,
int *mpierrno)
{
+#ifndef HAVE_PAMI_IN_PLACE
+ if (sendbuf == MPI_IN_PLACE)
+ {
+ MPID_Abort (NULL, 0, 1, "'MPI_IN_PLACE' requries support for `PAMI_IN_PLACE`");
+ return -1;
+ }
+#endif
int snd_contig = 1;
int rcv_contig = 1;
int send_size = 0, recv_size = 0;
diff --git a/src/mpid/pamid/subconfigure.m4 b/src/mpid/pamid/subconfigure.m4
index 39abcc1..57ef840 100644
--- a/src/mpid/pamid/subconfigure.m4
+++ b/src/mpid/pamid/subconfigure.m4
@@ -56,6 +56,7 @@ build_mpid_common_sched=yes
build_mpid_common_datatype=yes
build_mpid_common_thread=yes
+
])dnl end AM_COND_IF(BUILD_PAMID,...)
])dnl end PREREQ
AC_DEFUN([PAC_SUBCFG_BODY_]PAC_SUBCFG_AUTO_SUFFIX,[
@@ -186,6 +187,23 @@ PAC_APPEND_FLAG([-I${master_top_srcdir}/src/mpid/common/locks], [CPPFLAGS])
PAC_APPEND_FLAG([-I${master_top_srcdir}/src/mpid/common/thread], [CPPFLAGS])
PAC_APPEND_FLAG([-I${master_top_srcdir}/src/mpid/common/sched], [CPPFLAGS])
+dnl
+dnl Check for PAMI_IN_PLACE
+dnl
+AC_MSG_CHECKING([for PAMI_IN_PLACE support])
+have_pami_in_place=0
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include "pami.h"]],
+ [[void * foo = PAMI_IN_PLACE;]])],
+ have_pami_in_place=1
+)
+if test "$have_pami_in_place" != "0"; then
+ AC_DEFINE(HAVE_PAMI_IN_PLACE,1,[Define if PAMI_IN_PLACE is defined in pami.h])
+ AC_MSG_RESULT('yes')
+else
+ AC_DEFINE(PAMI_IN_PLACE,((void *) -1L),[Define if PAMI_IN_PLACE is not defined in pami.h])
+ AC_MSG_RESULT('no')
+fi
dnl
dnl Check for PAMI_CLIENT_NONCONTIG
-----------------------------------------------------------------------
Summary of changes:
.../pamid/src/coll/allgather/mpido_allgather.c | 14 ++++++++++++++
.../pamid/src/coll/allgatherv/mpido_allgatherv.c | 14 ++++++++++++++
.../pamid/src/coll/allreduce/mpido_allreduce.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/alltoall/mpido_alltoall.c | 14 ++++++++++++++
.../pamid/src/coll/alltoallv/mpido_alltoallv.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/gather/mpido_gather.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/gatherv/mpido_gatherv.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/reduce/mpido_reduce.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/scan/mpido_scan.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/scatter/mpido_scatter.c | 14 ++++++++++++++
src/mpid/pamid/src/coll/scatterv/mpido_scatterv.c | 14 ++++++++++++++
src/mpid/pamid/src/pamix/pamix.c | 1 -
src/mpid/pamid/subconfigure.m4 | 18 ++++++++++++++++++
13 files changed, 172 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.0.4-240-ge214806
by noreply@mpich.org 20 May '13
by noreply@mpich.org 20 May '13
20 May '13
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 e21480612e97a8a8151801e87e2f3c46fe125359 (commit)
from 906f5471d35642ca2caee406e24ea19597cb7bf5 (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/e21480612e97a8a8151801e87e2f3c46f…
commit e21480612e97a8a8151801e87e2f3c46fe125359
Author: William Gropp <wgropp(a)illinois.edu>
Date: Mon May 20 11:22:56 2013 -0500
Fix for missing test that getsid requires a declaration.
Observed that while there was a "NEEDS_DECL" for getsid in the
pm/util programs, there was no test for this case (getsid is not
defined by default and requires the correct level of XOPEN_SOURCE).
Also removed now extraneous tests from remshell subconfigure.
diff --git a/src/pm/remshell/subconfigure.m4 b/src/pm/remshell/subconfigure.m4
index e78d54a..6d3b28e 100644
--- a/src/pm/remshell/subconfigure.m4
+++ b/src/pm/remshell/subconfigure.m4
@@ -128,7 +128,8 @@ if test "$ac_cv_func_ptrace" = yes ; then
fi
fi
-AC_CHECK_FUNCS([setsid isatty getsid])
+dnl The test for getsid etc is in src/pm/util (see the subconfigure.m4 there)
+dnl AC_CHECK_FUNCS([setsid isatty getsid])
if test "$enable_newsession" = "yes" ; then
AC_DEFINE([USE_NEW_SESSION],[1],[Define if mpiexec should create a new process group session])
fi
diff --git a/src/pm/util/subconfigure.m4 b/src/pm/util/subconfigure.m4
index 5f10b78..f3032ef 100644
--- a/src/pm/util/subconfigure.m4
+++ b/src/pm/util/subconfigure.m4
@@ -52,6 +52,9 @@ fi
#
# Cygwin has setsid but not getsid
AC_CHECK_FUNCS(setsid isatty getsid)
+# See if we need to define getsid (in the case that the above XOPEN
+# definitions have not been made.
+PAC_FUNC_NEEDS_DECL([#include <unistd.h>],getsid)
if test "$enable_newsession" = "yes" ; then
AC_DEFINE(USE_NEW_SESSION,1,[Define if mpiexec should create a new process group session])
fi
-----------------------------------------------------------------------
Summary of changes:
src/pm/remshell/subconfigure.m4 | 3 ++-
src/pm/util/subconfigure.m4 | 3 +++
2 files changed, 5 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0