問題タブ [process-pool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
107 参照

python - docplex の例を実行しようとしたときの BrokenProcessPool エラー

Python プロセス プールと並行していくつかの cplex モデルを実行しようとしています。Windows 10-spyder 3.6.9でdocplexを使用したプロセスプールの例としてこれを実行しようとしました。実行すると、次のエラーが発生します。

別のマシンを使用して max_worker を 1 に設定してみましたが、役に立ちませんでした。

編集: より明確にするために使用しているコードを配置します。これは私の process_pool.py です:

これは、内部に cplex モデルがあり、process_pool を使用する zoomontecarlo2.py です。

エンジンが「for future in concurrent.futures.as_completed(future_to_i)」ループ内に入ると、メモリ情報は次のようになります。

svmem(合計=17091981312、使用可能=9288286208、パーセント=45.7、使用=7803695104、空き=9288286208)

「res = future.result()」に到達すると、上記のエラーでクラッシュします。

0 投票する
3 に答える
1906 参照

python - os.sched_getaffinity(0) 対 os.cpu_count()

したがって、タイトルにある 2 つの方法の違いはわかりますが、実際的な意味はわかりません。

私が理解していることから、実際に利用可能なコアよりも多くの NUM_WORKERS を使用すると、OS が物事を並行して維持しようとして絶えず切り替えられるため、パフォーマンスが大幅に低下します。これがどれほど真実かはわかりませんが、私はどこかで私より賢い人からそれを読んだ.

そしてそれのためのドキュメントにos.cpu_count()は次のように書かれています:

システム内の CPU の数を返します。不明な場合は None を返します。この数は、現在のプロセスが使用できる CPU の数とは異なります。使用可能なCPU数はlen(os.sched_getaffinity(0))で取得できます

そのため、「システム」にあるよりも多くの CPU をプロセスで使用できる場合、「システム」が何を指すかを理解しようとしています。

安全かつ効率的に機能を実装したいだけですmultiprocessing.pool。だからここに私の質問が要約されています:

次の実際的な意味は何ですか。

これ-1は、データの処理中に作業を行おうとすると、システムの遅延が大幅に軽減されることがわかったためです。

0 投票する
2 に答える
492 参照

python - multiprocessing.Pool.map の worker_funtion 内から配列に値を割り当てる方法は?

基本的に私が望む2のは、それらを に挿入して、 の外側で変更されるarようにすることです。arworker_function

これまでに達成できる唯一のことは、関数の外側ではなくar内側のコピーを変更することです。worker_function