In [1]:
import numpy as np
import os
In [2]:
def write_pbs_head(fpbs, job_name):
fpbs.write('#! /bin/bash\n')
fpbs.write('#PBS -M zhangji@csrc.ac.cn\n')
fpbs.write('#PBS -l nodes=1:ppn=24\n')
fpbs.write('#PBS -l walltime=72:00:00\n')
fpbs.write('#PBS -q common\n')
fpbs.write('#PBS -N %s\n' % job_name)
fpbs.write('\n')
fpbs.write('cd $PBS_O_WORKDIR\n')
fpbs.write('\n')
In [7]:
# case 1
rs_list = [0.2, 0.5, 0.8]
ds_list = [0.6, 0.4, 0.3, 0.2, 0.15, 0.1, 0.07, 0.05]
es_list = [-0.5, -1, -2, -3]
job_dir = 'sphere_converge'
if not os.path.exists(job_dir):
os.makedirs(job_dir)
for es in es_list:
t_name = os.path.join(job_dir, 'run_es%3.1f.sh' % np.abs(es))
with open(t_name, 'w') as frun:
# create .pbs file
for ds in ds_list:
for rs in rs_list:
job_name = 'rs%3.1f_ds%4.2f_es%3.1f' % (rs, ds, np.abs(es))
frun.write('mpirun -n 24 python ')
frun.write(' ../sphereInPipe.py ')
frun.write(' -ksp_max_it 1000 ')
frun.write(' -forcepipe R09l20 ')
frun.write(' -rs %f ' % rs)
frun.write(' -es %f ' % es)
frun.write(' -ds %f ' % ds)
frun.write(' -f %s ' % job_name)
frun.write(' > %s.txt \n' % job_name)
frun.write('echo %s finished \n\n ' % job_name)
In [8]:
# case 2
rs_list = [0.1, 0.3, 0.4, 0.6, 0.7]
ds_list = [0.6, 0.4, 0.3, 0.2, 0.15, 0.1, 0.07, 0.05]
es_list = [-0.5, -1, -2, -3]
job_dir = 'sphere_converge'
if not os.path.exists(job_dir):
os.makedirs(job_dir)
for es in es_list:
t_name = os.path.join(job_dir, 'run2_es%3.1f.sh' % np.abs(es))
with open(t_name, 'w') as frun:
# create .pbs file
for ds in ds_list:
for rs in rs_list:
job_name = 'rs%3.1f_ds%4.2f_es%3.1f' % (rs, ds, np.abs(es))
frun.write('mpirun -n 24 python ')
frun.write(' ../sphereInPipe.py ')
frun.write(' -ksp_max_it 1000 ')
frun.write(' -forcepipe R09l20 ')
frun.write(' -rs %f ' % rs)
frun.write(' -es %f ' % es)
frun.write(' -ds %f ' % ds)
frun.write(' -f %s ' % job_name)
frun.write(' > %s.txt \n' % job_name)
frun.write('echo %s finished \n\n ' % job_name)