Commit 82d83209 authored by Andreas Marek's avatar Andreas Marek

Remove legacy interface

parent befee56f
......@@ -144,15 +144,6 @@ python-distcheck:
- ./ci_test_scripts/run_distcheck_tests.sh -c "CC=\"mpiicc\" CFLAGS=\"-O3 -xAVX\" FC=\"mpiifort\" FCFLAGS=\"-O3 -xAVX\" SCALAPACK_LDFLAGS=\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \" SCALAPACK_FCFLAGS=\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \" --enable-option-checking=fatal --with-mpi=yes --enable-openmp --disable-gpu --enable-avx --enable-python --enable-python-tests "-d " CC=\\\"mpiicc\\\" CFLAGS=\\\"-O3 -xAVX\\\" FC=\\\"mpiifort\\\" FCFLAGS=\\\"-O3 -xAVX\\\" SCALAPACK_LDFLAGS=\"$MKL_ANACONDA_INTEL_SCALAPACK_LDFLAGS_MPI_OMP \" SCALAPACK_FCFLAGS=\"$MKL_ANACONDA_INTEL_SCALAPACK_FCFLAGS_MPI_OMP \" --enable-option-checking=fatal --with-mpi=yes --enable-openmp --disable-gpu --enable-avx --enable-python --enable-python-tests" -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM || { chmod u+rwX -R . ; exit 1 ; }
# test_project_1stage_legacy_api_gnu
test_project_1stage_legacy_api_gnu:
tags:
- project_test
script:
- ./ci_test_scripts/run_project_tests.sh -c " FC=mpif90 FCFLAGS=\"-march=native \" CFLAGS=\"-march=native\" SCALAPACK_LDFLAGS=\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP\" SCALAPACK_FCFLAGS=\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_NO_OMP\" --enable-option-checking=fatal --enable-legacy-interface --disable-avx2 --disable-avx512 --prefix=$PWD/installdest --disable-avx2 --disable-avx512 || { cat config.log; exit 1; } " -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_1stage_legacy_api -e test_real -C " FC=mpif90 PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig --enable-option-checking=fatal || { cat config.log; exit 1; } "
# test_project_1stage_gnu
test_project_1stage_gnu:
tags:
......@@ -162,15 +153,6 @@ test_project_1stage_gnu:
# test_project_2stage_legacy_api_gnu
test_project_2stage_legacy_api_gnu:
tags:
- project_test
script:
- ./ci_test_scripts/run_project_tests.sh -c " FC=mpif90 FCFLAGS=\"-march=native \" CFLAGS=\"-march=native\" SCALAPACK_LDFLAGS=\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP\" SCALAPACK_FCFLAGS=\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_NO_OMP\" --enable-option-checking=fatal --enable-legacy-interface --disable-avx2 --disable-avx512 --prefix=$PWD/installdest --disable-avx2 --disable-avx512 || { cat config.log; exit 1; } " -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_2stage_legacy_api -e test_real2 -C " FC=mpif90 PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig --enable-option-checking=fatal || { cat config.log; exit 1; } "
# test_project_2stage_gnu
test_project_2stage_gnu:
tags:
......@@ -180,15 +162,6 @@ test_project_2stage_gnu:
# test_project_1stage_legacy_api_intel
test_project_1stage_legacy_api_intel:
tags:
- project_test
script:
- ./ci_test_scripts/run_project_tests.sh -c " FC=mpiifort FCFLAGS=\"-march=native \" CFLAGS=\"-march=native\" SCALAPACK_LDFLAGS=\"$MKL_INTEL_SCALAPACK_LDFLAGS_MPI_NO_OMP\" SCALAPACK_FCFLAGS=\"$MKL_INTEL_SCALAPACK_FCFLAGS_MPI_NO_OMP\" --enable-option-checking=fatal --enable-legacy-interface --disable-avx2 --disable-avx512 --prefix=$PWD/installdest --disable-avx2 --disable-avx512 || { cat config.log; exit 1; } " -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_1stage_legacy_api -e test_real -C " FC=mpiifort PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig --enable-option-checking=fatal || { cat config.log; exit 1; } "
# test_project_1stage_intel
test_project_1stage_intel:
tags:
......@@ -198,15 +171,6 @@ test_project_1stage_intel:
# test_project_2stage_legacy_api_intel
test_project_2stage_legacy_api_intel:
tags:
- project_test
script:
- ./ci_test_scripts/run_project_tests.sh -c " FC=mpiifort FCFLAGS=\"-march=native \" CFLAGS=\"-march=native\" SCALAPACK_LDFLAGS=\"$MKL_INTEL_SCALAPACK_LDFLAGS_MPI_NO_OMP\" SCALAPACK_FCFLAGS=\"$MKL_INTEL_SCALAPACK_FCFLAGS_MPI_NO_OMP\" --enable-option-checking=fatal --enable-legacy-interface --disable-avx2 --disable-avx512 --prefix=$PWD/installdest --disable-avx2 --disable-avx512 || { cat config.log; exit 1; } " -t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_2stage_legacy_api -e test_real2 -C " FC=mpiifort PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig --enable-option-checking=fatal || { cat config.log; exit 1; } "
# test_project_2stage_intel
test_project_2stage_intel:
tags:
......
......@@ -8,37 +8,9 @@ in the (near) future from the *ELPA* library.
With the release of ELPA 2017.05.001 a new, more general API for the library has
been published. All new features of ELPA will only be accesible via this new interface.
For ease of transion, the API as defined in release ELPA 2016.11.001 has been frozen in
and will be still supported for some time, albeit without any new features.
The old, legacy API will be deprecated with the release ELPA 2019.11.001 !
Independent of the freezing in of the old, legacy API from the release 2016.11.001 the
following listed interfaces will be removed at some time.
In order to unfiy the namespace of the *ELPA* public interfaces, several interfaces
have been replaced by new names. The old interfaces will be removed
| Deprecated interface | Replacement | Comment |
|:------------------------ |:------------------------------------- |:----------------------------- |
| get_elpa_row_col_coms | elpa_get_communicators | (removed since 2017.11.001) |
| get_elpa_communicators | elpa_get_communicators | (removed since 2017.11.001) |
| solve_evp_real | elpa_solve_evp_real_1stage_double | (removed since 2017.11.001) |
| solve_evp_complex | elpa_solve_evp_complex_1stage_double | (removed since 2017.11.001) |
| solve_evp_real_1stage | elpa_solve_evp_real_1stage_double | (removed since 2019.05.001) |
| solve_evp_complex_1stage | elpa_solve_evp_complex_1stage_double | (removed since 2019.05.001) |
| solve_evp_real_2stage | elpa_solve_evp_real_2stage_double | (removed since 2019.05.001) |
| solve_evp_complex_2stage | elpa_solve_evp_complex_2stage_double | (removed since 2019.05.001) |
| mult_at_b_real | elpa_mult_at_b_real_double | (removed since 2019.05.001) |
| mult_ah_b_complex | elpa_mult_ah_b_complex_double | (removed since 2019.05.001) |
| invert_trm_real | elpa_invert_trm_real_double | (removed since 2019.05.001) |
| invert_trm_complex | elpa_invert_trm_complex_double | (removed since 2019.05.001) |
| cholesky_real | elpa_cholesky_real_double | (removed since 2019.05.001) |
| cholesky_complex | elpa_cholesky_complex_double | (removed since 2019.05.001) |
| solve_tridi | elpa_solve_tridi_double | (removed since 2019.05.001) |
For all symbols also the corresponding "_single" routines are available
For ease of transion, the old API as defined in release ELPA 2016.11.001 has been frozen in
and will be still supported for some time, albeit without any new features. This old API has been
deprecated in release ELPA 2019.11.001 and has been removed.
......
......@@ -21,15 +21,6 @@ libelpa@SUFFIX@_public_la_SOURCES = \
src/elpa_api.F90 \
src/elpa_constants.F90
if ENABLE_LEGACY
libelpa@SUFFIX@_public_la_SOURCES += \
src/elpa_driver/legacy_interface/elpa.F90 \
src/elpa1/legacy_interface/elpa1.F90 \
src/elpa2/legacy_interface/elpa2.F90 \
src/elpa2/legacy_interface/elpa2_utilities.F90 \
src/elpa1/legacy_interface/elpa1_auxiliary.F90
endif
# internal parts
noinst_LTLIBRARIES += libelpa@SUFFIX@_private.la
libelpa@SUFFIX@_private_la_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules
......@@ -71,22 +62,8 @@ libelpa@SUFFIX@_private_la_SOURCES = \
libelpa@SUFFIX@_private_la_SOURCES += src/elpa_c_interface.c
# elpa_utilities.F90 is private in new API, public in legacy
if ENABLE_LEGACY
libelpa@SUFFIX@_public_la_SOURCES += \
src/general/elpa_utilities.F90
else
libelpa@SUFFIX@_private_la_SOURCES += \
src/general/elpa_utilities.F90
endif
if ENABLE_LEGACY
libelpa@SUFFIX@_private_la_SOURCES += \
src/elpa_driver/legacy_interface/elpa_driver_c_interface.F90 \
src/elpa1/legacy_interface/elpa_1stage_c_interface.F90 \
src/elpa2/legacy_interface/elpa_2stage_c_interface.F90
endif
EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \
src/elpa1/elpa_reduce_add_vectors.F90 \
......@@ -128,24 +105,6 @@ EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \
src/general/precision_typedefs.h \
src/general/precision_kinds.F90
if ENABLE_LEGACY
EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES += \
src/elpa1/legacy_interface/elpa1_template.F90 \
src/elpa2/legacy_interface/elpa2_template.F90 \
src/elpa1/legacy_interface/elpa1_c_interface_template.F90 \
src/elpa2/legacy_interface/elpa2_c_interface_template.F90 \
src/elpa_driver/legacy_interface/elpa_driver_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_solve_tridi_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_mult_at_b_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_mult_ah_b_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_invert_trm_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_cholesky_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_cholesky_template.F90 \
src/elpa1/legacy_interface/elpa_invert_trm.F90 \
src/elpa1/legacy_interface/elpa_multiply_a_b.F90 \
src/elpa1/legacy_interface/elpa_solve_tridi.F90
endif
if HAVE_DETAILED_TIMINGS
libelpa@SUFFIX@_private_la_SOURCES += \
src/ftimings/ftimings.F90 \
......@@ -157,11 +116,6 @@ libelpa@SUFFIX@_private_la_SOURCES += \
src/ftimings/virtual_memory.c \
src/ftimings/papi.c
if ENABLE_LEGACY
libelpa@SUFFIX@_private_la_SOURCES += \
src/helpers/timer.F90
endif
else
libelpa@SUFFIX@_private_la_SOURCES += \
src/helpers/timer_dummy.F90
......@@ -489,15 +443,13 @@ nobase_elpa_include_HEADERS = \
src/helpers/scalapack_interfaces.h \
elpa/elpa_simd_constants.h \
elpa/elpa.h \
elpa/elpa_generic.h \
elpa/elpa_legacy.h
elpa/elpa_generic.h
nobase_nodist_elpa_include_HEADERS = \
elpa/elpa_version.h \
elpa/elpa_constants.h \
elpa/elpa_generated.h \
elpa/elpa_generated_c_api.h \
elpa/elpa_generated_legacy.h
elpa/elpa_generated_c_api.h
dist_man_MANS = \
man/elpa2_print_kernels.1 \
......@@ -526,52 +478,6 @@ dist_man_MANS = \
man/elpa_autotune_deallocate.3 \
man/elpa_uninit.3
if ENABLE_LEGACY
dist_man_MANS += \
man/solve_evp_real_1stage_double.3 \
man/solve_evp_complex_1stage_double.3 \
man/solve_evp_real_2stage_double.3 \
man/solve_evp_complex_2stage_double.3 \
man/elpa_solve_evp_real_1stage_double.3 \
man/elpa_solve_evp_complex_1stage_double.3 \
man/elpa_solve_evp_real_2stage_double.3 \
man/elpa_solve_evp_complex_2stage_double.3 \
man/elpa_get_communicators.3 \
man/elpa_mult_at_b_real_double.3 \
man/elpa_mult_at_b_real_single.3 \
man/elpa_mult_ah_b_complex_double.3 \
man/elpa_mult_ah_b_complex_single.3 \
man/elpa_invert_trm_real_double.3 \
man/elpa_invert_trm_real_single.3 \
man/elpa_invert_trm_complex_double.3 \
man/elpa_invert_trm_complex_single.3 \
man/elpa_solve_evp_real_double.3 \
man/elpa_solve_evp_real_single.3 \
man/elpa_solve_evp_complex_double.3 \
man/elpa_solve_evp_complex_single.3
endif
if WANT_SINGLE_PRECISION_REAL
if ENABLE_LEGACY
dist_man_MANS += \
man/solve_evp_real_1stage_single.3 \
man/elpa_solve_evp_real_1stage_single.3 \
man/elpa_solve_evp_real_2stage_single.3 \
man/solve_evp_real_2stage_single.3
endif
endif
if WANT_SINGLE_PRECISION_COMPLEX
if ENABLE_LEGACY
dist_man_MANS += \
man/solve_evp_complex_1stage_single.3 \
man/elpa_solve_evp_complex_1stage_single.3 \
man/elpa_solve_evp_complex_2stage_single.3 \
man/solve_evp_complex_2stage_single.3
endif
endif
dist_doc_DATA = README.md USERS_GUIDE.md USERS_GUIDE_DEPRECATED_LEGACY_API.md INSTALL.md CONTRIBUTING.md LICENSE Changelog COPYING/COPYING COPYING/gpl.txt COPYING/lgpl.txt
# pkg-config stuff
......@@ -622,10 +528,6 @@ elpa2_print_kernels@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODINC)modules
include test_programs.am
if ENABLE_LEGACY
include legacy_test_programs.am
endif
#include test_programs_manual.am
noinst_PROGRAMS += validate_double_instance@SUFFIX@
......@@ -726,10 +628,6 @@ CLEANFILES = \
elpa1_real* \
elpa*.sh \
test*.sh \
legacy_real* \
legacy_complex* \
legacy_single_real* \
legacy_single_complex* \
single_real* \
single_complex* \
real* \
......@@ -742,7 +640,6 @@ CLEANFILES = \
clean-local:
-rm -rf modules/* private_modules/* test_modules/* .fortran_dependencies/*
-rm -rf validate_*.sh
-rm -rf legacy_*.sh
-rm -rf real_2stage*.sh
-rm -rf complex_2stage*.sh
-rm -rf single_complex_2stage*.sh
......@@ -764,7 +661,6 @@ EXTRA_DIST = \
elpa.spec \
elpa/elpa.h \
elpa/elpa_generic.h \
elpa/elpa_legacy.h \
fdep/fortran_dependencies.mk \
fdep/fortran_dependencies.pl \
manual_cpp \
......@@ -851,38 +747,7 @@ EXTRA_DIST = \
test_project_C/fdep \
test_project_C/m4 \
test_project_C/src/test_real.c \
test_project_C/src/test_blacs_infrastructure.F90\
test_project_1stage_legacy_api/Makefile.am \
test_project_1stage_legacy_api/autogen.sh \
test_project_1stage_legacy_api/configure.ac \
test_project_1stage_legacy_api/fdep \
test_project_1stage_legacy_api/m4 \
test_project_1stage_legacy_api/src/test_real.F90 \
test_project_2stage_legacy_api/Makefile.am \
test_project_2stage_legacy_api/autogen.sh \
test_project_2stage_legacy_api/configure.ac \
test_project_2stage_legacy_api/fdep \
test_project_2stage_legacy_api/m4 \
test_project_2stage_legacy_api/src/test_real2.F90
if ENABLE_LEGACY
EXTRA_DIST += \
src/elpa1/elpa1_solve_tridi_real_template.F90 \
src/elpa1/legacy_interface/elpa1_template.F90 \
src/elpa2/legacy_interface/elpa2_template.F90 \
src/elpa1/legacy_interface/elpa1_c_interface_template.F90 \
src/elpa2/legacy_interface/elpa2_c_interface_template.F90 \
src/elpa_driver/legacy_interface/elpa_driver_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_solve_tridi_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_mult_at_b_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_mult_ah_b_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_invert_trm_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_cholesky_c_interface_template.F90 \
src/elpa1/legacy_interface/elpa_cholesky_template.F90 \
src/elpa1/legacy_interface/elpa_invert_trm.F90 \
src/elpa1/legacy_interface/elpa_multiply_a_b.F90 \
src/elpa1/legacy_interface/elpa_solve_tridi.F90
endif
test_project_C/src/test_blacs_infrastructure.F90
if WITH_SCALAPACK_TESTS
EXTRA_DIST += \
......
## Documentation how to switch from the legacy API to the new API of the *ELPA* library ##
This document gives some hints how one can switch from the **deprecated** legacy API to new, long-term supported API of the *ELPA* library.
**We strongly recommend users to switch as soon as possible, since the deprecated API will be removed at some point!**
**At latest with the release ELPA 2019.11.001 you have to use the new API, since the old API has been removed**
### Using *ELPA* from a Fortran code ###
......
## Users guide for the *ELPA* library ##
This document provides the guide for using the *ELPA* library with the new API (API version 20170403 or higher).
If you want to use the deprecated legacy API (we strongly recommend against this), please refer to the document
[USERS_GUIDE_DEPRECATED_LEGACY_API.md] (USERS_GUIDE_DEPRECATED_LEGACY_API.md).
Please do understand that this release deprecated the old, legacy interface API!
If you want to use the deprecated legacy API (we strongly recommend against this), please use the ELPA release
2019.05.002 or older.
If you need instructions on how to build *ELPA*, please look at [INSTALL.md] (INSTALL.md).
......@@ -22,26 +23,11 @@ for each *ELPA* release is available.
With release 2017.05.001 of the *ELPA* library the interface has been rewritten substantially, in order to have a more generic
interface and to avoid future interface changes.
For compatibility reasons the interface defined in the previous release 2016.11.001 is also still available
**IF AND ONLY IF** *ELPA* has been build with support of this legacy interface.
The legacy API defines all the functionality as it has been defined in *ELPA* release 2016.11.011. Note, however,
that all future features of *ELPA* will only be accessible via the new API defined in release 2017.05.001 or later.
As mentioned, we advise against it, but if you want to use the legacy API please look at the document
[USERS_GUIDE_DEPRECATED_LEGACY_API.md] (USERS_GUIDE_DEPRECATED_LEGACY_API.md).
The old, obsolete legacy API will be deprecated in the future !
Allready now, all new features of ELPA are only available with the new API. Thus, there
is no reason to keep the legacy API arround for too long.
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).
With release ELPA 2019.05.001 the legacy API is disabled by default, however,
can be still switched on at build time.
Most likely with the release ELPA 2019.11.001 the legacy API will be deprecated and
not supported anymore.
With the release ELPA 2019.11.001 the legacy API will has been deprecated and has been removed.
### Table of Contents: ###
......
......@@ -478,7 +478,6 @@ stage = {
api = {
"new_api" : "",
"legacy_api" : "_legacy_api",
}
compiler = {
......@@ -509,14 +508,6 @@ for comp, s, a in product(
-t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_"+stage[s]+api[a]+" -e "+projectBinary+" \
-C \" FC=mpiifort PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig \
--enable-option-checking=fatal || { cat config.log; exit 1; } \" ")
if (a == "legacy_api"):
print(" - ./ci_test_scripts/run_project_tests.sh -c \" FC=mpiifort FCFLAGS=\\\"-march=native \\\" CFLAGS=\\\"-march=native\\\" \
SCALAPACK_LDFLAGS=\\\"$MKL_INTEL_SCALAPACK_LDFLAGS_MPI_NO_OMP\\\" \
SCALAPACK_FCFLAGS=\\\"$MKL_INTEL_SCALAPACK_FCFLAGS_MPI_NO_OMP\\\" \
--enable-option-checking=fatal --enable-legacy-interface --disable-avx2 --disable-avx512 --prefix=$PWD/installdest --disable-avx2 --disable-avx512 || { cat config.log; exit 1; } \" \
-t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_"+stage[s]+api[a]+" -e "+projectBinary+" \
-C \" FC=mpiifort PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig \
--enable-option-checking=fatal || { cat config.log; exit 1; } \" ")
if (comp == "gnu"):
if (a == "new_api"):
......@@ -527,14 +518,6 @@ for comp, s, a in product(
-t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_"+stage[s]+api[a]+" -e "+projectBinary+" \
-C \" FC=mpif90 PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig \
--enable-option-checking=fatal || { cat config.log; exit 1; } \" ")
if (a == "legacy_api"):
print(" - ./ci_test_scripts/run_project_tests.sh -c \" FC=mpif90 FCFLAGS=\\\"-march=native \\\" CFLAGS=\\\"-march=native\\\" \
SCALAPACK_LDFLAGS=\\\"$MKL_GFORTRAN_SCALAPACK_LDFLAGS_MPI_NO_OMP\\\" \
SCALAPACK_FCFLAGS=\\\"$MKL_GFORTRAN_SCALAPACK_FCFLAGS_MPI_NO_OMP\\\" \
--enable-option-checking=fatal --enable-legacy-interface --disable-avx2 --disable-avx512 --prefix=$PWD/installdest --disable-avx2 --disable-avx512 || { cat config.log; exit 1; } \" \
-t $MPI_TASKS -m 150 -n 50 -b 16 -S $SLURM -p test_project_"+stage[s]+api[a]+" -e "+projectBinary+" \
-C \" FC=mpif90 PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig \
--enable-option-checking=fatal || { cat config.log; exit 1; } \" ")
print("\n\n")
print("#The tests follow here")
......
......@@ -52,24 +52,6 @@ fi
enable_legacy=no
AC_MSG_CHECKING(whether legacy interface should be provided)
AC_ARG_ENABLE([legacy-interface],
AS_HELP_STRING([--enable-legacy-interface],
[build legacy API, default no]),
[
if test x"$enableval" = x"yes"; then
enable_legacy=yes
else
enable_legacy=no
fi
],
[enable_legacy=no])
AC_MSG_RESULT([${enable_legacy}])
AM_CONDITIONAL([ENABLE_LEGACY],[test x"$enable_legacy" = x"yes"])
if test x"${enable_legacy}" = x"yes"; then
AC_DEFINE([ENABLE_LEGACY], [1], [enable legacy interface])
fi
AC_MSG_CHECKING(whether in C interface the error argument should be optional)
AC_ARG_ENABLE([optional-argument-in-C-API],
AS_HELP_STRING([--enable-optional-argument-in-C-API],
......@@ -83,7 +65,7 @@ AC_ARG_ENABLE([optional-argument-in-C-API],
],
[optional_c_error_argument=no])
AC_MSG_RESULT([${optional_c_error_argument}])
AM_CONDITIONAL([OPTIONAL_C_ERROR_ARGUMENT],[test x"$enable_legacy" = x"yes"])
AM_CONDITIONAL([OPTIONAL_C_ERROR_ARGUMENT],[test x"$optional_c_error_argument" = x"yes"])
if test x"${optional_c_error_argument}" = x"yes"; then
AC_DEFINE([OPTIONAL_C_ERROR_ARGUMENT], [1], [enable error argument in C-API to be optional])
fi
......@@ -228,9 +210,6 @@ AC_ARG_ENABLE([64bit-integer-math-support],
[enable_64bit_integer_math_support="no"])
AC_MSG_RESULT([$enable_64bit_integer_math_support])
if test x"${enable_64bit_integer_math_support}" = x"yes"; then
if test x"${enable_legacy}" = x"yes"; then
AC_MSG_ERROR([You cannot both enable 64bit integer support and the legacy interface!])
fi
dnl at least INTEL MPI does _NOT_ support 64BIT integer mode for C thus disable C tests in this Case
if test x"${enable_c_tests}" = x"yes"; then
AC_MSG_ERROR([You cannot both define 64bit integer support and C tests. Reconfigure!])
......@@ -261,9 +240,6 @@ AC_ARG_ENABLE([64bit-integer-mpi-support],
[enable_64bit_integer_mpi_support="no"])
AC_MSG_RESULT([$enable_64bit_integer_mpi_support])
if test x"${enable_64bit_integer_mpi_support}" = x"yes"; then
if test x"${enable_legacy}" = x"yes"; then
AC_MSG_ERROR([You cannot both enable 64bit integer support and the legacy interface!])
fi
AC_DEFINE([HAVE_64BIT_INTEGER_MPI_SUPPORT], [1], [allow to link against the 64bit integer versions of the MPI library])
fi
AM_CONDITIONAL([HAVE_64BIT_INTEGER_MPI_SUPPORT],[test x"$enable_64bit_integer_mpi_support" = x"yes"])
......
#ifndef ELPA_H
#define ELPA_H
#include <limits.h>
#include <elpa/elpa_constants.h>
#include <elpa/elpa_generated_legacy.h>
#define REAL_ELPA_KERNEL_GENERIC ELPA_2STAGE_REAL_GENERIC
#define REAL_ELPA_KERNEL_GENERIC_SIMPLE ELPA_2STAGE_REAL_GENERIC_SIMPLE
#define REAL_ELPA_KERNEL_BGP ELPA_2STAGE_REAL_BGP
#define REAL_ELPA_KERNEL_BGQ ELPA_2STAGE_REAL_BGQ
#define REAL_ELPA_KERNEL_SSE ELPA_2STAGE_REAL_SSE_ASSEMBLY
#define REAL_ELPA_KERNEL_SSE_BLOCK2 ELPA_2STAGE_REAL_SSE_BLOCK2
#define REAL_ELPA_KERNEL_SSE_BLOCK4 ELPA_2STAGE_REAL_SSE_BLOCK4
#define REAL_ELPA_KERNEL_SSE_BLOCK6 ELPA_2STAGE_REAL_SSE_BLOCK6
#define REAL_ELPA_KERNEL_AVX_BLOCK2 ELPA_2STAGE_REAL_AVX_BLOCK2
#define REAL_ELPA_KERNEL_AVX_BLOCK4 ELPA_2STAGE_REAL_AVX_BLOCK4
#define REAL_ELPA_KERNEL_AVX_BLOCK6 ELPA_2STAGE_REAL_AVX_BLOCK6
#define REAL_ELPA_KERNEL_AVX2_BLOCK2 ELPA_2STAGE_REAL_AVX2_BLOCK2
#define REAL_ELPA_KERNEL_AVX2_BLOCK4 ELPA_2STAGE_REAL_AVX2_BLOCK4
#define REAL_ELPA_KERNEL_AVX512_BLOCK6 ELPA_2STAGE_REAL_AVX512_BLOCK6
#define REAL_ELPA_KERNEL_AVX512_BLOCK2 ELPA_2STAGE_REAL_AVX512_BLOCK2
#define REAL_ELPA_KERNEL_AVX512_BLOCK4 ELPA_2STAGE_REAL_AVX512_BLOCK4
#define REAL_ELPA_KERNEL_AVX512_BLOCK6 ELPA_2STAGE_REAL_AVX512_BLOCK6
#define REAL_ELPA_KERNEL_GPU ELPA_2STAGE_REAL_GPU
#define COMPLEX_ELPA_KERNEL_GENERIC ELPA_2STAGE_COMPLEX_GENERIC
#define COMPLEX_ELPA_KERNEL_GENERIC_SIMPLE ELPA_2STAGE_COMPLEX_GENERIC_SIMPLE
#define COMPLEX_ELPA_KERNEL_BGP ELPA_2STAGE_COMPLEX_BGP
#define COMPLEX_ELPA_KERNEL_BGQ ELPA_2STAGE_COMPLEX_BGQ
#define COMPLEX_ELPA_KERNEL_SSE ELPA_2STAGE_COMPLEX_SSE_ASSEMBLY
#define COMPLEX_ELPA_KERNEL_SSE_BLOCK1 ELPA_2STAGE_REAL_SSE_BLOCK1
#define COMPLEX_ELPA_KERNEL_SSE_BLOCK2 ELPA_2STAGE_REAL_SSE_BLOCK2
#define COMPLEX_ELPA_KERNEL_AVX_BLOCK1 ELPA_2STAGE_REAL_AVX_BLOCK1
#define COMPLEX_ELPA_KERNEL_AVX_BLOCK2 ELPA_2STAGE_REAL_AVX_BLOCK2
#define COMPLEX_ELPA_KERNEL_AVX2_BLOCK1 ELPA_2STAGE_REAL_AVX2_BLOCK1
#define COMPLEX_ELPA_KERNEL_AVX2_BLOCK2 ELPA_2STAGE_REAL_AVX2_BLOCK2
#define COMPLEX_ELPA_KERNEL_AVX512_BLOCK1 ELPA_2STAGE_REAL_AVX512_BLOCK1
#define COMPLEX_ELPA_KERNEL_AVX512_BLOCK2 ELPA_2STAGE_REAL_AVX512_BLOCK2
#define COMPLEX_ELPA_KERNEL_GPU ELPA_2STAGE_COMPLEX_GPU
const char *elpa_strerr(int elpa_error);
#endif
......@@ -39,14 +39,6 @@ elpa/elpa_generated.h: $(top_srcdir)/src/elpa_impl.F90 \
# $(call extract_interface,!c_no>)
#endif
generated_headers += elpa/elpa_generated_legacy.h
elpa/elpa_generated_legacy.h: $(top_srcdir)/src/elpa_driver/legacy_interface/elpa_driver_c_interface.F90 \
$(top_srcdir)/src/elpa1/legacy_interface/elpa_1stage_c_interface.F90 \
$(top_srcdir)/src/elpa2/legacy_interface/elpa_2stage_c_interface.F90 | elpa
@rm -f $@
$(call extract_interface,!lc>)
generated_headers += test/shared/generated.h
test/shared/generated.h: $(wildcard $(top_srcdir)/test/shared/*.*90) | test/shared
@rm -f $@
......
This diff is collapsed.
.TH "elpa_cholesky_complex" 3 "Wed May 17 2017" "ELPA" \" -*- nroff -*-
.ad l
.nh
.SH NAME
elpa_cholesky_complex \- Cholesky factorization of a complex hermitian matrix (legacy interface)
.br
.SH SYNOPSIS
.br
.SS FORTRAN INTERFACE
use elpa1
.br
.br
.RI "success = \fBelpa_cholesky_complex\fP (na, a(lda,matrixCols), lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug)"
.br
.RI " "
.br
.RI "With the definitions of the input and output variables:"
.br
.RI "integer, intent(in) \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "complex*16, intent(inout) \fBa\fP: locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br
.RI "integer, intent(in) \fBlda\fP: leading dimension of locally distributed matrix \fBa\fP"
.br
.RI "integer, intent(in) \fBnblk\fP: blocksize of cyclic distribution, must be the same in both directions"
.br
.RI "integer, intent(in) \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "integer, intent(in) \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "integer, intent(in) \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "logical, intent(in) \fBwantDebug\fP: if .true. , print more debug information in case of an error"
.RI "logical \fBsuccess\fP: return value indicating success or failure"
.br
.SS C INTERFACE
#include "elpa_legacy.h"
.br
#include <complex.h>
.br
.RI "\fBint\fP success = \fBelpa_cholesky_complex\fP (\fBint\fP na, \fB double complex *\fPa, \fBint\fP lda, \fBint\fP nblk, \fBint\fP matrixCols, \fBint\fP mpi_comm_rows, \fBint\fP mpi_comm_cols, \fBint\fP wantDebug );"
.br
.RI " "
.br
.RI "With the definitions of the input and output variables:"
.br
.RI "int \fBna\fP: global dimension of quadratic matrix \fBa\fP to solve"
.br
.RI "double complex *\fBa\fP: pointer to locally distributed part of the matrix \fBa\fP. The local dimensions are \fBlda\fP x \fBmatrixCols\fP"
.br
.RI "int \fBlda\fP: leading dimension of locally distributed matrix \fBa\fP"
.br
.RI "int \fBnblk\fP: blocksize of block cyclic distributin, must be the same in both directions"
.br
.RI "int \fBmatrixCols\fP: number of columns of locally distributed matrices \fBa\fP and \fBq\fP"
.br
.RI "int \fBmpi_comm_rows\fP: communicator for communication in rows. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "int \fBmpi_comm_cols\fP: communicator for communication in colums. Constructed with \fBelpa_get_communicators\fP(3)"
.br
.RI "int \fBwantDebug\fP: if 1, print more debug information in case of an error"
.br
.RI "int \fBsuccess\fP: return value indicating success (1) or failure (0)
.SH DESCRIPTION