[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#687736: unblock: cp2k/2.2.426-6



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package cp2k, it fixes #686874, namely segfaults in most
test cases on i386 due to not-16byte-aligned arrays being passed to
(since recently) SSE2-using fftw3, see

https://buildd.debian.org/status/fetch.php?pkg=cp2k&arch=i386&ver=2.2.426-5&stamp=1346699763

|-------------------------regtesting cp2k----------------------------------
|Starting tests in
|/build/buildd-cp2k_2.2.426-5-i386-rUGkvz/cp2k-2.2.426/tools/..//TEST-Linux-i686-gfortran-popt-2012-09-03T19:08:13+0000/tests/QS/regtest-hfx
|Running H2O-hfx-1.inp
|Running H2O-hfx-2.inp
|Running H2O-hfx-3.inp
|./do_regtest: line 146: 29062 Segmentation fault      ${cp2k_prefix}
|${input_file} ${cp2k_postfix} &>${output_file}
|Running CH-hfx-md.inp
|./do_regtest: line 146: 29079 Segmentation fault      ${cp2k_prefix}
|${input_file} ${cp2k_postfix} &>${output_file}
|[...]
|number of FAILED  tests 72
|number of WRONG   tests 28
|number of CORRECT tests 141

vs.

https://buildd.debian.org/status/fetch.php?pkg=cp2k&arch=i386&ver=2.2.426-6&stamp=1346979234

|-------------------------regtesting cp2k----------------------------------
|Starting tests in
|/build/buildd-cp2k_2.2.426-6-i386-bTTI0T/cp2k-2.2.426/tools/..//TEST-Linux-i686-gfortran-popt-2012-09-07T00:42:13+0000/tests/QS/regtest-hfx
|Running H2O-hfx-1.inp
|Running H2O-hfx-2.inp
|Running H2O-hfx-3.inp
|Running CH-hfx-md.inp
|[...]
|number of FAILED  tests 1
|number of WRONG   tests 37
|number of CORRECT tests 203

The one remaining FAILED test is likely due to a timeout on the buildd,
the cp2k regression testsuite is setting a timer for each test, it
succeeds with no FAILED tests on my local i386 sbuild.

The issue had been diagnosed by the fftw3 maintainer (Julian Taylor) and
discussed with upstream; they have since committed a more disruptive
patch, but the current minimal patch should be fine.

unblock cp2k/2.2.426-6


Thanks in advance, regards

Michael
diff -Nru cp2k-2.2.426/debian/changelog cp2k-2.2.426/debian/changelog
--- cp2k-2.2.426/debian/changelog	2012-09-03 19:18:02.000000000 +0200
+++ cp2k-2.2.426/debian/changelog	2012-09-07 00:33:20.000000000 +0200
@@ -1,3 +1,16 @@
+cp2k (2.2.426-6) unstable; urgency=low
+
+  * debian/rules (FFTW3_ALIGN): New variable, set to '-D__FFTW3_UNALIGNED' on
+    i386.
+  * debian/patches/makeflags.patch: Include $(FFTW3_ALIGN) environment
+    variable in $(DFLAGS).
+  * debian/patches/fftw3_unaligned.patch: New patch, unconditionally adds the
+    FFTW_UNALIGNED flag to the FFTW3 plan if __FFTW3_UNALIGNED is defined,
+    thanks to Julian Taylor (Closes: #686874).
+  * debian/control (Description): Added Metadynamics to capabilities.
+
+ -- Michael Banck <mbanck@debian.org>  Fri, 07 Sep 2012 00:27:39 +0200
+
 cp2k (2.2.426-5) unstable; urgency=low
 
   [ Michael Banck ]
diff -Nru cp2k-2.2.426/debian/control cp2k-2.2.426/debian/control
--- cp2k-2.2.426/debian/control	2012-09-03 19:16:24.000000000 +0200
+++ cp2k-2.2.426/debian/control	2012-09-06 21:43:40.000000000 +0200
@@ -71,6 +71,8 @@
   * Classical Molecular Dynamics (MD) simulations in microcanonical ensemble
     (NVE) or canonical ensmble (NVT) with Nose-Hover and canonical sampling
     through velocity rescaling (CSVR) thermostats
+  * Metadynamics including well-tempered Metadynamics for Free Energy
+    calculations
   * Classical Force-Field (MM) simulations
   * Monte-Carlo (MC) KS-DFT simulations
   * HFX module for linear-scaling MD simulations using hybrid functionals
diff -Nru cp2k-2.2.426/debian/patches/fftw3_unaligned.patch cp2k-2.2.426/debian/patches/fftw3_unaligned.patch
--- cp2k-2.2.426/debian/patches/fftw3_unaligned.patch	1970-01-01 01:00:00.000000000 +0100
+++ cp2k-2.2.426/debian/patches/fftw3_unaligned.patch	2012-09-06 23:18:44.000000000 +0200
@@ -0,0 +1,30 @@
+--- ./src/fft_lib/fftw3_lib.F.orig	2012-09-06 23:09:54.067428479 +0200
++++ ./src/fft_lib/fftw3_lib.F	2012-09-06 23:18:17.691429179 +0200
+@@ -127,9 +127,13 @@
+    STOP "fftw3_create_plan_3d"
+   END SELECT
+ 
++#if defined ( __FFTW3_UNALIGNED )
++  fftw_plan_type = fftw_plan_type + FFTW_UNALIGNED
++#else
+   IF ( .NOT. aligned ) THEN
+     fftw_plan_type = fftw_plan_type + FFTW_UNALIGNED
+   END IF
++#endif
+ 
+   n1 = plan%n_3d(1)
+   n2 = plan%n_3d(2)
+@@ -257,9 +261,13 @@
+    STOP "fftw3_create_plan_1dm"
+   END SELECT
+ 
++#if defined ( __FFTW3_UNALIGNED )
++  fftw_plan_type = fftw_plan_type + FFTW_UNALIGNED
++#else
+   IF ( .NOT. aligned ) THEN
+     fftw_plan_type = fftw_plan_type + FFTW_UNALIGNED
+   END IF
++#endif
+ 
+ num_threads = 1
+ !$omp parallel default(none), &
diff -Nru cp2k-2.2.426/debian/patches/makeflags.patch cp2k-2.2.426/debian/patches/makeflags.patch
--- cp2k-2.2.426/debian/patches/makeflags.patch	2012-02-19 13:55:30.000000000 +0100
+++ cp2k-2.2.426/debian/patches/makeflags.patch	2012-09-06 23:36:31.000000000 +0200
@@ -13,7 +13,7 @@
 +
 +AR       = ar -r
 +
-+DFLAGS   = -D__GFORTRAN -D__FFTSG -D__FFTW3 -D__LIBINT
++DFLAGS   = -D__GFORTRAN -D__FFTSG -D__FFTW3 $(FFTW3_ALIGN) -D__LIBINT
 +CPPFLAGS = -C -traditional $(DFLAGS)
 +FCFLAGS  = -g -Wall -O2 -ffast-math -funroll-loops -ftree-vectorize -ffree-form -ffree-line-length-none $(DFLAGS)
 +LDFLAGS  = $(FCFLAGS) 
@@ -35,7 +35,7 @@
 +
 +AR       = ar -r
 +
-+DFLAGS   = -D__GFORTRAN -D__FFTSG -D__FFTW3 -D__LIBINT -D__parallel -D__BLACS -D__SCALAPACK
++DFLAGS   = -D__GFORTRAN -D__FFTSG -D__FFTW3 $(FFTW3_ALIGN) -D__LIBINT -D__parallel -D__BLACS -D__SCALAPACK
 +CPPFLAGS = -C -traditional $(DFLAGS)
 +FCFLAGS  = -g -Wall -O2 -ffast-math -funroll-loops -ftree-vectorize -ffree-form -ffree-line-length-none $(DFLAGS)
 +LDFLAGS  = $(FCFLAGS) 
diff -Nru cp2k-2.2.426/debian/patches/series cp2k-2.2.426/debian/patches/series
--- cp2k-2.2.426/debian/patches/series	2012-03-24 17:59:41.000000000 +0100
+++ cp2k-2.2.426/debian/patches/series	2012-09-06 23:19:34.000000000 +0200
@@ -3,3 +3,4 @@
 reset_cppflags_makdepf90.patch
 data_files_standard_location.patch
 testsuite_output.patch
+fftw3_unaligned.patch
diff -Nru cp2k-2.2.426/debian/rules cp2k-2.2.426/debian/rules
--- cp2k-2.2.426/debian/rules	2012-09-03 18:41:44.000000000 +0200
+++ cp2k-2.2.426/debian/rules	2012-09-06 23:40:15.000000000 +0200
@@ -3,6 +3,14 @@
 
 include /usr/share/mpi-default-dev/debian_defaults
 
+DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+ifeq ($(DEB_BUILD_ARCH), i386)
+    export FFTW3_ALIGN=-D__FFTW3_UNALIGNED
+else
+    export FFTW3_ALIGN=
+endif
+
 export LIB_SCALAPACK=-lscalapack-$(ARCH_DEFAULT_MPI_IMPL)
 export LIB_BLACS=-lblacsCinit-$(ARCH_DEFAULT_MPI_IMPL) -lblacs-$(ARCH_DEFAULT_MPI_IMPL)
 export OMPI_MCA_plm_rsh_agent=/bin/false

Reply to: