[1019] | 1 | %'cluster_command': creates the command string for launching jobs in the cluster |
---|
| 2 | %------------------------------------------------------------------------ |
---|
| 3 | % function cmd=cluster_command_pbs(ListProcess,ActionFullName,DirLog,NbProcess, NbCore,CPUTimeProcess) |
---|
| 4 | % |
---|
| 5 | %OUTPUT |
---|
| 6 | % cmd=system command (char string) to launch jobs |
---|
| 7 | %% |
---|
| 8 | % |
---|
| 9 | %INPUT: |
---|
| 10 | % ListProcessFile: name of the file containing the list of processes to perform |
---|
| 11 | % ActionFullName: name given to the action (function activated by series) |
---|
| 12 | % DirLog: name of the folder used to store the log files from calculations |
---|
| 13 | % NbProcess: number of processes in the list, these processed are grouped by the systwm into jobs dipatched to NbCore cores |
---|
| 14 | % NbCore: number of computer cores to which the processes are dispatched |
---|
| 15 | % CPUTimeProcess: estimated CPU time for an individual process (in min) |
---|
| 16 | |
---|
| 17 | function cmd=cluster_command_pbs(ListProcessFile,ActionFullName,DirLog,NbProcess, NbCore,CPUTimeProcess) |
---|
| 18 | |
---|
| 19 | max_walltime=3600*20; % 20h max total calculation (cannot exceed 24 h) |
---|
| 20 | walltime_onejob=1800; % seconds, max estimated time for asingle file index value |
---|
| 21 | % ListProcess=fullfile(DirPBS,'job_list.txt'); % create name of the global executable file |
---|
| 22 | fid=fopen(ListProcess,'w'); |
---|
| 23 | for iprocess=1:length(batch_file_list) |
---|
| 24 | fprintf(fid,[batch_file_list{iprocess} '\n']); % list of exe files |
---|
| 25 | end |
---|
| 26 | fclose(fid); |
---|
| 27 | system(['chmod +x ' ListProcess]); % set the file to executable |
---|
| 28 | cmd=['qsub -n CIVX '... |
---|
| 29 | '-t idempotent --checkpoint ' num2str(walltime_onejob+60) ' '... |
---|
| 30 | '-l /core=' num2str(NbCore) ','... |
---|
| 31 | 'walltime=' datestr(min(1.05*walltime_onejob/86400*max(NbProcess*BlockLength*nbfield_j,NbCore)/NbCore,max_walltime/86400),13) ' '... |
---|
| 32 | '-E ' regexprep(ListProcessFile,'\.txt\>','.stderr') ' '... |
---|
| 33 | '-O ' regexprep(ListProcessFile,'\.txt\>','.log') ' '... |
---|
| 34 | '"oar-parexec -s -f ' ListProcessFile ' '... |
---|
| 35 | '-l ' ListProcessFile '.log"']; |
---|