問題タブ [multiprocess]

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 に答える
2027 参照

python - Python 鼻 - プログラムでマルチプロセスを実行する

プログラムでいくつかのプロセスを実行することはできません。

これは機能します...:

一度に 4 つのブラウザーを生成します。

ただし、これをEclipseで実行すると、それらが1つずつ実行されます。

冗長な引数との違いが見られるので、引数が有効になっていることがわかります。

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

python - subprocess.Popen の複数のインスタンス

こんにちは、私はPythonでプログラミングを始めたばかりで、subprocess.Popenを使用して、「make」を使用してコンパイルしたプログラムの複数のインスタンスを実行しようとしています。しかし、「make」を行う前に、テキスト処理を行い、「make」が使用する一連のファイルを生成する必要があります。ここで、生成された異なるファイルで同じプログラムを同時に実行し、プログラムの出力のすべてのインスタンスの出力を同じファイルに書き込みたいと思います。インスタンスの数によっては、その数のテキスト ファイルも生成する必要があります。本質的に、最初の for ループの下ですべての操作を同時に実行したいと考えています。提供されるヘルプは大歓迎です:)。

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

python - Python、マルチスレッドが遅すぎる、マルチプロセス

私はマルチプロセッシングの初心者です、

スレッド化については知っていますが、できればマルチプロセッシングを使用して、この計算の速度を上げる必要があります。

例の説明:文字列をスレッドに送信し、文字列+ベンチマークテストを変更し、結果を送信して印刷します。

これは現在約6秒かかりますが、もっと速くする必要があります。
マルチプロセッシングを調べていますが、上記のコードに相当するものが見つかりません。私が求めているのはプーリングだと思いますが、私が見つけた例は理解しにくいものでした。すべてのコア(8コア)を利用したいmultiprocessing.cpu_count()のですが、実際にはマルチプロセッシングに関する有用な情報の断片があり、上記のコードを複製するのに十分ではありません。誰かが私を正しい方向に向けることができるか、それでももっと良いことがあれば、大いに感謝される例を提供してください。Python3お願いします

0 投票する
4 に答える
18383 参照

python - Python、マルチプロセスを使用すると、使用しない場合よりも遅くなります

マルチプロセッシングに頭を悩ませようと多くの時間を費やした後、ベンチマーク テストである次のコードを思いつきました。

例 1:

これは 2 秒で完了します (マルチスレッドの半分の時間)。好奇心から、次にこれを実行することにしました。

例 2:

恐ろしいことに、これは 0.5 秒もかからずに実行されました。

ここで何が起こっているのですか?例 1 が例 2 の 2 つのプロセスに分割されていることを考えると、例 2 の半分の時間で完了するはずではありませんか?

アップデート:

Chris のフィードバックを検討した後、最も多くの処理時間を消費する「実際の」コードを含め、マルチプロセッシングを検討するように導きました。

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

c++ - Linux でマルチプロセス アプリケーションの CPU 使用率をカウントする方法

Linux のトップ コマンドのように動作するように、C/C++ でプログラムを作成しようとしています。私はいくつかの調査を行い、プロセスのCPU使用率をカウントする方法をすでに知っています。現在時刻と数秒後の /proc/[PID]/stat から stime + utime を計算することで、CPU 使用率を取得できます。次に、stime + utime の差を計算し、その結果をアップタイムの差で割ると、CPU 使用率が得られます。シングルプロセス/マルチスレッドプロセスではとても簡単です。

問題は、マルチプロセスとして動作する httpd のような場合です。Web サーバーがビジー状態になると、httpd は子プロセスを fork して一連のリクエストを処理します。次に、合計プロセス数を数えます。たとえば、500 とします。これらのプロセスの CPU 使用率を計算したいのですが、それらを要約すると、1 つの httpd CPU 使用率しか表示されません。しかし、上記のようなアルゴリズムを実行すると、数秒後にプロセス数が 500 未満に減少すると、計算が次のようになるため、負の値が得られます (たとえば、乱数を選択して、簡単な説明をしてください):

