在Windows的情况下,使用多处理加快进程的启动速度



我在Python中有一个机器学习应用程序。我正在使用 Python 中的multiprocessing模块来并行化一些工作(特别是特征计算(。

现在,multiprocessing在Unix变体和Windows操作系统上的工作方式不同。
Unix (mac/linux):fork/forkserver/spawn
Windows:spawn
为什么是多处理。进程在窗口和 Linux 上对于全局对象和函数参数的行为不同

由于spawn在Windows上使用,因此多处理进程的启动速度非常慢。它从头开始加载Windows上每个进程的所有模块。

有没有办法加快在Windows上创建额外进程的速度?(使用线程而不是多个进程不是一种选择(

与其每次都创建多个新进程,我强烈建议使用 concurrent.futuresProcessPoolExecutor,并在后台打开执行器。

这样,您就不会每次都创建一个新进程,而是将它们在后台打开,并使用模块的函数或队列和管道传递一些工作。

底线 - 不要每次都创建新流程。让他们保持开放状态并通过工作。

相关内容

  • 没有找到相关文章

最新更新