問題タブ [zeromq]

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

python - Python マルチプロセッシングの質問?

500 個の入力ファイルを含むフォルダーがあります (すべてのファイルの合計サイズは ~ 500[MB])。

python次のことを行うスクリプトを書きたいと思います。

(1)すべての入力ファイルをメモリにロードする

(2)python後で使用される空のリストを初期化します...箇条書き(4)を参照してください

(3) 15 の異なる (独立した) プロセスを開始します。これらのそれぞれは [からの(1)] 同じ入力データを使用しますが、異なるアルゴリズムを使用して処理するため、異なる結果が生成されます。

(4)すべての独立したプロセス [ステップ から] の出力を同じリスト [ステップ で初期化されたのと同じリスト](3)に保存したいpython(2)

15 のプロセスすべての実行が完了するとone python list、15 の独立したプロセスすべての結果が含まれます。

私の質問は、上記を効率的に行うことは可能pythonですか? もしそうなら、その方法を説明するスキーム/サンプルコードを提供できますか?

注 #1:強力なマルチコア サーバーでこれを実行します。したがって、ここでの目標は、すべての独立したプロセス間で一部のメモリ { input data, }を共有しながら、すべての処理能力を使用することです。output list

注 #2:私はあるLinux環境で作業しています

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

zeromq - ZeroMQメッセージサイズの長さ制限?

複数のマシンがpython'szeroMQクライアントを使用して相互作用していると仮定します。

これらのメッセージは、自然に文字列としてフォーマットされます。

メッセージ(文字列)の長さに制限はありますか?

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

python - ZeroMQ / NFSを使用してリアルタイムの市場データを配布しますか?

取引所からリアルタイムの株価が供給されるマシンがあるとします。これらの価格は、ネットワーク内の他の50台のマシンに可能な限り最速で転送する必要があります。これにより、各マシンがデータに対して独自の処理を実行できるようになります。

他の50台のマシンにデータを送信するための最良/最速の方法は何でしょうか?

プログラミング言語としてlinux使用して、うまくいくソリューションを探しています。python私が持っていたいくつかのアイデアは次のとおりです。

(1)python's ZeroMQモジュールを使用して他のマシンに送信します

(2)データを共有フォルダに保存し、50台のマシンにデータを読み取らせます。NFS

他のアイデアはありますか?

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

python - マルチコアPython:マルチプロセッシングと zeroMQ?

pythonデータセットを入力としてロードして分析するコードを書きたいのですが。

データを分析する5つの並列プロセスがあります-各プロセスは異なる方法でデータを処理します-独自の方法で。

処理を開始する前に、masterスクリプト(すべての異なるサブプロセスを「開始」するスクリプト)が空のリストを定義します。

さまざまなプロセスすべてに、上記の同じリストに出力を書き込んでもらいたい(つまり、各プロセスは、masterスクリプトで定義されたリストを直接操作できるようになります)。

つまり、そのリストの最初の値が変更された場合process1、他のすべてのプロセス(実行中)は、そのリストの最初の値が変更されたことを確認します。


この問題を解決するには、2つの異なるpythonモジュールを使用できるとmultiprocessing思いますzeroMQ

この場合、一方を他方よりも好む理由はありますか?同じサーバーでスクリプトを実行する代わりに、master異なる(複数の)サーバー間でプロセスを分割する場合、答えは変わりますか?

