import os from multiprocessing import Process num_workers = 8 worker_ids = list(range(num_workers)) cuda_devices = [i % 8 for i in range(num_workers)] def func(worker_id, cuda_device): os.system(f"CUDA_VISIBLE_DEVICES={cuda_device} python -m data.process_seed_smpl --start_idx {worker_id} --interval {num_workers}") if __name__ == "__main__": works = [] for worker_id, cuda_device in zip(worker_ids, cuda_devices): process = Process(target=func, args=(worker_id, cuda_device)) process.start() works.append(process) for process in works: process.join()