Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
elpa
elpa
Commits
734ab46b
Commit
734ab46b
authored
Dec 14, 2017
by
Lorenz Huedepohl
Browse files
Merge branch 'master_pre_stage' of
https://gitlab.mpcdf.mpg.de/elpa/elpa
parents
f52e77d9
9e0fc71c
Changes
9
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
INSTALL.md
View file @
734ab46b
...
...
@@ -28,7 +28,7 @@ for the documentation how to proceed.
*ELPA*
can be installed with the build steps
-
configure
-
make
-
make check
-
make check
| or make check CHECK_LEVEL=extended
-
make install
Please look at configure --help for all available options.
...
...
Makefile.am
View file @
734ab46b
...
...
@@ -556,26 +556,26 @@ include legacy_test_programs.am
endif
noinst_PROGRAMS
+=
double_instance@SUFFIX@
check_SCRIPTS
+=
double_instance@SUFFIX@.sh
check_SCRIPTS
+=
double_instance@SUFFIX@
_default
.sh
double_instance@SUFFIX@
_SOURCES
=
test
/Fortran/elpa2/double_instance.F90
double_instance@SUFFIX@
_LDADD
=
$(test_program_ldadd)
double_instance@SUFFIX@
_FCFLAGS
=
$(AM_FCFLAGS)
$(FC_MODINC)
test_modules
$(FC_MODINC)
modules
noinst_PROGRAMS
+=
real_2stage_banded@SUFFIX@
check_SCRIPTS
+=
real_2stage_banded@SUFFIX@.sh
check_SCRIPTS
+=
real_2stage_banded@SUFFIX@
_default
.sh
real_2stage_banded@SUFFIX@
_SOURCES
=
test
/Fortran/elpa2/real_2stage_banded.F90
real_2stage_banded@SUFFIX@
_LDADD
=
$(test_program_ldadd)
real_2stage_banded@SUFFIX@
_FCFLAGS
=
$(AM_FCFLAGS)
$(FC_MODINC)
test_modules
$(FC_MODINC)
modules
noinst_PROGRAMS
+=
complex_2stage_banded@SUFFIX@
check_SCRIPTS
+=
complex_2stage_banded@SUFFIX@.sh
check_SCRIPTS
+=
complex_2stage_banded@SUFFIX@
_default
.sh
complex_2stage_banded@SUFFIX@
_SOURCES
=
test
/Fortran/elpa2/complex_2stage_banded.F90
complex_2stage_banded@SUFFIX@
_LDADD
=
$(test_program_ldadd)
complex_2stage_banded@SUFFIX@
_FCFLAGS
=
$(AM_FCFLAGS)
$(FC_MODINC)
test_modules
$(FC_MODINC)
modules
if
WANT_SINGLE_PRECISION_REAL
noinst_PROGRAMS
+=
single_real_2stage_banded@SUFFIX@
check_SCRIPTS
+=
single_real_2stage_banded@SUFFIX@.sh
check_SCRIPTS
+=
single_real_2stage_banded@SUFFIX@
_default
.sh
single_real_2stage_banded@SUFFIX@
_SOURCES
=
test
/Fortran/elpa2/single_real_2stage_banded.F90
single_real_2stage_banded@SUFFIX@
_LDADD
=
$(test_program_ldadd)
single_real_2stage_banded@SUFFIX@
_FCFLAGS
=
$(AM_FCFLAGS)
$(FC_MODINC)
test_modules
$(FC_MODINC)
modules
...
...
@@ -583,14 +583,14 @@ endif
if
WANT_SINGLE_PRECISION_COMPLEX
noinst_PROGRAMS
+=
single_complex_2stage_banded@SUFFIX@
check_SCRIPTS
+=
single_complex_2stage_banded@SUFFIX@.sh
check_SCRIPTS
+=
single_complex_2stage_banded@SUFFIX@
_default
.sh
single_complex_2stage_banded@SUFFIX@
_SOURCES
=
test
/Fortran/elpa2/single_complex_2stage_banded.F90
single_complex_2stage_banded@SUFFIX@
_LDADD
=
$(test_program_ldadd)
single_complex_2stage_banded@SUFFIX@
_FCFLAGS
=
$(AM_FCFLAGS)
$(FC_MODINC)
test_modules
$(FC_MODINC)
modules
endif
# test scripts
T
# test scripts
TASKS
?=
2
if
WITH_MPI
wrapper
=
$(MPI_BINARY)
-n
$
${
TASKS
:-
$(TASKS)
}
...
...
@@ -598,7 +598,12 @@ else
wrapper
=
endif
TESTS
=
$(check_SCRIPTS)
%.sh
:
%
%_extended.sh
:
%
@
echo
"#!/bin/bash"
>
$@
@
echo
'if [ "$$CHECK_LEVEL" = "extended" ] ; then
$(wrapper)
./$^ $$TEST_FLAGS ; else exit 77; fi'
>>
$@
@
chmod
+x
$@
%_default.sh
:
%
@
echo
"#!/bin/bash"
>
$@
@
echo
'
$(wrapper)
'
./
$^
'$$TEST_FLAGS'
>>
$@
@
chmod
+x
$@
...
...
README.md
View file @
734ab46b
...
...
@@ -14,7 +14,7 @@ coverage](https://gitlab.mpcdf.mpg.de/elpa/badges/master/coverage.svg)](http://e
[
![License: LGPL v3
][
license-badge
]
](LICENSE)
[
license-badge
]:
https://img.shields.io/badge/License-LGPL%20v3-blue.svg
aa
About
*ELPA*
##
About *ELPA*
##
The computation of selected or all eigenvalues and eigenvectors of a symmetric
(Hermitian) matrix has high relevance for various scientific disciplines.
...
...
generate_automake_test_programs.py
View file @
734ab46b
...
...
@@ -2,68 +2,66 @@
from
__future__
import
print_function
from
itertools
import
product
language_flag
=
{
"Fortran"
:
"
Fortran
"
,
"C"
:
"
C
"
,
language_flag
=
{
"Fortran"
:
""
,
"C"
:
"
_c_version
"
,
}
domain_flag
=
{
"real"
:
"-DTEST_REAL"
,
"complex"
:
"-DTEST_COMPLEX"
,
"real"
:
"-DTEST_REAL"
,
"complex"
:
"-DTEST_COMPLEX"
,
}
prec_flag
=
{
"double"
:
"-DTEST_DOUBLE"
,
"single"
:
"-DTEST_SINGLE"
,
"double"
:
"-DTEST_DOUBLE"
,
"single"
:
"-DTEST_SINGLE"
,
}
solver_flag
=
{
"1stage"
:
"-DTEST_SOLVER_1STAGE"
,
"2stage"
:
"-DTEST_SOLVER_2STAGE"
,
"scalapack_all"
:
"-DTEST_SCALAPACK_ALL"
,
"scalapack_part"
:
"-DTEST_SCALAPACK_PART"
,
"1stage"
:
"-DTEST_SOLVER_1STAGE"
,
"2stage"
:
"-DTEST_SOLVER_2STAGE"
,
"scalapack_all"
:
"-DTEST_SCALAPACK_ALL"
,
"scalapack_part"
:
"-DTEST_SCALAPACK_PART"
,
}
gpu_flag
=
{
0
:
"-DTEST_GPU=0"
,
1
:
"-DTEST_GPU=1"
,
0
:
"-DTEST_GPU=0"
,
1
:
"-DTEST_GPU=1"
,
}
matrix_flag
=
{
"random"
:
"-DTEST_MATRIX_RANDOM"
,
"analytic"
:
"-DTEST_MATRIX_ANALYTIC"
,
"toeplitz"
:
"-DTEST_MATRIX_TOEPLITZ"
,
"frank"
:
"-DTEST_MATRIX_FRANK"
,
"random"
:
"-DTEST_MATRIX_RANDOM"
,
"analytic"
:
"-DTEST_MATRIX_ANALYTIC"
,
"toeplitz"
:
"-DTEST_MATRIX_TOEPLITZ"
,
"frank"
:
"-DTEST_MATRIX_FRANK"
,
}
qr_flag
=
{
0
:
"-DTEST_QR_DECOMPOSITION=0"
,
1
:
"-DTEST_QR_DECOMPOSITION=1"
,
0
:
"-DTEST_QR_DECOMPOSITION=0"
,
1
:
"-DTEST_QR_DECOMPOSITION=1"
,
}
test_type_flag
=
{
"eigenvectors"
:
"-DTEST_EIGENVECTORS"
,
"eigenvalues"
:
"-DTEST_EIGENVALUES"
,
"solve_tridiagonal"
:
"-DTEST_SOLVE_TRIDIAGONAL"
,
"cholesky"
:
"-DTEST_CHOLESKY"
,
"hermitian_multiply"
:
"-DTEST_HERMITIAN_MULTIPLY"
,
"eigenvectors"
:
"-DTEST_EIGENVECTORS"
,
"eigenvalues"
:
"-DTEST_EIGENVALUES"
,
"solve_tridiagonal"
:
"-DTEST_SOLVE_TRIDIAGONAL"
,
"cholesky"
:
"-DTEST_CHOLESKY"
,
"hermitian_multiply"
:
"-DTEST_HERMITIAN_MULTIPLY"
,
}
layout_flag
=
{
"all_layouts"
:
"-DTEST_ALL_LAYOUTS"
,
"square"
:
""
"all_layouts"
:
"-DTEST_ALL_LAYOUTS"
,
"square"
:
""
}
for
lang
,
m
,
g
,
q
,
t
,
p
,
d
,
s
,
l
in
product
(
sorted
(
language_flag
.
keys
()),
sorted
(
matrix_flag
.
keys
()),
sorted
(
gpu_flag
.
keys
()),
sorted
(
qr_flag
.
keys
()),
sorted
(
test_type_flag
.
keys
()),
sorted
(
prec_flag
.
keys
()),
sorted
(
domain_flag
.
keys
()),
sorted
(
solver_flag
.
keys
()),
sorted
(
layout_flag
.
keys
())):
if
(
lang
==
"C"
):
continue
if
(
lang
==
"C"
and
(
m
==
"analytic"
or
l
==
"all_layouts"
)):
for
lang
,
m
,
g
,
q
,
t
,
p
,
d
,
s
,
lay
in
product
(
sorted
(
language_flag
.
keys
()),
sorted
(
matrix_flag
.
keys
()),
sorted
(
gpu_flag
.
keys
()),
sorted
(
qr_flag
.
keys
()),
sorted
(
test_type_flag
.
keys
()),
sorted
(
prec_flag
.
keys
()),
sorted
(
domain_flag
.
keys
()),
sorted
(
solver_flag
.
keys
()),
sorted
(
layout_flag
.
keys
())):
if
lang
==
"C"
and
(
m
==
"analytic"
or
m
==
"toeplitz"
or
m
==
"frank"
or
lay
==
"all_layouts"
):
continue
# exclude some test combinations
...
...
@@ -73,17 +71,16 @@ for lang, m, g, q, t, p, d, s, l in product(
continue
# Frank tests only for "eigenvectors" and eigenvalues and real double precision case
if
(
m
==
"frank"
and
((
t
!=
"eigenvectors"
or
t
!=
"eigenvalues"
)
and
(
d
!=
"real"
or
p
!=
"double"
))):
if
(
m
==
"frank"
and
((
t
!=
"eigenvectors"
or
t
!=
"eigenvalues"
)
and
(
d
!=
"real"
or
p
!=
"double"
))):
continue
if
(
s
in
[
"scalapack_all"
,
"scalapack_part"
]
and
(
g
==
1
or
t
!=
"eigenvectors"
or
m
!=
"analytic"
)):
if
(
s
in
[
"scalapack_all"
,
"scalapack_part"
]
and
(
g
==
1
or
t
!=
"eigenvectors"
or
m
!=
"analytic"
)):
continue
# solve tridiagonal only for real toeplitz matrix in 1stage
if
(
t
==
"solve_tridiagonal"
and
(
s
!=
"1stage"
or
d
!=
"real"
or
m
!=
"toeplitz"
)):
if
(
t
==
"solve_tridiagonal"
and
(
s
!=
"1stage"
or
d
!=
"real"
or
m
!=
"toeplitz"
)):
continue
# cholesky tests only 1stage and teoplitz matrix
if
(
t
==
"cholesky"
and
(
m
!=
"toeplitz"
or
s
==
"2stage"
)):
continue
...
...
@@ -106,13 +103,16 @@ for lang, m, g, q, t, p, d, s, l in product(
extra_flags
=
[]
if
(
t
==
"eigenvalues"
and
kernel
==
"all_kernels"
):
continue
continue
if
(
lang
==
"C"
and
kernel
==
"all_kernels"
):
continue
if
(
g
==
1
):
print
(
"if WITH_GPU_VERSION"
)
endifs
+=
1
if
(
l
==
"all_layouts"
):
if
(
l
ay
==
"all_layouts"
):
print
(
"if WITH_MPI"
)
endifs
+=
1
...
...
@@ -125,8 +125,8 @@ for lang, m, g, q, t, p, d, s, l in product(
elif
kernel
==
"all_kernels"
:
extra_flags
.
append
(
"-DTEST_ALL_KERNELS"
)
if
layout_flag
[
l
]:
extra_flags
.
append
(
layout_flag
[
l
])
if
layout_flag
[
l
ay
]:
extra_flags
.
append
(
layout_flag
[
l
ay
])
if
(
p
==
"single"
):
if
(
d
==
"real"
):
...
...
@@ -137,67 +137,51 @@ for lang, m, g, q, t, p, d, s, l in product(
raise
Exception
(
"Oh no!"
)
endifs
+=
1
if
(
lang
==
"Fortran"
):
name
=
"test_{0}_{1}_{2}_{3}{4}_{5}{6}{7}{8}"
.
format
(
d
,
p
,
t
,
s
,
""
if
kernel
==
"nokernel"
else
"_"
+
kernel
,
"gpu_"
if
g
else
""
,
"qr_"
if
q
else
""
,
m
,
"_all_layouts"
if
l
==
"all_layouts"
else
""
)
print
(
"if BUILD_KCOMPUTER"
)
print
(
"bin_PROGRAMS += "
+
name
)
print
(
"else"
)
print
(
"noinst_PROGRAMS += "
+
name
)
print
(
"endif"
)
print
(
"check_SCRIPTS += "
+
name
+
".sh"
)
name
=
"test{langsuffix}_{d}_{p}_{t}_{s}{kernelsuffix}_{gpusuffix}{qrsuffix}{m}{layoutsuffix}"
.
format
(
langsuffix
=
language_flag
[
lang
],
d
=
d
,
p
=
p
,
t
=
t
,
s
=
s
,
kernelsuffix
=
""
if
kernel
==
"nokernel"
else
"_"
+
kernel
,
gpusuffix
=
"gpu_"
if
g
else
""
,
qrsuffix
=
"qr_"
if
q
else
""
,
m
=
m
,
layoutsuffix
=
"_all_layouts"
if
lay
==
"all_layouts"
else
""
)
print
(
"if BUILD_KCOMPUTER"
)
print
(
"bin_PROGRAMS += "
+
name
)
print
(
"else"
)
print
(
"noinst_PROGRAMS += "
+
name
)
print
(
"endif"
)
if
lay
==
"square"
:
print
(
"check_SCRIPTS += "
+
name
+
"_default.sh"
)
elif
lay
==
"all_layouts"
:
print
(
"check_SCRIPTS += "
+
name
+
"_extended.sh"
)
else
:
raise
Exception
(
"Unknown layout {0}"
.
format
(
lay
))
if
lang
==
"Fortran"
:
print
(
name
+
"_SOURCES = test/Fortran/test.F90"
)
print
(
name
+
"_LDADD = $(test_program_ldadd)"
)
print
(
name
+
"_FCFLAGS = $(test_program_fcflags)
\\
"
)
print
(
" -DTEST_CASE=
\\\"
{0}
\\\"
\\
"
.
format
(
name
))
print
(
" "
+
"
\\\n
"
.
join
([
domain_flag
[
d
],
prec_flag
[
p
],
test_type_flag
[
t
],
solver_flag
[
s
],
gpu_flag
[
g
],
qr_flag
[
q
],
matrix_flag
[
m
]]
+
extra_flags
))
print
(
"endif
\n
"
*
endifs
)
if
(
lang
==
"C"
):
name
=
"test_c_version_{0}_{1}_{2}_{3}{4}_{5}{6}{7}{8}"
.
format
(
d
,
p
,
t
,
s
,
""
if
kernel
==
"nokernel"
else
"_"
+
kernel
,
"gpu_"
if
g
else
""
,
"qr_"
if
q
else
""
,
m
,
"_all_layouts"
if
l
==
"all_layouts"
else
""
)
print
(
"if BUILD_KCOMPUTER"
)
print
(
"bin_PROGRAMS += "
+
name
)
print
(
"else"
)
print
(
"noinst_PROGRAMS += "
+
name
)
print
(
"endif"
)
print
(
"check_SCRIPTS += "
+
name
+
".sh"
)
elif
lang
==
"C"
:
print
(
name
+
"_SOURCES = test/C/test.c"
)
print
(
name
+
"_LDADD = $(test_program_ldadd) $(FCLIBS)"
)
print
(
name
+
"_CFLAGS = $(test_program_fcflags)
\\
"
)
print
(
" -DTEST_CASE=
\\\"
{0}
\\\"
\\
"
.
format
(
name
))
print
(
" "
+
"
\\\n
"
.
join
([
domain_flag
[
d
],
prec_flag
[
p
],
test_type_flag
[
t
],
solver_flag
[
s
],
gpu_flag
[
g
],
qr_flag
[
q
],
matrix_flag
[
m
]]
+
extra_flags
))
print
(
"endif
\n
"
*
endifs
)
for
p
,
d
in
product
(
sorted
(
prec_flag
.
keys
()),
sorted
(
domain_flag
.
keys
())):
print
(
name
+
"_CFLAGS = $(test_program_cflags)
\\
"
)
print
(
" -DTEST_CASE=
\\\"
{0}
\\\"
\\
"
.
format
(
name
))
print
(
" "
+
"
\\\n
"
.
join
([
domain_flag
[
d
],
prec_flag
[
p
],
test_type_flag
[
t
],
solver_flag
[
s
],
gpu_flag
[
g
],
qr_flag
[
q
],
matrix_flag
[
m
]]
+
extra_flags
))
print
(
"endif
\n
"
*
endifs
)
for
lang
,
p
,
d
in
product
(
sorted
(
language_flag
.
keys
()),
sorted
(
prec_flag
.
keys
()),
sorted
(
domain_flag
.
keys
())):
endifs
=
0
if
(
p
==
"single"
):
if
(
d
==
"real"
):
...
...
@@ -208,15 +192,21 @@ for p, d in product(sorted(prec_flag.keys()), sorted(domain_flag.keys())):
raise
Exception
(
"Oh no!"
)
endifs
+=
1
name
=
"test_autotune_{
0
}_{
1
}"
.
format
(
d
,
p
)
name
=
"test_autotune
{langsuffix}
_{
d
}_{
p
}"
.
format
(
langsuffix
=
language_flag
[
lang
],
d
=
d
,
p
=
p
)
print
(
"check_SCRIPTS += "
+
name
+
"_extended.sh"
)
print
(
"noinst_PROGRAMS += "
+
name
)
#if (p != "single"):
# print("check_SCRIPTS += " + name + ".sh")
print
(
name
+
"_SOURCES = test/Fortran/test_autotune.F90"
)
print
(
name
+
"_LDADD = $(test_program_ldadd)"
)
print
(
name
+
"_FCFLAGS = $(test_program_fcflags)
\\
"
)
if
lang
==
"Fortran"
:
print
(
name
+
"_SOURCES = test/Fortran/test_autotune.F90"
)
print
(
name
+
"_LDADD = $(test_program_ldadd)"
)
print
(
name
+
"_FCFLAGS = $(test_program_fcflags)
\\
"
)
elif
lang
==
"C"
:
print
(
name
+
"_SOURCES = test/C/test_autotune.c"
)
print
(
name
+
"_LDADD = $(test_program_ldadd) $(FCLIBS)"
)
print
(
name
+
"_CFLAGS = $(test_program_cflags)
\\
"
)
print
(
" "
+
"
\\\n
"
.
join
([
domain_flag
[
d
],
prec_flag
[
p
]]))
domain_flag
[
d
],
prec_flag
[
p
]]))
print
(
"endif
\n
"
*
endifs
)
legacy_test_programs.am
View file @
734ab46b
noinst_PROGRAMS += \
real_2stage_c_version@SUFFIX@ \
autotune_c_version@SUFFIX@ \
legacy_real_1stage@SUFFIX@ \
legacy_complex_1stage@SUFFIX@ \
legacy_real_2stage@SUFFIX@ \
...
...
@@ -74,14 +72,6 @@ noinst_PROGRAMS += \
endif
endif
real_2stage_c_version@SUFFIX@_SOURCES = test/C/real_2stage_c_version.c
real_2stage_c_version@SUFFIX@_LDADD = $(test_program_ldadd) $(FCLIBS)
real_2stage_c_version@SUFFIX@_FCFLAGS = $(test_program_fcflags)
autotune_c_version@SUFFIX@_SOURCES = test/C/autotune_c_version.c
autotune_c_version@SUFFIX@_LDADD = $(test_program_ldadd) $(FCLIBS)
autotune_c_version@SUFFIX@_FCFLAGS = $(test_program_fcflags)
legacy_real_1stage_c_version@SUFFIX@_SOURCES = test/C/elpa1/legacy_interface/legacy_real_1stage_c_version.c
legacy_real_1stage_c_version@SUFFIX@_LDADD = $(test_program_ldadd) $(FCLIBS)
legacy_real_1stage_c_version@SUFFIX@_FCFLAGS = $(test_program_fcflags)
...
...
@@ -355,73 +345,73 @@ endif
endif
check_SCRIPTS += \
legacy_real_1stage@SUFFIX@.sh \
legacy_real_2stage@SUFFIX@.sh \
legacy_real_2stage_default@SUFFIX@.sh \
legacy_complex_1stage@SUFFIX@.sh \
legacy_complex_2stage@SUFFIX@.sh \
legacy_real_2stage_qr@SUFFIX@.sh \
legacy_complex_2stage_default@SUFFIX@.sh \
legacy_real_2stage_api@SUFFIX@.sh \
legacy_complex_2stage_api@SUFFIX@.sh \
legacy_real_driver@SUFFIX@.sh \
legacy_complex_driver@SUFFIX@.sh \
legacy_real_toeplitz@SUFFIX@.sh \
legacy_real_cholesky@SUFFIX@.sh \
legacy_real_invert_trm@SUFFIX@.sh \
legacy_real_transpose_multiply@SUFFIX@.sh \
legacy_complex_cholesky@SUFFIX@.sh \
legacy_complex_invert_trm@SUFFIX@.sh \
legacy_complex_transpose_multiply@SUFFIX@.sh \
legacy_real_1stage_c_version@SUFFIX@.sh \
legacy_complex_1stage_c_version@SUFFIX@.sh \
legacy_real_2stage_c_version@SUFFIX@.sh \
legacy_complex_2stage_c_version@SUFFIX@.sh \
legacy_real_driver_c_version@SUFFIX@.sh \
legacy_complex_driver_c_version@SUFFIX@.sh
legacy_real_1stage@SUFFIX@
_default
.sh \
legacy_real_2stage@SUFFIX@
_default
.sh \
legacy_real_2stage_default@SUFFIX@
_default
.sh \
legacy_complex_1stage@SUFFIX@
_default
.sh \
legacy_complex_2stage@SUFFIX@
_default
.sh \
legacy_real_2stage_qr@SUFFIX@
_default
.sh \
legacy_complex_2stage_default@SUFFIX@
_default
.sh \
legacy_real_2stage_api@SUFFIX@
_default
.sh \
legacy_complex_2stage_api@SUFFIX@
_default
.sh \
legacy_real_driver@SUFFIX@
_default
.sh \
legacy_complex_driver@SUFFIX@
_default
.sh \
legacy_real_toeplitz@SUFFIX@
_default
.sh \
legacy_real_cholesky@SUFFIX@
_default
.sh \
legacy_real_invert_trm@SUFFIX@
_default
.sh \
legacy_real_transpose_multiply@SUFFIX@
_default
.sh \
legacy_complex_cholesky@SUFFIX@
_default
.sh \
legacy_complex_invert_trm@SUFFIX@
_default
.sh \
legacy_complex_transpose_multiply@SUFFIX@
_default
.sh \
legacy_real_1stage_c_version@SUFFIX@
_default
.sh \
legacy_complex_1stage_c_version@SUFFIX@
_default
.sh \
legacy_real_2stage_c_version@SUFFIX@
_default
.sh \
legacy_complex_2stage_c_version@SUFFIX@
_default
.sh \
legacy_real_driver_c_version@SUFFIX@
_default
.sh \
legacy_complex_driver_c_version@SUFFIX@
_default
.sh
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
legacy_single_real_1stage@SUFFIX@.sh \
legacy_single_real_2stage@SUFFIX@.sh \
legacy_single_real_2stage_default@SUFFIX@.sh \
legacy_single_real_2stage_qr@SUFFIX@.sh \
legacy_single_real_driver@SUFFIX@.sh \
legacy_single_real_cholesky@SUFFIX@.sh \
legacy_single_real_invert_trm@SUFFIX@.sh \
legacy_single_real_transpose_multiply@SUFFIX@.sh \
legacy_single_real_2stage_api@SUFFIX@.sh \
legacy_single_real_driver_c_version@SUFFIX@.sh
legacy_single_real_1stage@SUFFIX@
_default
.sh \
legacy_single_real_2stage@SUFFIX@
_default
.sh \
legacy_single_real_2stage_default@SUFFIX@
_default
.sh \
legacy_single_real_2stage_qr@SUFFIX@
_default
.sh \
legacy_single_real_driver@SUFFIX@
_default
.sh \
legacy_single_real_cholesky@SUFFIX@
_default
.sh \
legacy_single_real_invert_trm@SUFFIX@
_default
.sh \
legacy_single_real_transpose_multiply@SUFFIX@
_default
.sh \
legacy_single_real_2stage_api@SUFFIX@
_default
.sh \
legacy_single_real_driver_c_version@SUFFIX@
_default
.sh
endif
if WANT_SINGLE_PRECISION_COMPLEX
check_SCRIPTS += \
legacy_single_complex_1stage@SUFFIX@.sh \
legacy_single_complex_2stage@SUFFIX@.sh \
legacy_single_complex_2stage_default@SUFFIX@.sh \
legacy_single_complex_cholesky@SUFFIX@.sh \
legacy_single_complex_driver@SUFFIX@.sh \
legacy_single_complex_invert_trm@SUFFIX@.sh \
legacy_single_complex_transpose_multiply@SUFFIX@.sh \
legacy_single_complex_2stage_api@SUFFIX@.sh \
legacy_single_complex_driver_c_version@SUFFIX@.sh
legacy_single_complex_1stage@SUFFIX@
_default
.sh \
legacy_single_complex_2stage@SUFFIX@
_default
.sh \
legacy_single_complex_2stage_default@SUFFIX@
_default
.sh \
legacy_single_complex_cholesky@SUFFIX@
_default
.sh \
legacy_single_complex_driver@SUFFIX@
_default
.sh \
legacy_single_complex_invert_trm@SUFFIX@
_default
.sh \
legacy_single_complex_transpose_multiply@SUFFIX@
_default
.sh \
legacy_single_complex_2stage_api@SUFFIX@
_default
.sh \
legacy_single_complex_driver_c_version@SUFFIX@
_default
.sh
endif
if WITH_GPU_VERSION
check_SCRIPTS += \
legacy_real_1stage_gpu@SUFFIX@.sh \
legacy_complex_1stage_gpu@SUFFIX@.sh \
legacy_real_2stage_gpu@SUFFIX@.sh \
legacy_complex_2stage_gpu@SUFFIX@.sh
legacy_real_1stage_gpu@SUFFIX@
_default
.sh \
legacy_complex_1stage_gpu@SUFFIX@
_default
.sh \
legacy_real_2stage_gpu@SUFFIX@
_default
.sh \
legacy_complex_2stage_gpu@SUFFIX@
_default
.sh
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
legacy_single_real_1stage_gpu@SUFFIX@.sh \
legacy_single_real_2stage_gpu@SUFFIX@.sh
legacy_single_real_1stage_gpu@SUFFIX@
_default
.sh \
legacy_single_real_2stage_gpu@SUFFIX@
_default
.sh
endif
if WANT_SINGLE_PRECISION_COMPLEX
check_SCRIPTS += \
legacy_single_complex_1stage_gpu@SUFFIX@.sh \
legacy_single_complex_2stage_gpu@SUFFIX@.sh
legacy_single_complex_1stage_gpu@SUFFIX@
_default
.sh \
legacy_single_complex_2stage_gpu@SUFFIX@
_default
.sh
endif
endif
test/C/real_2stage_c_version.c
deleted
100644 → 0
View file @
f52e77d9
/* This file is part of ELPA. */
/* */
/* The ELPA library was originally created by the ELPA consortium, */
/* consisting of the following organizations: */
/* */
/* - Max Planck Computing and Data Facility (MPCDF), formerly known as */
/* Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG), */
/* - Bergische Universität Wuppertal, Lehrstuhl für angewandte */
/* Informatik, */
/* - Technische Universität München, Lehrstuhl für Informatik mit */
/* Schwerpunkt Wissenschaftliches Rechnen , */
/* - Fritz-Haber-Institut, Berlin, Abt. Theorie, */
/* - Max-Plack-Institut für Mathematik in den Naturwissenschaften, */
/* Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition, */
/* and */
/* - IBM Deutschland GmbH */
/* */
/* */
/* More information can be found here: */
/* http://elpa.mpcdf.mpg.de/ */
/* */
/* ELPA is free software: you can redistribute it and/or modify */
/* it under the terms of the version 3 of the license of the */
/* GNU Lesser General Public License as published by the Free */
/* Software Foundation. */
/* */
/* ELPA is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU Lesser General Public License for more details. */
/* */
/* You should have received a copy of the GNU Lesser General Public License */
/* along with ELPA. If not, see <http://www.gnu.org/licenses/> */
/* */
/* ELPA reflects a substantial effort on the part of the original */
/* ELPA consortium, and we ask you to respect the spirit of the */
/* license that we chose: i.e., please contribute any changes you */
/* may have back to the original ELPA library distribution, and keep */
/* any derivatives of ELPA under the same license that we chose for */
/* the original distribution, the GNU Lesser General Public License. */
/* */
/* */
#include
"config-f90.h"
#include
<stdio.h>
#include
<stdlib.h>
#ifdef WITH_MPI
#include
<mpi.h>
#endif
#include
<math.h>
#include
<elpa/elpa.h>
#include
<assert.h>
#include
<test/shared/generated.h>
#define DOUBLE_PRECISION_REAL 1
#define assert_elpa_ok(x) assert(x == ELPA_OK)
int
main
(
int
argc
,
char
**
argv
)
{
int
myid
;
int
nprocs
;
#ifndef WITH_MPI
int
MPI_COMM_WORLD
;
#endif
int
na
,
nev
,
nblk
;
int
status
;
int
np_cols
,
np_rows
,
np_colsStart
;
int
my_blacs_ctxt
,
my_prow
,
my_pcol
;
int
mpierr
;
int
my_mpi_comm_world
;
int
mpi_comm_rows
,
mpi_comm_cols
;
int
info
,
*
sc_desc
;
int
na_rows
,
na_cols
;
double
startVal
;
#ifdef DOUBLE_PRECISION_REAL
double
*
a
,
*
z
,
*
as
,
*
ev
;
#else
float
*
a
,
*
z
,
*
as
,
*
ev
;
#endif
int
success
;
elpa_t
handle
;
int
value
,
error
;
#ifdef WITH_MPI
MPI_Init
(
&
argc
,
&
argv
);
MPI_Comm_size
(
MPI_COMM_WORLD
,
&
nprocs
);
MPI_Comm_rank
(
MPI_COMM_WORLD
,
&
myid
);
#else