diff --git a/ELPA_2013.08/INSTALL b/ELPA_2013.08/INSTALL index d0f786f87c5b1639429f79f68b00a3bc2e09e6ca..7701d02f768303185c69ea6dc732a4f9c5f9c432 100644 --- a/ELPA_2013.08/INSTALL +++ b/ELPA_2013.08/INSTALL @@ -27,6 +27,8 @@ The configure installation is best done in four steps "--with-..." option. For hints which kernels might be best for you, please refer to the file "./src/elpa2_kernels/README_elpa2_kernels.txt". + If no kernel is specified at the configure step an exception + prompting this error is thrown. Please point to your blacs/scalapack installation and the linkline with the variables "BLACS_LDFLAGS" and "BLACS_FCFLAGS". diff --git a/ELPA_2013.08/configure b/ELPA_2013.08/configure index cd453089929110b8c997543a17e22d4149b995c0..c74559f2ca0db1926501898d3f201cb41f48752b 100755 --- a/ELPA_2013.08/configure +++ b/ELPA_2013.08/configure @@ -4919,6 +4919,8 @@ fi +ELPA_KERNEL_SET=no + @@ -4949,6 +4951,7 @@ $as_echo "#define WITH_GENERIC 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_GENERIC], [0], [use generic kernel for all architectures (with some hand-coded optimizations)]) + ELPA_KERNEL_SET=yes fi @@ -4979,6 +4982,7 @@ $as_echo "#define WITH_GENERIC_SIMPLE 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_GENERIC_SIMPLE], [0], [use generic simple kernel for all architectures (without any hand-coded optimizations)]) + ELPA_KERNEL_SET=yes fi @@ -5009,6 +5013,7 @@ $as_echo "#define WITH_BGP 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_BGP], [0], [use optimized kernel for IBM BG/P]) + ELPA_KERNEL_SET=yes fi @@ -5039,6 +5044,7 @@ $as_echo "#define WITH_BGQ 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_BGQ], [0], [use optimized kernel for IBM BG/Q]) + ELPA_KERNEL_SET=yes fi @@ -5069,6 +5075,7 @@ $as_echo "#define WITH_SSE_AS 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_SSE_AS], [0], [use kernel tuned for SSE (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5099,6 +5106,7 @@ $as_echo "#define WITH_AVX_SANDYBRIDGE 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AVX_SANDYBRIDGE], [0], [use kernel tuned for AVX on Intel Sandybridge (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5129,6 +5137,7 @@ $as_echo "#define WITH_AMD_BULLDOZER 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AMD_BULLDOZER], [0], [use kernel tuned for AVX on AMD Bulldozer (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5159,6 +5168,7 @@ $as_echo "#define WITH_AVX_COMPLEX_BLOCK1 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AVX_COMPLEX_BLOCK1], [0], [use AVX optimized complex kernel with blocking 1 (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5189,6 +5199,7 @@ $as_echo "#define WITH_AVX_COMPLEX_BLOCK2 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AVX_COMPLEX_BLOCK2], [0], [use AVX optimized complex kernel with blocking 2 (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5219,6 +5230,7 @@ $as_echo "#define WITH_AVX_REAL_BLOCK2 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AVX_REAL_BLOCK2], [0], [use AVX optimized real kernel with blocking 2 (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5249,6 +5261,7 @@ $as_echo "#define WITH_AVX_REAL_BLOCK4 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AVX_REAL_BLOCK4], [0], [use AVX optimized real kernel with blocking 4 (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi @@ -5279,9 +5292,18 @@ $as_echo "#define WITH_AVX_REAL_BLOCK6 1" >>confdefs.h # elif test "x${with_option}" = xno; then # AC_DEFINE([WITH_AVX_REAL_BLOCK6], [0], [use AVX optimized real kernel with blocking 6 (written in gcc assembler)]) + ELPA_KERNEL_SET=yes fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the user defined an ELPA kernel" >&5 +$as_echo_n "checking whether the user defined an ELPA kernel... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_option}" >&5 +$as_echo "${with_option}" >&6; } +if test "x${ELPA_KERNEL_SET}" = xno; then + as_fn_error $? "no ELPA kernel choosen by user! Please look at the manual! Aborting..." "$LINENO" 5 +fi + if test "x${with_avx_sandybridge}" = xyes; then check_avx_compilation=yes fi diff --git a/ELPA_2013.08/configure.ac b/ELPA_2013.08/configure.ac index 0afca20aaea78f09daaea5415f1d89d91d7988f4..78d909aae2f5aa20586c8c83baf2a7c059339b3b 100644 --- a/ELPA_2013.08/configure.ac +++ b/ELPA_2013.08/configure.ac @@ -27,6 +27,9 @@ AM_PROG_AR AM_PROG_AS AC_PROG_CXX +dnl necessary for later checking +ELPA_KERNEL_SET=no + dnl macro for an --with-$2 switch that sets the dnl preprocessor define $1, with description $3, default $4, possible values $5 AC_DEFUN([DEFINE_OPTION],[ @@ -42,6 +45,7 @@ AC_DEFUN([DEFINE_OPTION],[ AC_DEFINE([$1], [1], [$3]) # elif test "x${with_option}" = xno; then # AC_DEFINE([$1], [0], [$3]) + ELPA_KERNEL_SET=yes fi ]) @@ -94,6 +98,13 @@ DEFINE_OPTION([WITH_AVX_REAL_BLOCK6], [avx-real-block6], [use AVX optimized real kernel with blocking 6 (written in gcc assembler)], [no],[]) +dnl check whether any kernel was specified +AC_MSG_CHECKING(whether the user defined an ELPA kernel) +AC_MSG_RESULT([${with_option}]) +if test "x${ELPA_KERNEL_SET}" = xno; then + AC_MSG_ERROR(no ELPA kernel choosen by user! Please look at the manual! Aborting...) +fi + dnl check whether we better check if AVX compilation should work if test "x${with_avx_sandybridge}" = xyes; then check_avx_compilation=yes