1elpa_set(3) Library Functions Manual elpa_set(3)
2
3
4
6 elpa_set - set parameter or tunables for the ELPA library
7
8
10 FORTRAN INTERFACE
11 use elpa
12 class(elpa_t), pointer :: elpa
13
14 call elpa%set (character(*) name, datatype value, integer error)
15
16 With the definitions of the input and output variables:
17
18
19 character(*) :: name
20 the name of the option to be set
21
22 datatype :: value
23 the value which should be assigned to the option name. The
24 datatype can be integer or real(kind=c_double).
25
26 integer, optional :: error
27 the returned error code. On success it is ELPA_OK, otherwise an
28 error. The error code can be querried with elpa_strerr(3)
29
30
31 C INTERFACE
32 #include <elpa/elpa.h>
33 elpa_t handle;
34
35 void elpa_set (elpa_t handle, const char *name, datatype value, int
36 *error);
37
38 With the definitions of the input and output variables:
39
40
41 elpa_t handle;
42 the handle of an ELPA object, obtained before with
43 elpa_allocate(3)"
44
45 const char *name;
46 the name of the option to be set.
47
48 datatype value;
49 the value which should be assigned to the option name. Datatype
50 can be either int or double."
51
52
54 The elpa_set function is used to set parameters and tunables for the
55 run-time of the ELPA library. It returns an error code which can be
56 querried with elpa_strerr(3).
57
58 Parameters:
59
60 Parameters of an ELPA instance have to be set BEFORE the ELPA instance
61 is set up with the function elpa_setup(3).
62
63 At the moment the following parameters are supported:
64
65 "na": integer parameter. The global matrix has size (na * na)
66
67 "nev": integer parameter. The number of eigenvectors to be computed in
68 a call to elpa_eigenvectors(3). Must have dimension 1 <= nev <=
69 na.
70
71 "local_nrows":
72 integer parameter. Number of matrix rows stored on this MPI
73 process.
74
75 "local_ncols":
76 integer parameter. Number of matrix cols stored on this MPI
77 process.
78
79 "process_row":
80 integer parameter. Process row number in the 2D domain
81 decomposition.
82
83 "process_col":
84 integer parameter. Process col number in the 2D domain
85 decomposition.
86
87 "mpi_comm_parent":
88 integer parameter. The parent MPI communicator which includes
89 all MPI process which are used in the 2D domain decomposition.
90
91 "bandwidth":
92 integer parameter. Some ELPA compute steps can be accelerated if
93 the matrix is already in banded form. If set, ELPA assumes that
94 the bandwidth of the matrix is the value set.
95
96 "blacs_context":
97 integer parameter. The generalized eigenvalue solver
98 elpa_generalized_eigenvectors(3) use internal calls to some of
99 the scalapack routines. Thus before calling it, the user has to
100 provide properly initialized blacs context.
101
102 "timings":
103 Choose whether time measurements should be done in the ELPA
104 routines.
105
106
107 Tunables:
108
109 Tunables of an ELPA option can be set at anytime.
110
111 At the moment the following parameters are supported:
112
113 "solver":
114 Choose which solver should be used in the compute steps
115 elpa_eigenvalues(3) or elpa_eigenvectors(3). At the moment
116 allowed option are "ELPA_SOLVER_1STAGE" or "ELPA_SOLVER_2STAGE".
117
118 "real_kernel":
119 Choose which real kernel should be used in the
120 elpa_eigenvalues(3) or elpa_eigenvectors(3) compute steps, if
121 solver is set to "ELPA_SOLVER_2STAGE". The available kernels can
122 be querried with elpa2_print_kernels(1).
123
124 "complex_kernel":
125 Choose which complex kernel should be used in the
126 elpa_eigenvalues(3) or elpa_eigenvectors(3) compute steps, if
127 solver is set to "ELPA_SOLVER_2STAGE". The available kernels can
128 be querried with elpa2_print_kernels(1).
129
130 "qr": Choose whether in the real case computations in
131 elpa_eigenvalues(3) or elpa_eigenvectors(3) compute steps, if
132 solver is set to "ELPA_SOLVER_2STAGE", a QR decompostion should
133 be used.
134
135 "qpu": Choose whether accelerated GPU calculations should be used. Only
136 available if ELPA has been build with GPU support.
137
138 "debug":
139 Choose whether, in case of an error, more debug information
140 should be provided.
141
143 elpa2_print_kernels(1) elpa_init(3) elpa_allocate(3) elpa_setup(3)
144 elpa_strerr(3) elpa_eigenvalues(3) elpa_eigenvectors(3)
145 elpa_cholesky(3) elpa_invert_triangular(3) elpa_solve_tridiagonal(3)
146 elpa_hermitian_multiply(3) elpa_deallocate(3) elpa_uninit(3)
147
148
149
150ELPA Sat Jun 3 2017 elpa_set(3)