我有一个使用多处理(特别是joblib)的功能来加速使用多个核心的慢速例程.它很棒; 没有问题.
我有一个使用多处理的测试套件(目前只是multiprocessing.Pool()系统,但可以将其更改为joblib)以独立运行每个模块的测试功能.它很棒; 没有问题.
问题是我现在已经将多处理功能集成到模块的测试套件中,以便池进程运行多处理功能.我想这样做,以便内部函数知道它已经被多处理并且不会自行调整更多的分支.目前内部进程有时会挂起,但即使它没有,显然在已经并行的例程中没有多处理的好处.
我可以想到几种方法(使用锁定文件,设置某种全局变量等)来确定我们所处的状态,但我想知道是否有一些标准方法可以解决这个问题(在PY多处理中)或在joblib).如果它只适用于PY3,那就没问题,但显然在2.7或更低的情况下工作的解决方案会更好.谢谢!