如何并行启动多个计算,同时在第一个返回时将它们全部停止?
我想到的应用如下:计算某个值有多种方法;每种方法所花费的时间取决于函数参数;通过并行启动计算,每次都会自动“选择”最快的计算,并停止其他计算。
现在,有一些“细节”让这个问题变得更加困难:
- 要计算的函数的参数包括函数(从数据点计算;它们不是顶级模块函数)。实际上,计算是两个函数的卷积。我不确定如何将此类函数参数传递给子进程(它们不可选择)。
- 我无法访问所有计算代码:一些计算是由 Scipy 在内部完成的(可能通过 Fortran 或 C 代码)。我不确定线程是否提供类似于可以发送到进程的终止信号的东西。
这是Python可以相对轻松地完成的事情吗?