| import multiprocessing, os | |
| def run_task(scripts, thread_id, thread_num): | |
| for script_id, script in enumerate(scripts): | |
| if script_id % thread_num == thread_id: | |
| log_file_name = script.replace("/", "_") + ".txt" | |
| cmd = f"CUDA_VISIBLE_DEVICES={thread_id} bash {script} > data/log/{log_file_name} 2>&1" | |
| os.makedirs("data/log", exist_ok=True) | |
| print(cmd, flush=True) | |
| os.system(cmd) | |
| if __name__ == "__main__": | |
| scripts = [] | |
| for file_name in os.listdir("examples/wanvideo/model_training/lora"): | |
| if file_name != "run_test.py": | |
| scripts.append(os.path.join("examples/wanvideo/model_training/lora", file_name)) | |
| processes = [multiprocessing.Process(target=run_task, args=(scripts, i, 8)) for i in range(8)] | |
| for p in processes: | |
| p.start() | |
| for p in processes: | |
| p.join() | |
| print("Done!") |