Photo by

1. concurrent.futures

  • run on multithread: ThreadPoolExecutor
  • run on multiprocess: ProcessPoolExecutor

2. ray

It offer many fancy function, but is hard to use and also contains some bugs.