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)