(それが問題になる場合は、私はを使用していますLinux

0 投票する
6 に答える
25840 参照

java - ゼロmq対Python対Javaでのnode.jsのパフォーマンス

node.js、Python、およびJavaを使用して、zeromqの簡単なエコー要求/応答テストを作成しました。コードは100Kリクエストのループを実行します。プラットフォームは、SnowLeopardを実行する2コアと3GのRAMを備えた5yoMacBookProです。

node.jsは、他の2つのプラットフォームよりも一貫して1桁遅くなっています。

Java: real 0m18.823s user 0m2.735s sys 0m6.042s

Python: real 0m18.600s user 0m2.656s sys 0m5.857s

node.js: real 3m19.034s user 2m43.460s sys 0m24.668s

興味深いことに、PythonとJavaでは、クライアントプロセスとサーバープロセスの両方がCPUの約半分を使用します。node.jsのクライアントはほぼフルCPUを使用し、サーバーはCPUの約30%を使用します。クライアントプロセスにも膨大な数のページフォールトがあり、これがメモリの問題であると私は信じています。また、10Kリクエストでは、ノードは3倍遅くなります。実行時間が長くなるほど、確実に速度が低下します。

クライアントコードは次のとおりです(process.exit()行も機能しないため、timeコマンドの使用に加えて内部タイマーを含めました)。

サーバーコード:

比較のために、Pythonクライアントとサーバーのコードは次のとおりです。

そして、Javaクライアントとサーバーのコード:

ノードが欲しいのですが、コードサイズ、シンプルさ、パフォーマンスに大きな違いがあるため、現時点では納得できません。

それで、誰かが以前にこのような振る舞いを見たことがありますか、それとも私はコードで何か不吉なことをしましたか?

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

c - ZeroMQソケットをglibメインループに統合する方法は?

ZeroMQソケットをglibプログラムに追加したかったのです。

落とし穴は、zmqソケットは対応できずpoll()、古い関数をオーバーロードする実装を提供することpoll()です。それをメインループに効率的に統合するにはどうすればよいですか?zmq_poll()デフォルトのものの代わりに彼らのpoll()を使用しようとしましたが、それを.にする以外に、それにzmqソケットを与える良い方法はありませんglobal

新しい定義はGSource機能しますが、CPU使用率が高くなる(設定するtimeout = 0)か、任意のポーリングタイムアウト(たとえばtimeout = 100、少なくとも100ミリ秒ごとにポーリングされるように設定する)が発生する可能性があります。これは、ポーリングの可能性があるため、実際には効率的ではありません。

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

python - Python zeromq -- 単一のサブスクライバーに複数のパブリッシャー?

次のことを行うスクリプト ( parentpythonと呼びます)を書きたいと思います。

(1)多次元numpy配列を定義する

(2) forks 10 種類pythonのスクリプト ( childrenと呼びます)。それらのそれぞれは、(生きている限り)任意の時点で(1)から配列readの内容にアクセスできる必要があります。numpy

(3)スクリプトはそれぞれ独自の作業を行います (は互いに情報を共有しません)。

(4)任意の時点で、親スクリプトはすべてのからのメッセージを受け入れることができなければなりません。これらのメッセージは親によって解析され、(1)numpy配列が変更されます。


環境で作業pythonする場合、どうすればよいですか? Linux私は、がすべてパブリッシャーになる一方でzeroMQを単一のサブスクライバーにすることを考えました。それは理にかなっていますか、それともより良い方法がありますか?

また、すべての子がによって定義された配列の内容を継続的に読み取れるようにするにはどうすればよいですか?numpy

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

python - python & zeroMQ -- 大きなサイズのメッセージを処理する能力は?

の人工呼吸器/シンク スキームpythonに似たアプリを構築するために使用したいzeroMQ

10 個の Workersがあり、すべてが同じマルチコアサーバーで実行されているとします。

約2[秒]ごとに、各ワーカーがサイズ 5[MB] のメッセージをシンクにプッシュするとします。つまり、Sinkは2[sec]ごとに合計 50[MB] ( = 10 x 5[MB] ) を処理する必要があります。

10 個のワーカーが別のマシンにあったとしたら、ネットワークがボトルネックになる可能性があったことはわかっています。

10 人のワーカーがデータをディスクに書き込む (I/O)必要があった場合、ディスクがボトルネックになる可能性があることはわかっています。

10 個のワーカーすべてが同じマシン上にあるという事実を考えると、どのようなボトルネックが予想されるでしょうか?

たとえば、同じ10 個のワーカーが、サイズ 10[MB] のメッセージを2[sec]ごとにプッシュできるでしょうか? サイズが 20[MB] のメッセージを2[sec]ごとにプッシュできますか?

zmqの制限事項は何ですか?

環境内で使用する場合python、どのような種類のボトルネックが予想されますか?zeroMQLinux

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

python - Python ZeroMQ PUSH / PULL-メッセージが失われましたか?

サイズ4[MB]のメッセージを数秒ごとに送信pythonするモードで使用しようとしてzeroMQいます。PUSH / PULL

何らかの理由で、すべてのメッセージが送信されたように見えますが、サーバーによって受信されたのは一部のメッセージのみであるように見えます。ここで何が欠けていますか?

これがクライアントのコードです-client.py

そしてここにサーバーのコードがあります-server.py

私は何が欠けていますか?メッセージが常に送信され、失われないことを保証するにはどうすればよいですか?

重要な場合はUbuntu 10.04、2[GB]RAMを搭載した32ビットのCoreDuoマシンを使用しています。

注:同じ例を使用して試しましたがRabbitMQ、すべてが正常に機能します。メッセージが失われることはありません。の称賛をよく聞くので困惑しzeroMQます。RabbitMQ成功したところで失敗したのはなぜですか?

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

zeromq - zeromqでpub/subとreq/repを組み合わせる

クライアントはどのようにしてzeromqでの応答をサブスクライブおよびリッスンできますか?つまり、クライアント側では、メッセージを受信して​​選択的にリクエストを送信するループを実行し、サーバー側では、ほとんどの場合公開したいのですが、リクエストを受信することもあります。通信モードごとに1つずつ、合計2つの異なるソケットが必要になるようです。それを回避し、サーバー側で、自分のスレッドのソケットにメッセージをプッシュしているときに、zeromqコールバックスレッドのソケットから「要求通知」を受信することは可能ですか?