From 6b9bb8afaa96dd485468b9e73309459d9eb010c4 Mon Sep 17 00:00:00 2001 From: guanjihuan Date: Tue, 22 Oct 2024 00:30:50 +0800 Subject: [PATCH] 0.1.120 --- PyPI/setup.cfg | 2 +- PyPI/src/guan.egg-info/PKG-INFO | 2 +- PyPI/src/guan/data_processing.py | 56 ++++++++++++++++++++++++++++++-- PyPI/src/guan/deprecated.py | 5 +++ 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/PyPI/setup.cfg b/PyPI/setup.cfg index 891c860..26379f4 100644 --- a/PyPI/setup.cfg +++ b/PyPI/setup.cfg @@ -1,7 +1,7 @@ [metadata] # replace with your username: name = guan -version = 0.1.119 +version = 0.1.120 author = guanjihuan author_email = guanjihuan@163.com description = An open source python package diff --git a/PyPI/src/guan.egg-info/PKG-INFO b/PyPI/src/guan.egg-info/PKG-INFO index 07773fd..6e8676e 100644 --- a/PyPI/src/guan.egg-info/PKG-INFO +++ b/PyPI/src/guan.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: guan -Version: 0.1.119 +Version: 0.1.120 Summary: An open source python package Home-page: https://py.guanjihuan.com Author: guanjihuan diff --git a/PyPI/src/guan/data_processing.py b/PyPI/src/guan/data_processing.py index a44887e..d201d29 100644 --- a/PyPI/src/guan/data_processing.py +++ b/PyPI/src/guan/data_processing.py @@ -55,8 +55,8 @@ def preprocess_for_parallel_calculations(parameter_array_all, task_num=1, task_i parameter_array = parameter_array_all[task_index*num_parameter:num_all] return parameter_array -# 创建一个sh文件用于提交任务 -def make_sh_file(sh_filename='a', command_line='python a.py', cpu_num=1, task_name='task', cd_dir=0): +# 创建一个sh文件用于提交任务(PBS) +def make_sh_file_for_qsub(sh_filename='a', command_line='python a.py', cpu_num=1, task_name='task', cd_dir=0): sh_content = \ '#!/bin/sh\n' \ +'#PBS -N '+task_name+'\n' \ @@ -67,7 +67,20 @@ def make_sh_file(sh_filename='a', command_line='python a.py', cpu_num=1, task_na with open(sh_filename+'.sh', 'w') as f: f.write(sh_content) -# 复制.py和.sh文件,然后提交任务,实现半手动并行 +# 创建一个sh文件用于提交任务(LSF) +def make_sh_file_for_bsub(sh_filename='a', command_line='python a.py', cpu_num=1, task_name='task', queue_name='score', cd_dir=0): + sh_content = \ + '#!/bin/sh\n' \ + +'#BSUB -J '+task_name+'\n' \ + +'#BSUB -q '+queue_name+'\n' \ + +'#BSUB -n '+str(cpu_num)+'\n' + if cd_dir==1: + sh_content += 'cd $PBS_O_WORKDIR\n' + sh_content += command_line + with open(sh_filename+'.sh', 'w') as f: + f.write(sh_content) + +# 复制.py和.sh文件,然后提交任务,实现半手动并行(PBS) def copy_py_sh_file_and_qsub_task(parameter_array, py_filename='a', old_str_in_py='parameter=0', new_str_in_py='parameter=', sh_filename='a', qsub_task_name='task'): import os parameter_str_array = [] @@ -104,6 +117,43 @@ def copy_py_sh_file_and_qsub_task(parameter_array, py_filename='a', old_str_in_p # qsub task os.system('qsub '+new_file) +# 复制.py和.sh文件,然后提交任务,实现半手动并行(LSF) +def copy_py_sh_file_and_bsub_task(parameter_array, py_filename='a', old_str_in_py='parameter=0', new_str_in_py='parameter=', sh_filename='a', bsub_task_name='task'): + import os + parameter_str_array = [] + for i0 in parameter_array: + parameter_str_array.append(str(i0)) + index = 0 + for parameter_str in parameter_str_array: + index += 1 + # copy python file + old_file = py_filename+'.py' + new_file = py_filename+'_'+str(index)+'.py' + os.system('cp '+old_file+' '+new_file) + with open(new_file, 'r') as f: + content = f.read() + old_str = old_str_in_py + new_str = new_str_in_py+parameter_str + content = content.replace(old_str, new_str) + with open(py_filename+'_'+str(index)+'.py', 'w') as f: + f.write(content) + # copy sh file + old_file = sh_filename+'.sh' + new_file = sh_filename+'_'+str(index)+'.sh' + os.system('cp '+old_file+' '+new_file) + with open(new_file, 'r') as f: + content = f.read() + old_str = 'python '+py_filename+'.py' + new_str = 'python '+py_filename+'_'+str(index)+'.py' + content = content.replace(old_str, new_str) + old_str = bsub_task_name + new_str = bsub_task_name+'_'+str(index) + content = content.replace(old_str, new_str) + with open(sh_filename+'_'+str(index)+'.sh', 'w') as f: + f.write(content) + # bsub task + os.system('bsub < '+new_file) + # 自动先后运行程序 def run_programs_sequentially(program_files=['./a.py', './b.py'], execute='python ', show_time=0): import os diff --git a/PyPI/src/guan/deprecated.py b/PyPI/src/guan/deprecated.py index 96f54a9..277d298 100644 --- a/PyPI/src/guan/deprecated.py +++ b/PyPI/src/guan/deprecated.py @@ -1,5 +1,10 @@ # Module: deprecated +def make_sh_file(sh_filename='a', command_line='python a.py', cpu_num=1, task_name='task', cd_dir=0): + import guan + print('Warning: The current function name has been deprecated, which will be deleted in the future version. Please change it into guan.make_sh_file_for_qsub().') + guan.make_sh_file_for_qsub(sh_filename=sh_filename, command_line=command_line, cpu_num=cpu_num, task_name=task_name, cd_dir=cd_dir) + def plot_without_starting_fig(plt, fig, ax, x_array, y_array, xlabel='x', ylabel='y', title='', fontsize=20, style='', y_min=None, y_max=None, linewidth=None, markersize=None, color=None, fontfamily='Times New Roman'): import guan print('Warning: The current function name has been deprecated, which will be deleted in the future version. Please change it into guan.plot_without_starting_fig_ax().')