Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python
import os
import shlex
import tempfile
import subprocess as sp
def run(cmd, **kwargs):
result = sp.run(shlex.split(cmd), check=True, text=True,
stdout=sp.PIPE, stderr=sp.STDOUT, **kwargs)
print(f'Called {cmd}')
print(f' exit code: {result.returncode}')
print(f' stdout: {result.stdout.strip()}')
return result.stdout.strip()
def main():
blacklist = ['OMP', 'GOTO', 'BLAS', 'FSL']
env = os.environ.copy()
for varname in list(env.keys()):
if any(b in varname for b in blacklist):
env.pop(varname)
env['OMP_NUM_THREADS'] = '8'
env['BLAS_NUM_THREADS'] = '8'
run('make')
# Default behaviour should be: OMP multi-threaded, BLAS single threaded.
assert run('./test_fslStartup', env=env) == '8 1 8'
# With FSL_SKIP_GLOBAL, BLAS should be multi-threaded
env['FSL_SKIP_GLOBAL'] = '1'
assert run('./test_fslStartup', env=env) == '8 8 8'
if __name__ == '__main__':
main()