上記の例を見ると、Stime + Utime のデルタは、プロセスの数が減少するため、負の値になり、数ミリ秒後に低い値になります。私が知りたいのは、このようなプロセスを計算する他の方法はありますか? ありがとうございました。

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

c - C:マルチプロセスstdio追加モード

私はこのコードをCで書きました:

このコードは、ファイルを追加モードで開き、文字列を200回添付します。完全な文字列を含めることができるサイズ100のbufを設定しました。次に、次のbashスクリプトを使用して、このコードを実行するマルチプロセスを作成しました。

O_APPENDフラグを使用してファイルを開くと、各書き込みの前にファイルオフセットがファイルの最後に設定され、完全にバッファリングされたストリームを使用していることを読んだため、出力で文字列が混同されることはないと予想しました。しかし、私は各プロセスの最初の行が次のように混合されていることを取得しました:

そして数行後

rand関数を呼び出すために書き込みが中断されたようです。

それで...なぜこれらの線が現れるのですか?これを防ぐ唯一の方法は、ファイルロックを使用することです...追加モードのみを使用している場合でも?

前もって感謝します!

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

multithreading - 複数のスレッドでのセグメンテーション違反

この式の最後にある free() が原因で、エラー セグメンテーション違反が発生します...

一時変数 *stck を解放する必要はありませんか? それとも、これはローカル ポインターであり、malloc を介してメモリ空間が割り当てられていないため、コンパイラがクリーンアップしてくれますか?

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

c++ - C++ ファイルが使用中かどうかを確認する方法 - マルチスレッド マルチプロセス システム

C++: ファイルが別のプロセス/クラス/デバイスによって書き込み用に開かれているかどうかを確認する方法はありますか?

書き込みのために他のプロセスがアクセスできるフォルダーからファイルを読み取ろうとしています。同時に書き込み中のファイルを読み取ると、読み取りと書き込みの両方のプロセスでエラーが発生します (書き込みが不完全で、ヘッダーしか表示されない場合があります)。そのため、その特定のファイルを開くかどうかを決定する前に、何らかの条件を確認する必要があります。ファイルリストを取得するためにboost::filesystemを使用しています。Unix と Windows の両方との互換性が必要です。

0 投票する
5 に答える
652 参照

python - マルチプロセスまたはマルチスレッド?-数百万回の反復の単純な計算を並列化し、結果を単一のデータ構造に格納します

{string:list}エントリの辞書Dがあり、Dの文字列のペア(s1、s2)に対して関数f(D [s1]、D [s2])->floatを計算します。

さらに、m [ID1、ID2]=1.0などの割り当てを実行できるカスタムマトリックスクラスLabeledNumericMatrixを作成しました。

f(x、y)を計算し、s1 = s2の場合を含め、文字列Sのセット内のすべての2タプルの結果をm [x、y]に格納する必要があります。これはループとしてコーディングするのは簡単ですが、セットSのサイズが10,000以上などの大きな値に大きくなるため、このコードの実行にはかなりの時間がかかります。

ラベル付けされた行列mに格納する結果は、相互に依存していません。したがって、Pythonのマルチスレッドまたはマルチプロセスサービスを使用して、この計算を並列化するのは簡単なようです。ただし、cPythonでは、スレッド化によってf(x、y)の計算とm [x、y]の格納を同​​時に実行することは実際にはできないため、マルチプロセスが私の唯一の選択肢のようです。ただし、マルチプロセスは、10000x10000要素を含むラベル付きマトリックス構造など、プロセス間で約1GBのデータ構造を渡すように設計されているとは思いません。

誰かが(a)アルゴリズムの並列化を回避する必要があるかどうか、および(b)並列化を実行できるかどうか、できればcPythonでその方法をアドバイスできますか?

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

c# - 別のプロセスによって生成されたプロセスのデバッグ

いくつかのプロセスを生成するプログラムを作成しました。

既定では、Visual Studio は新しいプロセスをデバッグせず、新しいプロセスを作成した元のプロセスのみをデバッグします。

プロセスが作成されたときに、コードで Visual Studio をプロセスに自動的に接続する方法はありますか?