diff --git a/__main__.py b/__main__.py index 8abfd4f40a7c5035097e7c389dc42b2dd0b96eb7..5cf332ad0b48358311699c7e2fd8c7de200d5d7c 100755 --- a/__main__.py +++ b/__main__.py @@ -93,7 +93,7 @@ if submodule not in submodules: raise NameError(submodule) if kwargs['batch'] != 0: - batch_number = kwargs['batch'] + batch_level = kwargs['batch'] import re from util import batchjob destination = submodule @@ -101,7 +101,8 @@ if kwargs['batch'] != 0: command = command.replace('--batch ', '') for bs in re.findall('-b* ', command): command = command.replace(bs, '') - batchjob.main(destination, command, batch_number, args) + is_test = vars(args)['test'] + batchjob.main(destination, command, batch_level, is_test) else: submodule = importlib.import_module(submodule) submodule.main(kwargs) diff --git a/gen_signal/__init__.py b/gen_signal/__init__.py index c946bdd6321626f96e782c93939f109238d6371e..e90637adb98bb86c2a46f352f5b38b62b02e413c 100644 --- a/gen_signal/__init__.py +++ b/gen_signal/__init__.py @@ -5,12 +5,18 @@ def main(kwargs): if label == 'signal': if scan_number != None: - if job_number != None: - from . import gen_signal_scan - gen_signal_scan.job_main(kwargs) - else: - from . import gen_signal_scan - gen_signal_scan.main(kwargs) + from util import batchjob + scan_number = kwargs['scan'] + det_name = kwargs['det_name'] + for i in range(scan_number): + args = ['gen_signal', '--job', str(i), det_name] + command = ' '.join(args) + print(command) + destination = 'gen_signal' + batchjob.main(destination, command, 1, is_test=False) + elif job_number != None: + from . import gen_signal_scan + gen_signal_scan.main(kwargs) else: from . import gen_signal_main gen_signal_main.main(kwargs) \ No newline at end of file diff --git a/gen_signal/gen_signal_scan.py b/gen_signal/gen_signal_scan.py index aa09bb5852ba313c2a5cf4affcd50ee3e3e9e39d..503c06f6c5a83e964afff6f2044e26153e25fd48 100644 --- a/gen_signal/gen_signal_scan.py +++ b/gen_signal/gen_signal_scan.py @@ -26,7 +26,6 @@ from . import draw_save from util.output import output - def batch_loop(my_d, my_f, my_g4p, amplifier, g4_seed, total_events, instance_number): """ Description: @@ -61,7 +60,7 @@ def batch_loop(my_d, my_f, my_g4p, amplifier, g4_seed, total_events, instance_nu detection_efficiency = effective_number/(end_n-start_n) print("detection_efficiency=%s"%detection_efficiency) -def job_main(kwargs): +def main(kwargs): det_name = kwargs['det_name'] my_d = bdv.Detector(det_name) @@ -95,9 +94,3 @@ def job_main(kwargs): batch_loop(my_d, my_f, my_g4p, amplifier, g4_seed, total_events, instance_number) del my_g4p -def main(kwargs): - scan_number = kwargs['scan'] - for i in range(scan_number): - command = ' '.join(['python3', 'raser', '-b', 'gen_signal', '--job', str(i)] + sys.argv[3:]) # 'raser', '-sh', 'gen_signal' - print(command) - subprocess.run([command], shell=True) \ No newline at end of file diff --git a/util/batchjob.py b/util/batchjob.py index 4f2ae9a236522a9137668fd84ba92043e6ccfc3b..00dcee0b4e49f28d47f85ecca7a98ba278845282 100644 --- a/util/batchjob.py +++ b/util/batchjob.py @@ -15,18 +15,17 @@ import pwd from util.output import create_path -def main(destination_subfolder, command, batch_number, args): - test = vars(args)['test'] +def main(destination_subfolder, command, batch_level, is_test): stat_info = os.stat("./") uid = stat_info.st_uid gid = stat_info.st_gid user = pwd.getpwuid(uid)[0] group = grp.getgrgid(gid)[0] - if batch_number < 0: - mem = 10 * (-batch_number) - elif batch_number > 0: - mem = 5000 * batch_number + if batch_level < 0: + mem = 10 * (-batch_level) + elif batch_level > 0: + mem = 5000 * batch_level create_path("./output/{}/jobs".format(destination_subfolder)) command_name = command.replace(" ","_").replace("/","_") @@ -44,7 +43,7 @@ def main(destination_subfolder, command, batch_number, args): + IMGFILE + " " \ + "python3 -mdevsim.umfpack.umfshim raser/__main__.py" gen_job(jobfile_name, run_code=raser_shell+' '+command) - submit_job(jobfile_name, destination_subfolder, group, mem, test=test) + submit_job(jobfile_name, destination_subfolder, group, mem, is_test=is_test) def gen_job(jobfile_name, run_code): jobfile = open(jobfile_name, "w") @@ -52,15 +51,15 @@ def gen_job(jobfile_name, run_code): jobfile.close() print("Generate job file: ", jobfile_name) -def submit_job(jobfile_name, destination_subfolder, group, mem, test=False): +def submit_job(jobfile_name, destination_subfolder, group, mem, is_test=False): print("Submit job file: ", jobfile_name) os.chmod(jobfile_name, 0o755) command = "hep_sub -o ./output/{}/jobs -e ./output/{}/jobs {} -mem {} -g {}".format( destination_subfolder, destination_subfolder, jobfile_name, mem, group) - run_cmd(command, test) + run_cmd(command, is_test) -def run_cmd(command, test=False): - if test: +def run_cmd(command, is_test=False): + if is_test: sys.stdout.write(command+'\n') return subprocess.run([command],shell=True)