Commit df76d7cc authored by Andreas Marek's avatar Andreas Marek
Browse files

Merge branch 'master_pre_stage' into 'ELPA_ROCm'

# Conflicts:
#   test/Fortran/test.F90
parents 7eb78f22 db495042
......@@ -3,7 +3,7 @@
## Current Release ##
The current release is ELPA 2020.11.001 The current supported API version
is 20190501. This release supports the earliest API version 20170403.
is 20200417. This release supports the earliest API version 20170403.
The release ELPA 2018.11.001 was the last release, where the legacy API has been
enabled by default (and can be disabled at build time).
......
......@@ -39,10 +39,14 @@ AX_BUILD_DATE_EPOCH(ELPA_BUILDTIME)
# API Version
AC_DEFINE([EARLIEST_API_VERSION], [20170403], [Earliest supported ELPA API version])
print_earliest_api_version=20170403
AC_DEFINE_SUBST(CURRENT_API_VERSION, 20200417, "Current ELPA API version")
print_current_api_version=20200417
# Autotune Version
AC_DEFINE([EARLIEST_AUTOTUNE_VERSION], [20171201], [Earliest ELPA API version, which supports autotuning])
print_earliest_autotune_version=20171201
AC_DEFINE([CURRENT_AUTOTUNE_VERSION], [20200417], [Current ELPA autotune version])
print_current_autotune_version=20200417
AC_DEFINE([CURRENT_AUTOTUNE_VERSION], [20200417], [Current ELPA autotune version])
AC_DEFINE_SUBST(CURRENT_AUTOTUNE_VERSION, 20200417, "Current ELPA autotune version")
AC_DEFINE_UNQUOTED([ELPA_BUILDTIME], [$ELPA_BUILDTIME], ["Time of build"])
......@@ -2225,6 +2229,13 @@ m4_foreach_w([elpa_m4_kind],[real complex],[
])
])
echo ""
echo " This version of ELPA support the minimal API version: ${print_earliest_api_version}"
echo " The current API version is: ${print_current_api_version}"
echo " This version of ELPA support the minimal autotuning version: ${print_earliest_autotune_version}"
echo " The current autotune version is: ${print_current_autotune_version}"
echo ""
if test x"${ax_cv_have_sse3_cpu_ext}" = x"yes" -a x"${need_sse}" = x"no"; then
echo " "
AC_MSG_WARN([You did not request SSE support (--enable-sse), but your local CPU supports it.])
......
......@@ -143,6 +143,7 @@ static int nev_is_valid(elpa_index_t index, int n, int new_value);
static int bw_is_valid(elpa_index_t index, int n, int new_value);
static int output_build_config_is_valid(elpa_index_t index, int n, int new_value);
static int gpu_is_valid(elpa_index_t index, int n, int new_value);
static int verbose_is_valid(elpa_index_t index, int n, int new_value);
static int skewsymmetric_is_valid(elpa_index_t index, int n, int new_value);
static int is_positive(elpa_index_t index, int n, int new_value);
......@@ -217,6 +218,8 @@ static const elpa_index_int_entry_t int_entries[] = {
INT_ANY_ENTRY("mpi_comm_cols", "Communicator for inter-column communication", PRINT_NO),
INT_ANY_ENTRY("mpi_comm_parent", "Parent communicator", PRINT_NO),
INT_ANY_ENTRY("blacs_context", "BLACS context", PRINT_NO),
INT_ENTRY("verbose", "ELPA API prints verbose messages", 0, ELPA_AUTOTUNE_NOT_TUNABLE, ELPA_AUTOTUNE_DOMAIN_ANY, \
cardinality_bool, enumerate_identity, verbose_is_valid, NULL, PRINT_YES),
//#ifdef REDISTRIBUTE_MATRIX
INT_ENTRY("internal_nblk", "Internally used block size of scalapack block-cyclic distribution", 0, ELPA_AUTOTUNE_FAST, ELPA_AUTOTUNE_DOMAIN_ANY, \
internal_nblk_cardinality, internal_nblk_enumerate, internal_nblk_is_valid, NULL, PRINT_YES),
......@@ -370,8 +373,10 @@ FOR_ALL_TYPES(IMPLEMENT_FIND_ENTRY)
if (elpa_##TYPE##_value_to_string(TYPE##_entries[n].base.name, *value, &value_string) == ELPA_OK) { \
if (!(index->TYPE##_options.notified[n] & notify_flag)) { \
if (elpa_index_is_printing_mpi_rank(index)) { \
if (elpa_index_int_value_is_set(index, "verbose")) { \
fprintf(stderr, "ELPA: %s '%s' is set to %s due to environment variable %s\n", \
error_string, TYPE##_entries[n].base.name, value_string, env_variable); \
} \
} \
index->TYPE##_options.notified[n] |= notify_flag; \
} \
......@@ -907,6 +912,10 @@ static int gpu_is_valid(elpa_index_t index, int n, int new_value) {
return new_value == 0 || new_value == 1;
}
static int verbose_is_valid(elpa_index_t index, int n, int new_value) {
return new_value == 0 || new_value == 1;
}
static int skewsymmetric_is_valid(elpa_index_t index, int n, int new_value) {
return new_value == 0 || new_value == 1;
}
......@@ -1640,6 +1649,8 @@ int elpa_index_is_printing_mpi_rank(elpa_index_t index)
process_id = elpa_index_get_int_value(index, "process_id", NULL);
return (process_id == 0);
}
printf("Warning: process_id not set, printing on all MPI ranks. This can happen with legacy API.");
if (elpa_index_int_value_is_set(index, "verbose")) {
printf("Warning: process_id not set, printing on all MPI ranks. This can happen with legacy API.");
}
return 1;
}
......@@ -208,7 +208,7 @@ program test
#ifdef WITH_OPENMP_TRADITIONAL
TEST_INT_TYPE :: max_threads, threads_caller
#endif
#if TEST_GPU_SET_ID == 1
#if TEST_GPU_SET_ID == 1
TEST_INT_TYPE :: gpuID
#endif
#ifdef SPLIT_COMM_MYSELF
......@@ -254,7 +254,8 @@ program test
endif
if (myid == 0) then
print '((a,i0))', 'Program ' // TEST_CASE
print '((a,i0))', 'Program ' &
// TEST_CASE
print *, ""
endif
......@@ -626,6 +627,7 @@ program test
assert_elpa_ok(error_elpa)
call e%set("mpi_comm_cols", int(mpi_comm_cols,kind=c_int), error_elpa)
assert_elpa_ok(error_elpa)
#else
call e%set("mpi_comm_parent", int(MPI_COMM_WORLD,kind=c_int), error_elpa)
assert_elpa_ok(error_elpa)
......@@ -633,6 +635,8 @@ program test
assert_elpa_ok(error_elpa)
call e%set("process_col", int(my_pcol,kind=c_int), error_elpa)
assert_elpa_ok(error_elpa)
call e%set("verbose", 1, error_elpa)
assert_elpa_ok(error_elpa)
#endif
#endif
#ifdef TEST_GENERALIZED_EIGENPROBLEM
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment