Skip to content

Commit a133ab0

Browse files
authored
Fix tests (#47)
* tests/mpi/test_mpi_indexed_gets.c: Fix reception buffer initialization loc_buf was completely uninitialized, while the second and third loop nests are checking that the values are 1.0 + rank. With luck it would be zero, and thus the actual - expected > 1e-10 check would pass (since the difference is then negative). With less luck the check would spuriously fail for the part that is not overwritten by the MPI_Get. Signed-off-by: Samuel Thibault <[email protected]> * tests/mpi: Fix comparison of floating-double types In case the actual value is zero and the expected value is positive, the check would spuriously succeed. Signed-off-by: Samuel Thibault <[email protected]> * tests/mpi/test_mpi_indexed_gets.c: Strengthen test Now that it is fixed, we can make it actually perform strided accesses. Signed-off-by: Samuel Thibault <[email protected]> --------- Signed-off-by: Samuel Thibault <[email protected]>
1 parent f1c4dae commit a133ab0

File tree

5 files changed

+17
-15
lines changed

5 files changed

+17
-15
lines changed

tests/mpi/test_mpi_accs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ int main(int argc, char **argv) {
5555
for (j = 0; j < YDIM; j++) {
5656
const double actual = *(buffer + i + j*XDIM);
5757
const double expected = (1.0 + rank) + (1.0 + ((rank+nranks-1)%nranks)) * (ITERATIONS);
58-
if (actual - expected > 1e-10) {
58+
if (fabs(actual - expected) > 1e-10) {
5959
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
6060
rank, j, i, expected, actual);
6161
errors++;

tests/mpi/test_mpi_indexed_accs.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ int main(int argc, char **argv) {
9797
for (j = 0; j < SUB_YDIM; j++) {
9898
const double actual = *(win_buf + i + j*XDIM);
9999
const double expected = (1.0 + rank) + (1.0 + ((rank+nranks-1)%nranks)) * (ITERATIONS);
100-
if (actual - expected > 1e-10) {
100+
if (fabs(actual - expected) > 1e-10) {
101101
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
102102
rank, j, i, expected, actual);
103103
errors++;
@@ -109,7 +109,7 @@ int main(int argc, char **argv) {
109109
for (j = 0; j < SUB_YDIM; j++) {
110110
const double actual = *(win_buf + i + j*XDIM);
111111
const double expected = 1.0 + rank;
112-
if (actual - expected > 1e-10) {
112+
if (fabs(actual - expected) > 1e-10) {
113113
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
114114
rank, j, i, expected, actual);
115115
errors++;
@@ -121,7 +121,7 @@ int main(int argc, char **argv) {
121121
for (j = SUB_YDIM; j < YDIM; j++) {
122122
const double actual = *(win_buf + i + j*XDIM);
123123
const double expected = 1.0 + rank;
124-
if (actual - expected > 1e-10) {
124+
if (fabs(actual - expected) > 1e-10) {
125125
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
126126
rank, j, i, expected, actual);
127127
errors++;

tests/mpi/test_mpi_indexed_gets.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
#define XDIM 8
2121
#define YDIM 1024
22-
#define SUB_XDIM 8
22+
#define SUB_XDIM 4
2323
#define SUB_YDIM 256
2424

2525
int main(int argc, char **argv) {
@@ -44,8 +44,10 @@ int main(int argc, char **argv) {
4444
if (rank == 0)
4545
printf("MPI RMA Strided Get Test:\n");
4646

47-
for (i = 0; i < XDIM*YDIM; i++)
47+
for (i = 0; i < XDIM*YDIM; i++) {
4848
*(win_buf + i) = 1.0 + rank;
49+
*(loc_buf + i) = 1.0 + rank;
50+
}
4951

5052
MPI_Win_create(win_buf, bufsize, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &buf_win);
5153

@@ -88,7 +90,7 @@ int main(int argc, char **argv) {
8890
for (j = 0; j < SUB_YDIM; j++) {
8991
const double actual = *(loc_buf + i + j*XDIM);
9092
const double expected = (1.0 + peer);
91-
if (actual - expected > 1e-10) {
93+
if (fabs(actual - expected) > 1e-10) {
9294
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
9395
rank, j, i, expected, actual);
9496
errors++;
@@ -100,7 +102,7 @@ int main(int argc, char **argv) {
100102
for (j = 0; j < SUB_YDIM; j++) {
101103
const double actual = *(loc_buf + i + j*XDIM);
102104
const double expected = 1.0 + rank;
103-
if (actual - expected > 1e-10) {
105+
if (fabs(actual - expected) > 1e-10) {
104106
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
105107
rank, j, i, expected, actual);
106108
errors++;
@@ -112,7 +114,7 @@ int main(int argc, char **argv) {
112114
for (j = SUB_YDIM; j < YDIM; j++) {
113115
const double actual = *(loc_buf + i + j*XDIM);
114116
const double expected = 1.0 + rank;
115-
if (actual - expected > 1e-10) {
117+
if (fabs(actual - expected) > 1e-10) {
116118
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
117119
rank, j, i, expected, actual);
118120
errors++;

tests/mpi/test_mpi_indexed_puts_gets.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
9292
for (j = 0; j < SUB_YDIM; j++) {
9393
const double actual = *(win_buf + i + j*XDIM);
9494
const double expected = (1.0 + ((rank+nranks-1)%nranks));
95-
if (actual - expected > 1e-10) {
95+
if (fabs(actual - expected) > 1e-10) {
9696
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
9797
rank, j, i, expected, actual);
9898
errors++;
@@ -104,7 +104,7 @@ int main(int argc, char **argv) {
104104
for (j = 0; j < SUB_YDIM; j++) {
105105
const double actual = *(win_buf + i + j*XDIM);
106106
const double expected = 1.0 + rank;
107-
if (actual - expected > 1e-10) {
107+
if (fabs(actual - expected) > 1e-10) {
108108
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
109109
rank, j, i, expected, actual);
110110
errors++;
@@ -116,7 +116,7 @@ int main(int argc, char **argv) {
116116
for (j = SUB_YDIM; j < YDIM; j++) {
117117
const double actual = *(win_buf + i + j*XDIM);
118118
const double expected = 1.0 + rank;
119-
if (actual - expected > 1e-10) {
119+
if (fabs(actual - expected) > 1e-10) {
120120
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
121121
rank, j, i, expected, actual);
122122
errors++;

tests/mpi/test_mpi_subarray_accs.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
9090
for (j = 0; j < SUB_YDIM; j++) {
9191
const double actual = *(win_buf + i + j*XDIM);
9292
const double expected = (1.0 + rank) + (1.0 + ((rank+nranks-1)%nranks)) * (ITERATIONS);
93-
if (actual - expected > 1e-10) {
93+
if (fabs(actual - expected) > 1e-10) {
9494
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
9595
rank, j, i, expected, actual);
9696
errors++;
@@ -102,7 +102,7 @@ int main(int argc, char **argv) {
102102
for (j = 0; j < SUB_YDIM; j++) {
103103
const double actual = *(win_buf + i + j*XDIM);
104104
const double expected = 1.0 + rank;
105-
if (actual - expected > 1e-10) {
105+
if (fabs(actual - expected) > 1e-10) {
106106
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
107107
rank, j, i, expected, actual);
108108
errors++;
@@ -114,7 +114,7 @@ int main(int argc, char **argv) {
114114
for (j = SUB_YDIM; j < YDIM; j++) {
115115
const double actual = *(win_buf + i + j*XDIM);
116116
const double expected = 1.0 + rank;
117-
if (actual - expected > 1e-10) {
117+
if (fabs(actual - expected) > 1e-10) {
118118
printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
119119
rank, j, i, expected, actual);
120120
errors++;

0 commit comments

Comments
 (0)