-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathhtcondor_config.py
30 lines (26 loc) · 1.43 KB
/
htcondor_config.py
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
import os
def htcondor_config(scan_folder, time_requirement_days, job_filename = 'job.job',
htcondor_files_in='../', runfilename='../run_htcondor', n_cores=1,
htcondor_subfile='htcondor.sub', listfolderfile = 'list_sim_folders.txt'):
list_folders= os.listdir(scan_folder)
list_submit = []
for folder in list_folders:
if os.path.isfile(scan_folder + '/' + folder+'/' + job_filename):
list_submit.append(folder+'\n')
with open(htcondor_files_in + '/' + listfolderfile, 'w') as fid:
fid.writelines(list_submit)
with open(htcondor_files_in + '/' + htcondor_subfile, 'w') as fid:
fid.write("universe = vanilla\n")
fid.write("executable = "+ scan_folder+"/$(dirname)/"+job_filename+"\n")
fid.write('arguments = ""\n')
fid.write("output = "+ scan_folder+'/$(dirname)/htcondor.out\n')
fid.write("error = "+scan_folder+"/$(dirname)/htcondor.err\n")
fid.write("log = "+scan_folder+"/$(dirname)/htcondor.log\n")
fid.write('transfer_output_files = ""\n')
fid.write("+MaxRuntime = %d\n"%(time_requirement_days*24*3600))
fid.write("requestCpus = %d\n"%(n_cores))
fid.write("queue dirname from %s\n"%listfolderfile)
with open(htcondor_files_in + '/run_htcondor', 'w') as fid:
fid.write('condor_submit %s\n'%htcondor_subfile)
fid.write('condor_q --nobatch\n')
os.chmod(htcondor_files_in + '/run_htcondor',0o755)