複数の計算を並行して開始し、最初の計算が戻ったときにすべてを停止するにはどうすればよいでしょうか?
私が念頭に置いているアプリケーションは次のとおりです。特定の値を計算する方法は複数あります。各メソッドの所要時間は、関数のパラメーターによって異なります。計算を並行して開始することにより、最速の計算が毎回自動的に「選択」され、他の計算は停止されます。
ここで、この質問をより難しくしている「詳細」がいくつかあります。
- 計算される関数のパラメーターには関数が含まれます(データ ポイントから計算されます。それらは最上位のモジュール関数ではありません)。実際、計算は 2 つの関数の畳み込みです。そのような関数パラメーターをサブプロセスに渡す方法がわかりません (ピッキングできません)。
- すべての計算コードにアクセスできるわけではありません: 一部の計算は Scipy によって内部的に行われます (おそらく Fortran または C コードを介して)。プロセスに送信できる終了シグナルに似たものをスレッドが提供するかどうかはわかりません。
これはPythonが比較的簡単にできることですか?