Hello,
Just like r29736, I believe that there are some missing tests in
ompi/mca/coll/libnbc/nbc_iscatterv.c and ompi/mca/coll/libnbc/nbc_igatherv.c
Thoughts ?
Pierre
Index: nbc_igatherv.c
===================================================================
--- nbc_igatherv.c (revision 29756)
+++ nbc_igatherv.c (working copy)
@@ -36,8 +36,10 @@
if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_rank() (%i)\n", res);
return res; }
res = MPI_Comm_size(comm, &p);
if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_rank() (%i)\n", res);
return res; }
- res = MPI_Type_extent(recvtype, &rcvext);
- if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent() (%i)\n",
res); return res; }
+ if (rank == root) {
+ res = MPI_Type_extent(recvtype, &rcvext);
+ if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent()
(%i)\n", res); return res; }
+ }
schedule = (NBC_Schedule*)malloc(sizeof(NBC_Schedule));
if (NULL == schedule) { printf("Error in malloc() (%i)\n", res); return res; }
Index: nbc_iscatterv.c
===================================================================
--- nbc_iscatterv.c (revision 29756)
+++ nbc_iscatterv.c (working copy)
@@ -38,8 +38,10 @@
if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_rank() (%i)\n", res);
return res; }
res = MPI_Comm_size(comm, &p);
if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Comm_size() (%i)\n", res);
return res; }
- res = MPI_Type_extent(sendtype, &sndext);
- if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent() (%i)\n",
res); return res; }
+ if (rank == root) {
+ res = MPI_Type_extent(sendtype, &sndext);
+ if (MPI_SUCCESS != res) { printf("MPI Error in MPI_Type_extent()
(%i)\n", res); return res; }
+ }
schedule = (NBC_Schedule*)malloc(sizeof(NBC_Schedule));
if (NULL == schedule) { printf("Error in malloc()\n"); return res; }