問題タブ [mpi]
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.
c++ - mpi プログラムの gui
単純な mpi プログラムについて問題があります。このプログラムにはいくつかの 3D ポイントがあり、これらのポイントはプログラム中に移動します。C++ を実装して簡単なコードを作成し、簡単な GUI を追加してみました。gnuplot ライブラリを使用しましたが、問題があります。gui関数を呼び出すと、guiが作成され、同時に消えます。つまり、ポイント オブジェクトには x、y、z 座標があり、ポイント オブジェクトを含む配列があります。それらをguiとして作成したい。この問題について教えていただけますか?
助けてくれてありがとう..
python - MPI信号処理
を使用する場合、実行中のコードでmpirun
シグナル(たとえば、によって生成されたSIGINT)をキャッチすることは可能ですか?^C
たとえば、並列化されたPythonコードを実行しています。except KeyboardInterrupt
単独で実行している場合はこれらのエラーをキャッチできますが、実行している場合はキャッチpython blah.py
できませんmpirun -np 1 python blah.py
。
誰か提案がありますか?CまたはC++でコンパイルされたプログラムでシグナルをキャッチする方法を見つけることでさえ、役立つスタートになるでしょう。
生成されたPythonプロセスにシグナルを送信すると、それらはシグナルを適切に処理できます。ただし、親orterun
プロセスに送信された信号(つまり、クラスターで壁時間を超過したり、端末でcontrol-Cを押したりした場合)は、すべてを即座に強制終了します。
types - MPI ユーザー定義データ型、私がやっていることは安全ですか?
いくつかの単純な練習アプリ以外で初めて MPI を使用しましたが、何かがうまくいきません。
次のメンバーで定義されたクラスがあります (読みやすさと画面スペースの節約のためにメソッドは省略されています)。
各粒子のいくつかの重要なメンバーの値を送信し、その場で他のメンバーを複製することにより、プロセス間で一連の粒子を送信したいと考えています。そのために、MPI データ型をそのように定義します。ご覧のとおり、メンバー _lastUpdate、_isStatic、および _isForeign は含まれていません。
これがパーティクルを送る方法です。'parts' は、送信したいパーティクル オブジェクトへのポインタが含まれる、particle* のベクトルで、'size' は parts.size() です。
受信も同様に行われますが、この場合のみ、'parts' は、以前に作成された「空白の」パーティクル オブジェクトを指す、particle* のベクトルであり、そのメンバーは受信したデータで満たされます。
問題は、最初のパーティクルを除くすべての受信パーティクルのメンバーにデフォルトの「空白」値があることです。私は以前に、いくつかの単純な値しか送信しなかったにもかかわらず、同様のことを行う小さなテスト アプリを作成しました。これは、私がここで気付いていないコーディングの間違いがない限り (完全に可能性があります)、この種のデータ型の策略が機能することを保証するものではなく、機能する小さなものは偶然にしか機能しないと私に信じさせます。
このタイプのメモリ操作が安全であり、信頼できるかどうかを確認/拒否できる人はいますか?
c - Mpi 関数の定義
下三角行列の逆行列を再帰的に計算する MPI (Message Passing Interface) を使用して c でプログラムを作成しました。すべての cpu は 2 つの部分行列を他の 2 つの cpu に送信し、それらを計算して cpu 呼び出し元に返します。CPU の呼び出し側に部分行列がある場合、行列の乗算を実行する必要があります。再帰方程式では、ボトルネックは行列の乗算です。c で mpi を使用して並列乗算を実装しましたが、関数に埋め込むことができません。出来ますか?
ありがとう、シモーネ
c++ - プロジェクトに gdb をアタッチするのに助けが必要
私は VS2k8 を使用して、Vista x64 で MPICH2 ライブラリを使用するプログラムを作成およびコンパイルします (実行はしません)。次にmpiexec
、コマンド ラインから を使用してプログラムを起動し (デバッグ目的で 1 つのプロセスのみ)、それに gdb をアタッチしたいと考えています。おそらく、VSが正しいデバッグ情報でコードをコンパイルしていないためattach
ですgdb --pid=###
。Can't attach to process
一方、いくつかのGoogleセッションにもかかわらず、VSがコンパイルに使用する実際のコマンドラインをまだ見つけていないため、ただ入って編集することはできません.
私が VS を使用する唯一の理由は、コマンド ラインからコンパイルしようとしたときに g++ で MPI ライブラリを見つけることができなかったからです。一方、VS では数回クリックするだけですべてが機能します。(はい、-I
と-l
スイッチを試しましたが、役に立ちませんでした)
必要なのは、MPI プログラムを実行しているプロセスに gdb をアタッチすることだけです。それがどのように行われるかはあまり気にしません。どんな助けでも大歓迎です。
c# - .NET MPIの実装?
最も成熟した.NETMPI実装は何ですか?簡単なグーグル検索で以下の2つが見つかりましたが、私はどちらにも精通していません。最初のアイテム(mpi.net)はMicrosoftMPIに基づいていると思います。何かご意見は?
python - どの python mpi ライブラリを使用しますか?
MPI を使用したシミュレーションの作業を開始しており、Python/scipy でプログラミングを行いたいと考えています。scipyサイトには多数の mpi ライブラリがリストされていますが、使用したことのある人から、品質、使いやすさなどについてフィードバックを得たいと思っていました。
sorting - MPI 配列の同期
私はMPIを学んでいるので、2つのプロセッサに対して単純な奇数偶数ソートを書くことができました。最初のプロセッサは、偶数の配列要素と 2 番目の奇数の配列要素を並べ替えます。2 つのプロセッサにグローバル配列を使用しているため、悪い結果が得られるため、同期 (セマフォやロック変数など) が必要です。この問題は MPI でどのように解決されますか? 私のコード:
parallel-processing - MPI が MapReduce よりも適しているシナリオは何ですか?
私の知る限り、MPI を使用すると、クラスター内のさまざまなノードがどのように通信するかをより詳細に制御できます。
MapReduce/Hadoop では、各ノードが何らかの計算を行い、他のノードとデータを交換してから、結果のパーティションを照合します。シンプルに見えますが、プロセスを反復できるため、K-means や PageRank などのアルゴリズムでさえモデルに非常によく適合します。スケジューリングの局所性を備えた分散ファイル システムでは、パフォーマンスは明らかに良好です。対照的に、MPI では、ノードが相互にメッセージを送信する方法を明示的に制御できます。
より一般的な MPI モデルが単純な MapReduce モデルよりも明らかに有利であるクラスター プログラミング シナリオを説明できる人はいますか?