At this point it is not related to pytorch, you should just use any convenient mechanism for concurrent execution + have some re-synchronization point in the main thread if necessary. I’d suggest python threading if your jobs take at most a few seconds, for longer jobs (minutes) - it may be worth it to launch a subprocess. If you use jit, you may also check torch.jit.fork.