1 | %'command_launch_matlab': creates the command strings for opening a new Matlab |
---|
2 | %session and running a programme in a Linux system('GLNX86','GLNXA64','MACI64') |
---|
3 | %------------------------------------------------------------------------ |
---|
4 | % function cmd=command_launch_matlab(filelog,path_uvmat,ActionPath,ActionName,inputxml,option) |
---|
5 | % |
---|
6 | %OUTPUT |
---|
7 | % cmd=set of system commands (char string) to write in an executable file: [fid,message]=fopen(file_exe,'w'); |
---|
8 | % fprintf(fid,cmd); % fill the executable file with the char string cmd |
---|
9 | % fclose(fid); % close the executable file |
---|
10 | % system(['chmod +x ' file_exe]); % set the file to executable |
---|
11 | % system([file_exe ' &'])% execute the command file |
---|
12 | |
---|
13 | % |
---|
14 | %INPUT: |
---|
15 | % filelog: name (char string) of the file to collect the output in the Matlab command window |
---|
16 | % path_uvmat: path to the UVMAT Matlab toolbox |
---|
17 | % ActionPath: path to the Matlab programme to launch |
---|
18 | % ActionName: name of the programme to launch |
---|
19 | % inputxml: full name, including path, of the xml input parameter file for the programme ActionName |
---|
20 | % option: ='bacground' or 'cluster' depending on the launching option |
---|
21 | |
---|
22 | function cmd=command_launch_matlab(filelog,path_uvmat,ActionPath,ActionName,inputxml,option) |
---|
23 | ThreadOption=''; |
---|
24 | if strcmp(option,'cluster') |
---|
25 | ThreadOption='-singleCompThread'; |
---|
26 | inputxml={inputxml};% single input parameter file |
---|
27 | end |
---|
28 | matlab_ver = ver('MATLAB'); |
---|
29 | matlab_version = matlab_ver.Version; |
---|
30 | cmd=[... |
---|
31 | '#!/bin/bash\n'... |
---|
32 | 'source /etc/profile\n'... |
---|
33 | 'module purge\n'... |
---|
34 | 'module load matlab/' matlab_version '\n'...% CHOICE OF THE SAME MATLAB VERSION AS THE CURRENT MATLAB SESSION (not mandatory) |
---|
35 | 'time_start=$(date +%%s)\n'... |
---|
36 | 'matlab -nodisplay -nosplash -nojvm ''' ThreadOption ''' -logfile ''' filelog ''' <<END_MATLAB\n'...%launch the new Matlab session without display |
---|
37 | 'addpath(''' path_uvmat ''');\n'... |
---|
38 | 'addpath(''' ActionPath ''');\n']; |
---|
39 | for iprocess=1:numel(inputxml) |
---|
40 | cmd=[cmd '' ActionName '(''' inputxml{iprocess} ''');\n']; |
---|
41 | end |
---|
42 | cmd=[cmd 'exit\n' 'END_MATLAB\n']; |
---|
43 | if strcmp(option,'background') |
---|
44 | cmd=[cmd ... |
---|
45 | 'time_end=$(date +%%s)\n'... |
---|
46 | 'echo "global time = " $(($time_end - $time_start)) >> ''' filelog '''\n']; |
---|
47 | end |
---|
48 | |
---|
49 | %% case cluster: |
---|
50 | % matlab_ver = ver('MATLAB'); |
---|
51 | % matlab_version = matlab_ver.Version; |
---|
52 | % cmd=[... |
---|
53 | % '#!/bin/bash\n'... |
---|
54 | % 'source /etc/profile\n'... |
---|
55 | % 'module purge\n'... |
---|
56 | % 'module load matlab/' matlab_version '\n'...% CHOICE OF CURRENT MATLAB VERSION |
---|
57 | % 'matlab -nodisplay -nosplash -nojvm -singleCompThread -logfile ''' filelog{iprocess} ''' <<END_MATLAB\n'...% open a new Matlab session without display |
---|
58 | % 'addpath(''' path_series ''');\n'... |
---|
59 | % 'addpath(''' ActionPath ''');\n'... |
---|
60 | % '' ActionName '(''' filexml{iprocess} ''');\n'...% launch the Matlab function selected by the GUI 'series' |
---|
61 | % 'exit\n'... |
---|
62 | % 'END_MATLAB\n']; |
---|
63 | % end |
---|
64 | |
---|
65 | |
---|