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

Remove legacy interface

parent befee56f
...@@ -144,15 +144,6 @@ python-distcheck: ...@@ -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 ; } - ./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
test_project_1stage_gnu: test_project_1stage_gnu:
tags: tags:
...@@ -162,15 +153,6 @@ test_project_1stage_gnu: ...@@ -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
test_project_2stage_gnu: test_project_2stage_gnu:
tags: tags:
...@@ -180,15 +162,6 @@ test_project_2stage_gnu: ...@@ -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
test_project_1stage_intel: test_project_1stage_intel:
tags: tags:
...@@ -198,15 +171,6 @@ test_project_1stage_intel: ...@@ -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
test_project_2stage_intel: test_project_2stage_intel:
tags: tags:
......
...@@ -8,37 +8,9 @@ in the (near) future from the *ELPA* library. ...@@ -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 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. 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 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. 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.
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
......
...@@ -21,15 +21,6 @@ libelpa@SUFFIX@_public_la_SOURCES = \ ...@@ -21,15 +21,6 @@ libelpa@SUFFIX@_public_la_SOURCES = \
src/elpa_api.F90 \ src/elpa_api.F90 \
src/elpa_constants.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 # internal parts
noinst_LTLIBRARIES += libelpa@SUFFIX@_private.la noinst_LTLIBRARIES += libelpa@SUFFIX@_private.la
libelpa@SUFFIX@_private_la_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules libelpa@SUFFIX@_private_la_FCFLAGS = $(AM_FCFLAGS) $(FC_MODOUT)private_modules $(FC_MODINC)private_modules
...@@ -71,22 +62,8 @@ libelpa@SUFFIX@_private_la_SOURCES = \ ...@@ -71,22 +62,8 @@ libelpa@SUFFIX@_private_la_SOURCES = \
libelpa@SUFFIX@_private_la_SOURCES += src/elpa_c_interface.c 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 += \ libelpa@SUFFIX@_private_la_SOURCES += \
src/general/elpa_utilities.F90 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 = \ EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \
src/elpa1/elpa_reduce_add_vectors.F90 \ src/elpa1/elpa_reduce_add_vectors.F90 \
...@@ -128,24 +105,6 @@ EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \ ...@@ -128,24 +105,6 @@ EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \
src/general/precision_typedefs.h \ src/general/precision_typedefs.h \
src/general/precision_kinds.F90 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 if HAVE_DETAILED_TIMINGS
libelpa@SUFFIX@_private_la_SOURCES += \ libelpa@SUFFIX@_private_la_SOURCES += \
src/ftimings/ftimings.F90 \ src/ftimings/ftimings.F90 \
...@@ -157,11 +116,6 @@ libelpa@SUFFIX@_private_la_SOURCES += \ ...@@ -157,11 +116,6 @@ libelpa@SUFFIX@_private_la_SOURCES += \
src/ftimings/virtual_memory.c \ src/ftimings/virtual_memory.c \
src/ftimings/papi.c src/ftimings/papi.c
if ENABLE_LEGACY
libelpa@SUFFIX@_private_la_SOURCES += \
src/helpers/timer.F90
endif
else else
libelpa@SUFFIX@_private_la_SOURCES += \ libelpa@SUFFIX@_private_la_SOURCES += \
src/helpers/timer_dummy.F90 src/helpers/timer_dummy.F90
...@@ -489,15 +443,13 @@ nobase_elpa_include_HEADERS = \ ...@@ -489,15 +443,13 @@ nobase_elpa_include_HEADERS = \
src/helpers/scalapack_interfaces.h \ src/helpers/scalapack_interfaces.h \
elpa/elpa_simd_constants.h \ elpa/elpa_simd_constants.h \
elpa/elpa.h \ elpa/elpa.h \
elpa/elpa_generic.h \ elpa/elpa_generic.h
elpa/elpa_legacy.h
nobase_nodist_elpa_include_HEADERS = \ nobase_nodist_elpa_include_HEADERS = \
elpa/elpa_version.h \ elpa/elpa_version.h \
elpa/elpa_constants.h \ elpa/elpa_constants.h \
elpa/elpa_generated.h \ elpa/elpa_generated.h \
elpa/elpa_generated_c_api.h \ elpa/elpa_generated_c_api.h
elpa/elpa_generated_legacy.h
dist_man_MANS = \ dist_man_MANS = \
man/elpa2_print_kernels.1 \ man/elpa2_print_kernels.1 \
...@@ -526,52 +478,6 @@ dist_man_MANS = \ ...@@ -526,52 +478,6 @@ dist_man_MANS = \
man/elpa_autotune_deallocate.3 \ man/elpa_autotune_deallocate.3 \
man/elpa_uninit.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 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 # pkg-config stuff
...@@ -622,10 +528,6 @@ elpa2_print_kernels@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODINC)modules ...@@ -622,10 +528,6 @@ elpa2_print_kernels@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) $(FC_MODINC)modules
include test_programs.am include test_programs.am
if ENABLE_LEGACY
include legacy_test_programs.am
endif
#include test_programs_manual.am #include test_programs_manual.am
noinst_PROGRAMS += validate_double_instance@SUFFIX@ noinst_PROGRAMS += validate_double_instance@SUFFIX@
...@@ -726,10 +628,6 @@ CLEANFILES = \ ...@@ -726,10 +628,6 @@ CLEANFILES = \
elpa1_real* \ elpa1_real* \
elpa*.sh \ elpa*.sh \
test*.sh \ test*.sh \
legacy_real* \
legacy_complex* \
legacy_single_real* \
legacy_single_complex* \
single_real* \ single_real* \
single_complex* \ single_complex* \
real* \ real* \
...@@ -742,7 +640,6 @@ CLEANFILES = \ ...@@ -742,7 +640,6 @@ CLEANFILES = \
clean-local: clean-local:
-rm -rf modules/* private_modules/* test_modules/* .fortran_dependencies/* -rm -rf modules/* private_modules/* test_modules/* .fortran_dependencies/*
-rm -rf validate_*.sh -rm -rf validate_*.sh
-rm -rf legacy_*.sh
-rm -rf real_2stage*.sh -rm -rf real_2stage*.sh
-rm -rf complex_2stage*.sh -rm -rf complex_2stage*.sh
-rm -rf single_complex_2stage*.sh -rm -rf single_complex_2stage*.sh
...@@ -764,7 +661,6 @@ EXTRA_DIST = \ ...@@ -764,7 +661,6 @@ EXTRA_DIST = \
elpa.spec \ elpa.spec \
elpa/elpa.h \ elpa/elpa.h \
elpa/elpa_generic.h \ elpa/elpa_generic.h \
elpa/elpa_legacy.h \
fdep/fortran_dependencies.mk \ fdep/fortran_dependencies.mk \
fdep/fortran_dependencies.pl \ fdep/fortran_dependencies.pl \
manual_cpp \ manual_cpp \
...@@ -851,38 +747,7 @@ EXTRA_DIST = \ ...@@ -851,38 +747,7 @@ EXTRA_DIST = \
test_project_C/fdep \ test_project_C/fdep \
test_project_C/m4 \ test_project_C/m4 \
test_project_C/src/test_real.c \ test_project_C/src/test_real.c \
test_project_C/src/test_blacs_infrastructure.F90\ 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
if WITH_SCALAPACK_TESTS if WITH_SCALAPACK_TESTS
EXTRA_DIST += \ EXTRA_DIST += \
......
## Documentation how to switch from the legacy API to the new API of the *ELPA* library ## ## 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. 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 ### ### Using *ELPA* from a Fortran code ###
......
## Users guide for the *ELPA* library ## ## 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). 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 Please do understand that this release deprecated the old, legacy interface API!
[USERS_GUIDE_DEPRECATED_LEGACY_API.md] (USERS_GUIDE_DEPRECATED_LEGACY_API.md). 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). 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. ...@@ -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 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. 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 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). enabled by default (and can be disabled at build time).
With release ELPA 2019.05.001 the legacy API is disabled by default, however, With release ELPA 2019.05.001 the legacy API is disabled by default, however,
can be still switched on at build time. can be still switched on at build time.
Most likely with the release ELPA 2019.11.001 the legacy API will be deprecated and With the release ELPA 2019.11.001 the legacy API will has been deprecated and has been removed.
not supported anymore.
### Table of Contents: ### ### Table of Contents: ###
......
...@@ -478,7 +478,6 @@ stage = { ...@@ -478,7 +478,6 @@ stage = {
api = { api = {
"new_api" : "", "new_api" : "",
"legacy_api" : "_legacy_api",
} }
compiler = { compiler = {
...@@ -509,14 +508,6 @@ for comp, s, a in product( ...@@ -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+" \ -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 \ -C \" FC=mpiifort PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig \
--enable-option-checking=fatal || { cat config.log; exit 1; } \" ") --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 (comp == "gnu"):
if (a == "new_api"): if (a == "new_api"):
...@@ -527,14 +518,6 @@ for comp, s, a in product( ...@@ -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+" \ -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 \ -C \" FC=mpif90 PKG_CONFIG_PATH=$PWD/installdest/lib/pkgconfig \
--enable-option-checking=fatal || { cat config.log; exit 1; } \" ") --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("\n\n")
print("#The tests follow here") print("#The tests follow here")
......
...@@ -52,24 +52,6 @@ fi ...@@ -52,24 +52,6 @@ fi
enable_legacy=no 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_MSG_CHECKING(whether in C interface the error argument should be optional)
AC_ARG_ENABLE([optional-argument-in-C-API], AC_ARG_ENABLE([optional-argument-in-C-API],
AS_HELP_STRING([--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], ...@@ -83,7 +65,7 @@ AC_ARG_ENABLE([optional-argument-in-C-API],
], ],
[optional_c_error_argument=no]) [optional_c_error_argument=no])
AC_MSG_RESULT([${optional_c_error_argument}]) 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 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]) AC_DEFINE([OPTIONAL_C_ERROR_ARGUMENT], [1], [enable error argument in C-API to be optional])
fi fi
...@@ -228,9 +210,6 @@ AC_ARG_ENABLE([64bit-integer-math-support], ...@@ -228,9 +210,6 @@ AC_ARG_ENABLE([64bit-integer-math-support],
[enable_64bit_integer_math_support="no"]) [enable_64bit_integer_math_support="no"])
AC_MSG_RESULT([$enable_64bit_integer_math_support]) AC_MSG_RESULT([$enable_64bit_integer_math_support])
if test x"${enable_64bit_integer_math_support}" = x"yes"; then 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 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 if test x"${enable_c_tests}" = x"yes"; then
AC_MSG_ERROR([You cannot both define 64bit integer support and C tests. Reconfigure!]) 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], ...@@ -261,9 +240,6 @@ AC_ARG_ENABLE([64bit-integer-mpi-support],
[enable_64bit_integer_mpi_support="no"]) [enable_64bit_integer_mpi_support="no"])
AC_MSG_RESULT([$enable_64bit_integer_mpi_support]) AC_MSG_RESULT([$enable_64bit_integer_mpi_support])
if test x"${enable_64bit_integer_mpi_support}" = x"yes"; then 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]) AC_DEFINE([HAVE_64BIT_INTEGER_MPI_SUPPORT], [1], [allow to link against the 64bit integer versions of the MPI library])
fi fi
AM_CONDITIONAL([HAVE_64BIT_INTEGER_MPI_SUPPORT],[test x"$enable_64bit_integer_mpi_support" = x"yes"]) 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 \ ...@@ -39,14 +39,6 @@ elpa/elpa_generated.h: $(top_srcdir)/src/elpa_impl.F90 \
# $(call extract_interface,!c_no>) # $(call extract_interface,!c_no>)
#endif #endif