Bug#1068100: armci-mpi: autopkgtest spuriously fails
Samuel Thibault
sthibault at debian.org
Sat Mar 30 22:41:43 GMT 2024
Samuel Thibault, le sam. 30 mars 2024 16:55:11 +0100, a ecrit:
> I have forwarded a fix to upstream
> https://github.com/pmodels/armci-mpi/pull/47
> which is already merged.
>
> Unless somebody objects, I'll NMU it.
I have uploaded the attached changes to delayed/2.
Samuel
-------------- next part --------------
diff -Nru armci-mpi-0.3.1~beta/debian/changelog armci-mpi-0.3.1~beta/debian/changelog
--- armci-mpi-0.3.1~beta/debian/changelog 2023-03-19 14:08:54.000000000 +0100
+++ armci-mpi-0.3.1~beta/debian/changelog 2024-03-30 23:17:18.000000000 +0100
@@ -1,3 +1,12 @@
+armci-mpi (0.3.1~beta-7.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * patches/fix-test.patch: Fix test_mpi_indexed_gets.c test and strengthen
+ the others. Closes: #1066227.
+ * patches/ftbfs.patch: Fix build with qa=+bug-implicit-func.
+
+ -- Samuel Thibault <sthibault at debian.org> Sat, 30 Mar 2024 23:17:18 +0100
+
armci-mpi (0.3.1~beta-7) unstable; urgency=medium
* Team upload.
diff -Nru armci-mpi-0.3.1~beta/debian/patches/fix-test.patch armci-mpi-0.3.1~beta/debian/patches/fix-test.patch
--- armci-mpi-0.3.1~beta/debian/patches/fix-test.patch 1970-01-01 01:00:00.000000000 +0100
+++ armci-mpi-0.3.1~beta/debian/patches/fix-test.patch 2024-03-30 23:17:18.000000000 +0100
@@ -0,0 +1,193 @@
+https://github.com/pmodels/armci-mpi/pull/47
+
+commit 80cc91748392aec9eced295eb531548a565dac0e
+Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Date: Sat Mar 30 16:35:11 2024 +0100
+
+ 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 <samuel.thibault at ens-lyon.org>
+
+commit 9c0f6b08ba706a7c2f3e74d325cfd2a010300108
+Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Date: Sat Mar 30 16:38:58 2024 +0100
+
+ 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 <samuel.thibault at ens-lyon.org>
+
+commit cd001a46801fed9f406ea57238a131b0a0e063fe
+Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
+Date: Sat Mar 30 16:41:58 2024 +0100
+
+ 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 <samuel.thibault at ens-lyon.org>
+
+---
+ tests/mpi/test_mpi_accs.c | 2 +-
+ tests/mpi/test_mpi_indexed_accs.c | 6 +++---
+ tests/mpi/test_mpi_indexed_gets.c | 12 +++++++-----
+ tests/mpi/test_mpi_indexed_puts_gets.c | 6 +++---
+ tests/mpi/test_mpi_subarray_accs.c | 6 +++---
+ 5 files changed, 17 insertions(+), 15 deletions(-)
+
+--- a/tests/mpi/test_mpi_indexed_gets.c
++++ b/tests/mpi/test_mpi_indexed_gets.c
+@@ -19,7 +19,7 @@
+
+ #define XDIM 8
+ #define YDIM 1024
+-#define SUB_XDIM 8
++#define SUB_XDIM 4
+ #define SUB_YDIM 256
+
+ int main(int argc, char **argv) {
+@@ -44,8 +44,10 @@ int main(int argc, char **argv) {
+ if (rank == 0)
+ printf("MPI RMA Strided Get Test:\n");
+
+- for (i = 0; i < XDIM*YDIM; i++)
++ for (i = 0; i < XDIM*YDIM; i++) {
+ *(win_buf + i) = 1.0 + rank;
++ *(loc_buf + i) = 1.0 + rank;
++ }
+
+ MPI_Win_create(win_buf, bufsize, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &buf_win);
+
+@@ -88,7 +90,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(loc_buf + i + j*XDIM);
+ const double expected = (1.0 + peer);
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -100,7 +102,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(loc_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -112,7 +114,7 @@ int main(int argc, char **argv) {
+ for (j = SUB_YDIM; j < YDIM; j++) {
+ const double actual = *(loc_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+--- a/tests/mpi/test_mpi_accs.c
++++ b/tests/mpi/test_mpi_accs.c
+@@ -55,7 +55,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < YDIM; j++) {
+ const double actual = *(buffer + i + j*XDIM);
+ const double expected = (1.0 + rank) + (1.0 + ((rank+nranks-1)%nranks)) * (ITERATIONS);
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+--- a/tests/mpi/test_mpi_indexed_accs.c
++++ b/tests/mpi/test_mpi_indexed_accs.c
+@@ -97,7 +97,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = (1.0 + rank) + (1.0 + ((rank+nranks-1)%nranks)) * (ITERATIONS);
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -109,7 +109,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -121,7 +121,7 @@ int main(int argc, char **argv) {
+ for (j = SUB_YDIM; j < YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+--- a/tests/mpi/test_mpi_indexed_puts_gets.c
++++ b/tests/mpi/test_mpi_indexed_puts_gets.c
+@@ -92,7 +92,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = (1.0 + ((rank+nranks-1)%nranks));
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -104,7 +104,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -116,7 +116,7 @@ int main(int argc, char **argv) {
+ for (j = SUB_YDIM; j < YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+--- a/tests/mpi/test_mpi_subarray_accs.c
++++ b/tests/mpi/test_mpi_subarray_accs.c
+@@ -90,7 +90,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = (1.0 + rank) + (1.0 + ((rank+nranks-1)%nranks)) * (ITERATIONS);
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -102,7 +102,7 @@ int main(int argc, char **argv) {
+ for (j = 0; j < SUB_YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
+@@ -114,7 +114,7 @@ int main(int argc, char **argv) {
+ for (j = SUB_YDIM; j < YDIM; j++) {
+ const double actual = *(win_buf + i + j*XDIM);
+ const double expected = 1.0 + rank;
+- if (actual - expected > 1e-10) {
++ if (fabs(actual - expected) > 1e-10) {
+ printf("%d: Data validation failed at [%d, %d] expected=%f actual=%f\n",
+ rank, j, i, expected, actual);
+ errors++;
diff -Nru armci-mpi-0.3.1~beta/debian/patches/ftbfs.patch armci-mpi-0.3.1~beta/debian/patches/ftbfs.patch
--- armci-mpi-0.3.1~beta/debian/patches/ftbfs.patch 1970-01-01 01:00:00.000000000 +0100
+++ armci-mpi-0.3.1~beta/debian/patches/ftbfs.patch 2024-03-30 23:17:18.000000000 +0100
@@ -0,0 +1,71 @@
+https://github.com/pmodels/armci-mpi/pull/48
+
+---
+ tests/contrib/non-blocking/overlap.c | 1 +
+ tests/mpi/test_mpi_accs.c | 1 +
+ tests/mpi/test_mpi_indexed_accs.c | 1 +
+ tests/mpi/test_mpi_indexed_gets.c | 1 +
+ tests/mpi/test_mpi_indexed_puts_gets.c | 1 +
+ tests/mpi/test_mpi_subarray_accs.c | 1 +
+ 6 files changed, 6 insertions(+)
+
+--- a/tests/contrib/non-blocking/overlap.c
++++ b/tests/contrib/non-blocking/overlap.c
+@@ -37,6 +37,7 @@
+ #include <unistd.h>
+ #include <math.h>
+ #include <sys/time.h>
++#include <time.h>
+ #include <string.h>
+ #include <assert.h>
+
+--- a/tests/mpi/test_mpi_accs.c
++++ b/tests/mpi/test_mpi_accs.c
+@@ -4,6 +4,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <math.h>
+ #include <mpi.h>
+
+ #define XDIM 1024
+--- a/tests/mpi/test_mpi_indexed_accs.c
++++ b/tests/mpi/test_mpi_indexed_accs.c
+@@ -15,6 +15,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <math.h>
+ #include <mpi.h>
+
+ #define XDIM 16
+--- a/tests/mpi/test_mpi_indexed_gets.c
++++ b/tests/mpi/test_mpi_indexed_gets.c
+@@ -15,6 +15,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <math.h>
+ #include <mpi.h>
+
+ #define XDIM 8
+--- a/tests/mpi/test_mpi_indexed_puts_gets.c
++++ b/tests/mpi/test_mpi_indexed_puts_gets.c
+@@ -15,6 +15,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <math.h>
+ #include <mpi.h>
+
+ #define XDIM 8
+--- a/tests/mpi/test_mpi_subarray_accs.c
++++ b/tests/mpi/test_mpi_subarray_accs.c
+@@ -15,6 +15,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <math.h>
+ #include <mpi.h>
+
+ #define XDIM 1024
diff -Nru armci-mpi-0.3.1~beta/debian/patches/series armci-mpi-0.3.1~beta/debian/patches/series
--- armci-mpi-0.3.1~beta/debian/patches/series 2023-03-19 14:08:54.000000000 +0100
+++ armci-mpi-0.3.1~beta/debian/patches/series 2024-03-30 23:17:18.000000000 +0100
@@ -1 +1,3 @@
build_mpi_flavor.patch
+fix-test.patch
+ftbfs.patch
More information about the debian-science-maintainers
mailing list