問題タブ [multiprocessing]
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.
ruby - Ruby で複数のプロセスを操作する
複数のプロセス間でオブジェクトを簡単に共有できる Ruby 用のモジュールはありますか? プロセス間で共有できるプロセスセーフなキューとパイプをサポートする、 Python のmultiprocessingに似たものを探しています。
python - マルチプロセッシングまたはマルチスレッド?
wxPython インターフェイスを使用して、Python でシミュレーションを実行するためのプログラムを作成しています。プログラムでは、シミュレーションを作成することができ、プログラムはそれをレンダリング (=計算) します。レンダリングには非常に時間がかかる場合があります。
ユーザーがシミュレーションを開始し、初期状態を定義するとき、ユーザーがプログラムでさまざまなことをしている間、プログラムがバックグラウンドでシミュレーションを継続的にレンダリングするようにします。いっぱいになる YouTube スタイルのバーのようなもの: レンダリングされたポイントまでしかシミュレーションを再生できません。
複数のプロセスまたは複数のスレッドを使用する必要がありますか? 人々は私にこのmultiprocessing
パッケージを使うように言ったので、私はそれをチェックアウトし、良さそうに見えましたが、スレッドとは異なり、プロセスは多くの情報を共有できないとも聞きました (そして、私のプログラムは多くの情報を共有する必要があると思います. ) さらに、Stackless Python についても聞きました。別のオプションですか? 何も思いつきません。
お知らせ下さい。
python - フォローアップ: Python シミュレーション ソフトウェアのマルチプロセッシングまたはマルチスレッド
これはこれのフォローアップです。(すべての回答を読む必要はありません。質問だけを読んでください)
人々は私にプロセスとスレッドの違いを説明してくれました。一方で、CPU のすべてのコアを完全に活用できるようにプロセスが必要でした。他方で、プロセス間で情報を渡すことは理想的とは言えず、扱っている巨大なオブジェクトの 2 つのコピーを持ちたくありませんでした。と。
そこで私は、プロセスとスレッドを組み合わせてこれを行う方法を考えてきました。これが理にかなっているかどうか教えてください。私のプログラムの主なプロセスは GUI プロセスです。「rendering-manager」スレッドを生成します。レンダリング マネージャー スレッドはシミュレーションのレンダリングを担当しますが、単独でレンダリングするのではなく、他のプロセスを生成してその作業を行います。
目標は次のとおりです。
- レンダリングでは、利用可能なすべてのコアを活用する必要があります。
- GUI が遅くなることはありません。
レンダリング マネージャーをスレッドにしたい理由は、多くの情報を GUI と共有する必要があるためです。つまり、シミュレーション タイムラインです。
それで、これは良いデザインだと思いますか?改善のための提案はありますか?
アップデート:
「レンダリング」という言葉を紛らわしく使用して申し訳ありません。レンダリングとは、画面にレンダリングするのではなく、シミュレーションを計算することを意味します。
python - Python:「スレッド化」と「マルチプロセッシング」からのロックは交換可能ですか?
モジュールのロックはthreading
モジュールのロックと交換可能multiprocessing
ですか?
python - Python での動的プロセス
Python マルチプロセッシングについて質問があります。データセットを取得し、チャンクに分割し、それらのチャンクを同時に実行中のプロセスに渡そうとしています。簡単な計算を使用して大規模なデータ テーブルを変換する必要があります (例: 電気抵抗 -> サーミスタの温度)。
以下にリストされているコードは、ほぼ希望どおりに機能しますが、新しいプロセスを生成していないようです (または、一度に 1 つだけ)。
python - Python マルチプロセッシング: カスタム プロセスのプール
Process クラスを、EdgeRenderer というクラスにサブクラス化しています。を使用したいのですがmultiprocessing.Pool
、通常のプロセスの代わりに、それらを EdgeRenderer のインスタンスにしたいのです。可能?どのように?
python - Python: `multiprocessing.Manager` について学ぶのに適した場所は?
の使い方を学びたいmultiprocessing.Manager
。ドキュメントを見ましたが、私にとっては簡単ではありません。良いチュートリアルなどを知っている人はいますか?
python - Python マルチプロセッシング: プロセスへのデータの送信
私は次のようにサブクラス化しましProcess
た:
run
次に、を使用するメソッドを定義しますself.starter
。
そのオブジェクトは、私が定義しstarter
たクラスのものです。State
私がこれをしても大丈夫ですか?オブジェクトはどうなりますか?シリーズ化されますか?State
オブジェクトがシリアル化可能であることを常に確認する必要があるということですか? 新しいプロセスは、このオブジェクトの重複コピーを取得しますか?
python - ファイルパスを介してモジュールをインポートしながらPythonマルチプロセッシングを使用する
関数を使用して、ファイルパスを使用してモジュールをインポートするプログラムを作成していますimp.load_source(module_name,module_path)
。このモジュールからオブジェクトをに渡そうとすると、問題が発生するようですProcess
。
例:
注:このコードを「機能」させるには、指定したパラメーターを別のimp.load_source
ものに置き換える必要があります。コンピューター上のPythonファイルである必要があり、できれば同じフォルダーにない必要があります。次に、でthing=module.step
、ステップの代わりに、そのファイルで定義されているランダムな関数またはクラスを入力し.py
ます。
次のトレースバックを取得しています。
だから私は何をしますか?
編集:
WinXPでPython2.6.2c1を使用しています。