CCPP/run_parallel_main.py
2025-04-20 20:55:06 +08:00

43 lines
1.4 KiB
Python

import concurrent
from argparse import Namespace
from attack import attack_process
from utils import read_config
def create_configurations(config):
# 基于配置文件生成配置列表
total_gpus = int(config['GPU']['total_gpus'])
configurations = []
for i in range(total_gpus):
conf_dict = {
'cuda': config['GPU']['cuda'],
'gpu': str(i),
'target_class': int(config['MODEL']['target_class']),
'popsize': int(config['MODEL']['pop_size']),
'magnitude_factor': float(config['MODEL']['magnitude_factor']),
'maxitr': int(config['MODEL']['max_itr']),
'run_tag': config['MODEL']['run_tag'],
'model': config['MODEL']['model'],
'normalize': config['MODEL']['normalize'],
'e': int(config['MODEL']['e'])
}
configurations.append(conf_dict)
return configurations
if __name__ == "__main__":
config_file = read_config("run_parallel_config.ini")
configurations = create_configurations(config_file)
with concurrent.futures.ProcessPoolExecutor() as executor:
futures = []
for config in configurations:
arg = Namespace(**config)
future = executor.submit(attack_process, arg)
# attack_process(arg)
futures.append(future)
for future in concurrent.futures.as_completed(futures):
# 处理结果,如果需要的话
pass