問題タブ [openmpi]
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.
mpi - ソケット/ノードにローカルなMPIランク/プロセス番号を決定する方法
たとえば、MPIを使用して並列プログラムを実行します。実行コマンド
合計8つのプロセスを起動します。つまり、ノードごとに2つのプロセス、合計で4つのノードです。(OpenMPI 1.5)。ノードが1つのCPU(デュアルコア)で構成され、ノード間のネットワーク相互接続がInfiniBandである場合。
これで、ランク番号(またはプロセス番号)を次のように決定できます。
これにより、0から7までの数値が返されます。
しかし、ノード番号(この場合は0から3の間の番号)とノード内のプロセス番号(0から1の間の番号)をどのように決定できますか?
mpi - Mpirun:たった1つのプロセスのSTDOUTを印刷する方法は?
走っているとき
両方のプロセスのSTDOUTストリームが結合され、シェルによって表示されます。このようなインターリーブ形式では、どの行がどのノードから来ているのかを判断するのは困難です。
mpirunに1つのプロセスのSTDOUTをそのSTDOUTストリームにマージさせる方法はありますか?
performance - メモリ登録と Open MPI の制限
プログラムを実行すると、Open MPI から次の警告が表示されます。
Open MPI FAQ を確認したところ、解決方法が説明されていました。私の質問は次のとおりです。プログラムは最後まで動作していますが、この警告は効率や結果に影響しますか? Open MPI が十分なロック メモリを持っていない場合、どのように対処しますか?
編集:
彼らは、これは OpenFabrics の InfiniBand ソフトウェアによって出力された警告であると私に言いました。ただし、InfiniBand ファブリックに接続されていない単一ノードでコードを実行しているため、このエラーを出力するソフトウェアを使用していません (Open MPI FAQ を読んでも理解できませんでした)。
c++ - 単一のマシンで実行するようにOpenMPIを構成する(Debian / Linux)
Ubuntu11.04マシンにOpenMPIをインストールしました。
私の理解は、私がタイプするmpirun
と魔法が起こるということです。
私が理解していないのはmpirun
、この魔法が私のマシンの2つのコアでのみ発生するように構成する方法です。
複数のコアを使用する単一のマシンで実行するようにOpenMPIをどのように構成しますか?
mpi - MPI アプリケーションを「シリアル」モードで (MPI コンパイラを使用せずに) コンパイルするには?
この質問は少し奇妙に聞こえるかもしれません...
MPI アプリケーションはあるが、MPI がインストールされたシステムを持っていないとします。そのため、ソース コードを変更せずに、MPI サポートなし (1 プロセス、1 スレッド) でアプリケーションをコンパイルしたいと考えています。それは可能ですか?
私がやりたいことを正確に行うはずの「mimic_mpi.h」ラッパーをどこかで見つけました。しかし、いくつかの MPI 関数 (MPI_Cart_create、MPI_Cart_get など) が不足していたため、成功しませんでした。
mimic_mpi.h http://openmx.sourcearchive.com/documentation/3.2.4.dfsg-3/mimic__mpi_8h-source.html
mimic_mpi.c http://openmx.sourcearchive.com/documentation/3.2.4.dfsg-3/mimic__mpi_8c-source.html
MPI サポートなしで MPI アプリをコンパイルするために使用できる他のアプローチを知っていますか?
前もって感謝します!
c++ - VisualStudio2010を使用してWindowsでOpenMPIを使用してboost::mpiライブラリを構築する方法
Open MPI 1.5.4(64ビット)をインストールし、bjamを使用してBoostライブラリ(1.48)を再構築しようとしています。
明示的なコンパイラパスを使用してmpi行を使用して追加することにより、user-config.jamファイルを変更しました(ただし、mpic ++はすでにPATH環境変数に含まれています)。
次に、コマンドプロンプトから次のコマンドを実行しようとしました。
残念ながら、ビルドプロセスにはさらに多くのヒントが必要です。エラー報告の一部は次のようになります。
WindowsでOpenMPIを使用してBoostMPIをコンパイルできた人はいますか?私は何かが足りないのですか?
xcode - xcode 4 を使用して openmpi プログラムをコンパイルするにはどうすればよいですか?
私はライオンとxcode 4.2を使用しています。macports を使用して openmpi をインストールしました。すべて正常にインストールされました。
ただし、例をコンパイルするためにどのライブラリをどのように含めるかを教えてくれるガイドが見つかりません(以下を参照)
Xcode は、mpi.h が見つからないことを報告します。
fortran - MPI_TYPE_CONTIGUOUSは、real(8)を含むカスタムタイプでは正しく機能しません
mpi_type_contiguousを定義し、後でmpi_gathervを使用することに奇妙な問題があります。タイプは次のように定義されます。
現在のコードは機能しません。コメントinteger :: ciref
するとうまくいくでしょう。real(8) :: rvar
代わりにコメントして、他の2つの整数のコメントを外しても、同じことが言えますinteger :: iref, biref
。
つまり、間違いはデータ型のサイズの両方に依存しますが、そこにが存在する場合に限りreal(8)
ます。私が1つとreal(8)
2つ持っている場合int
、それは再び機能します。
コードは3つのスレッド(!)で実行するように設計されています。私はそれをopenmpiとgfortran(mpif90)で実行していました。特別なコンパイルフラグや。を使用した実行はありませんmpirun -np 3 filename
。誰かがmpichで実行したり、ifortでコンパイルしたり、問題がどこから来ているのかを見つけるために興味深いものをコンパイルしたりできる場合。
- - 編集 - -
Platinummonkeyは以下の使用を提案しましmpi_type_struct
たが、それでも機能しません。sizeof(glist)
上記のようにglistを使用すると、回答として12ではなく16が返されます。
- - /編集 - -
よろしくお願いします。
完全なコードは(無視できるものもあるので心配しないでください)
c - OpenMPI が 3 つのノードでハングする
こんにちは: パスワードなしの認証などを使用して 3 つの仮想マシンをセットアップした OpenMPI 環境をセットアップしているところです。単純な「Hello World」スタイルのプログラムを正常にコンパイル/リンクしました。
私が観察したのは、「マシン ファイル」に 3 つの異なるノードのホスト名がある場合、ジョブがハングすることです。個々のノードはそれぞれ正常に機能しています。2 つのノード (つまり、3 つのノードのうち任意の 2 つ) の組み合わせも試しましたが、問題なく動作します。したがって、いずれかのノードが機能しない可能性を割り引くことができます。
どうすればこれをさらに調査できますか? ありがとう!
compiler-construction - mpi(AGMG)を使用するライブラリをコンパイルします
ライブラリAGMGをコンパイルしようとしています。
並列の例のmakeファイルは次のようになります。
私のDebianでmpif.hが見つかりました:
だから私はMakefileに書いた:
しかし、それでもなお、コンパイルしようとすると、次のエラーが発生します。
私は今ではかなり混乱しています。私は成功した試みをしましたが、scaplapやその他の要件に問題がありました。scalapが見つかりました:
おたふく風邪は/usr/lib/libsmumps.aにあり、ヘッダーファイルは/usr/include/smumps_c.hにあります。
では、どうすればこれをすべてまとめることができますか?
より高度なFortranまたはC開発者にとって、これは些細なことであることを私は知っています...
よろしくお願いします。
編集:私はここに完全なMakefile定義を入れています、それが他の人を助けるかもしれないことを願っています:
これはそれを構築します。返信ありがとうございます!