1flexiblas(1) The FlexiBLAS Library flexiblas(1)
2
3
4
6 flexiblas - the FlexiBLAS administration tool
7
9 flexiblas [options] command [command-options]
10
11 flexiblas64 [options] command [command-options]
12
14 The flexiblas tool is a command line utility shipped with the FlexiBLAS
15 library. It is used to configure the global and the local flexiblasrc
16 file. Its main purpose it selecting the default BLAS backend used with
17 FlexiBLAS and other runtime specific options. FlexiBLAS uses up to four
18 locations to search for its configuration, a system-wide configuration
19 file, a per-user configuration file, a per-host configuration file, and
20 one configuration file defined by an environment variable FLEXI‐
21 BLAS_CONFIG. The configuration files are evaluated in this order and a
22 later loaded one overwrites the settings of a previously loaded one.
23
24 The flexiblas64 tool is used for the 64-bit integer variant of Flexi‐
25 BLAS.
26
27 Furthermore, it can be used to add or remove BLAS backends form the
28 configuration files.
29
30
31 Hooks
32 FlexiBLAS supports so called hooks to modify/extent/change the behavior
33 of BLAS and LAPACK functions. This can be used for profiling, automatic
34 offloadlind, and other debuging purposes. The hooks are configured
35 either via the FLEXIBLAS_HOOK environment variable or the flexiblas
36 tool. The FLEXIBLAS_HOOK variable contains a colon separate list of
37 hooks or shared libraries containing the hook. The hooks are loaded in
38 the order they are specified. If the hook_enabled setting in a configu‐
39 ration file is set but empty all hooks are disabled for this configura‐
40 tion file. In this way the per host setting can disable the user set‐
41 tings. Using the hook disableall command the hook_enabled entry is
42 removed and thus no hook settings are in the configuration.
43
44
45 Configuration Priority
46 FlexiBLAS uses serveral configuration paths to select the BLAS backend
47 or enable and disable other functionality. The configuration is read in
48 the following order, thereby previous read information is overwritten.
49 That means that last read configuration has the highest priority.
50
51 1. /etc/flexiblasrc - The system wide configuration file, hooks can not
52 be configured here.
53
54 2. /etc/flexiblasrc.d/*.conf - Additional system wide configurations,
55 read only.
56
57 3. ${HOME}/flexiblasrc - The user's configuration file.
58
59 4. ${HOME}/flexiblasrc.$(hostname) - The user's configuration file on a
60 host, useful for NFS homedirectories.
61
62 5. FLEXIBLAS_CONFIG - The environment variable is used to specified a
63 separate configuration file, e.g. per project.
64
65 6. FLEXIBLAS, FLEXIBLAS_HOOK - Select a BLAS implementation or a hook
66 without changing the config.
67
68
69 64-bit Integers
70 If FlexiBLAS is compiled with 64 bit intergers, flexiblas is replaced
71 by flexiblas64 and FLEXIBLAS is replaced by FLEXIBLAS64 in all names of
72 configuration files, environment variable, etc.
73
74
76 Commands
77 help Print information about the tool and its usage.
78
79 print Print the whole BLAS related configuration including search
80 paths, default settings, etc.
81
82 list List all available BLAS libraries from the configuration files.
83
84 default BLASNAME
85 Sets the default BLAS backend in the selected configuration
86 file.
87
88 default
89 Removes the default setting from the selected configuration
90 file.
91
92 add BLASNAME sharedlibrary.so ["comment string"]
93 Add a new BLAS backend called "BLASNAME" to the selected config‐
94 uration file. This will create a section like
95
96 [BLASNAME]
97 library=sharedlibrary.so
98 comment="comment string"
99
100 in the selected configuration file. The comment string is
101 optional.
102
103 remove NAME
104 Remove a BLAS backed called "NAME" from the selected configura‐
105 tion file.
106
107 set property [value]
108 Set a property in the configuration file. If the value is not
109 given the property is reset to its default. The available prop‐
110 erties are listed below.
111
112
113 Hook commands:
114 Hooks are additional plugins that integrate in the call of a BLAS or
115 LAPACK function. They are used for debugging or profiling purpose.
116
117
118 hook list
119 List all available hooks. The hooks are automatically found in
120 the FlexiBLAS library directories.
121
122 hook show hook-name
123 Show details about a specific hook. This includes the name, the
124 authors, a short description, and the list of configurable
125 options.
126
127 hook enable hook-name
128 Enable a hook. If more than one hook is enabled they are exe‐
129 cuted in the order they got enabled.
130
131 hook disable hook-name
132 Disable a hook.
133
134 hook disableall
135 Disable all hooks in a configuration and remove the setting from
136 the configuration. This is necessary if, i.e., hooks are enabled
137 in the user configuration and the host configuration file has an
138 empty hook_enabled field. In this case the FlexiBLAS does not
139 use a hook since the host configuration overwrites the user con‐
140 figuration. Then hook disableall is used to remove the
141 hook_enabled from the host configuration.
142
143 hook enabled
144 Show all enabled hooks in the configuration files.
145
146 hook active
147 Show the currently active hooks and from which configuration
148 file they are loaded.
149
150 hook set hook-name option-name value
151 Set an option for a hook to the given value. All available
152 options for a hook can be shown with the hook show command.
153 0ook-name option-name Unset an option for a hook.
154
155
156 General Options:
157 -u, --user
158 Edit the user's flexiblasrc configuration (default options,
159 except of executing as root).
160
161 -g, --global
162 Edit the global flexiblasrc configuration (default in case of
163 executing as root).
164
165 -H, --host
166 Edit the host configuration file.
167
168 -E, --environment
169 Edit the configuration file given by the environment variable
170 FLEXIBLAS_CONFIG.
171
172 -p, --pipe
173 Make the output of some commands, like list pipe compatible to
174 use them in scripts.
175
176 -h, --help
177 Print this information and exit.
178
179 -v, --version
180 Print the versionformation and exit.
181
182
183 Properties
184 verbose integer
185 Change the verbosity level of FlexiBLAS. The default verbosity
186 level is 0 which only displays critical errors. If a level
187 larger than is specified, FlexiBLAS will produce many debug
188 information on stderr.
189
190 nolapack integer
191 If the value is non zero, FlexiBLAS does not load the LAPACK
192 functions from the backend. That means that only the internal
193 LAPACK routines are used.
194
196 /etc/flexiblasrc
197 System-wide FlexiBLAS configuration file.
198
199 /etc/flexiblasrc.d/*.conf
200 Additional system-wide configuration files. Read-only, Installed
201 by BLAS library to be included in FlexiBLAS.
202
203 ~/.flexiblasrc
204 User FlexiBLAS configuration file.
205
206 ~/.flexiblasrc.$(hostname)
207 User FlexiBLAS configuration file for a specific host.
208
209
211 FLEXIBLAS_CONFIG
212 Using the FLEXIBLAS_CONFIG environment variable an additional
213 configuration can be set. This can be used for per-project set‐
214 tings.
215
216 FLEXIBLAS
217 Select a BLAS implementation ignoring the configuration set‐
218 tings. If the content of the variable is a path to a shared
219 object containing a BLAS library, this is used as BLAS implemen‐
220 tation. It is not required that this BLAS library is configured
221 in any of the configuration files.
222
223 FLEXIBLAS_HOOK
224 The FLEXIBLAS_HOOK variable contains a colon separated list of
225 hooks which should be loaded. If a hook is a path to a shared
226 object instead of a name of an available hook, FlexiBLAS tries
227 to load this library as a hook,
228
229 FLEXIBLAS_LIBRARY_PATH
230 The FLEXIBLAS_LIBRARY_PATH variable contains a colon separated
231 list of addtional search paths for FlexiBLAS. The paths are
232 used to find BLAS implementations and hooks.
233
234
236 The current information about the developers and reporting bugs can be
237 found on the FlexiBLAS homepage.
238
239 FlexiBLAS Homepage: <http://www.mpi-magdeburg.mpg.de/projects/flexi‐
240 blas>
241
243 Martin Koehler, Jens Saak
244
246 M. Koehler and J. Saak, FlexiBLAS - A flexible BLAS library with runtime exchangeable backends,
247 LAPACK Working Note 284, 2013
248
249
251 Copyright (C) 2013-2020 Martin Koehler
252
254 License GPLv3+: GNU GPL version 3 or later
255 <http://gnu.org/licenses/gpl.html>. This is free software: you are
256 free to change and redistribute it. There is NO WARRANTY, to the
257 extent permitted by law.
258
259
260
261
262M. Koehler 2013-2020 flexiblas(1)