問題タブ [mpi-io]
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_File_open 使用時のセグメンテーション違反
MPI アプリケーションのファイルから読み込もうとしています。クラスターには 4 つのノードがあり、各ノードには 12 コアがあります。ランクを計算する基本的なプログラムを実行してみましたが、うまくいきました。MPI_File_open を追加すると、実行時に例外がスローされます
アプリケーション プロセスの 1 つの不適切な終了 = 終了コード: 139
クラスタには MPICH2 がインストールされており、ネットワーク ファイル システムがあります。ReadOnlyモード、MPI_COMM_WORLDなどのさまざまなパラメーターでMPI_File_openをチェックします。
Network File System で MPI_File_open を使用できますか?
c++ - GNUPlot の MPI IO フォーマット
MPI を使用する C++ プログラムがあり、各プロセス (最大 32) でファイルに書き込みます。プロセス全体に均等に分散された 100 個の double で構成される小さなテスト データ セットを使用しています。これまでの出力のフォーマットは次のとおりです。
結果を GNUPlot で直接解釈できるように、この出力をフォーマットする最良の方法は何ですか?
mpi - MPI_File_open がハングする
ファイルパスを正しく指定していないと思われます-私はLinuxの男ではないので、実際に何が間違っているのかわかりません-コード:
無効なパスを指定してもハングする
をコメントアウトすると、 次のif (!rank)
ようにクラッシュします。
一方、フォームのパスを 指定すると、次のsftp://stdxxxxx@linux11.di.uoa.gr/home/users1/stdxxxxx/public_html/grid.txt
ように楽しく進みますCannot open file sftp://stdxxxxx@linux11.di.uoa.gr/home/users1/stdxxxxx/public_html/grid.txt
なんで ?
これを、Linux マシンのクラスターで netbeans を介してリモートで実行します。指示 :
/usr/local/mpich2/bin/mpiexec -machinefile マシン -np 9 "${OUTPUT_PATH}" 84 9 /home/users1/stdxxxxx/public_html/grid.txt
"${OUTPUT_PATH}"
実行可能ファイルです
mpirun --version
またはmpiexec --version
その結果invalid "local" arg: --version
編集 :
fortran - MPI-IO: MPI_File_Set_View と MPI_File_Seek の比較
Fortran 90 で MPI-IO を使用してファイルを書き込もうとすると問題が発生します。MPI_File_Set_View
69Go ファイルを取得しましたが、これは私が書いている内容を考えると大きすぎます。ちなみに、ファイルを増やしてもファイルのサイズは変わりませloc_x
んloc_y
。
ただし、を使用するMPI_File_Seek
と、はるかにうまく機能します。書き込みたいデータを含む適切なサイズのファイルが作成されます
これら 2 つの方法は同じものを生成するように思われます。特に、最初の方法は非常に大きなファイルを作成する必要があります。
コードを gfortran 4.6.3 と OpenMPI 1.6.2 でコンパイルします。
どんな助けでも大歓迎です!
multithreading - ファイルのマルチスレッド結合 (共有メモリ)
次のような形式の N 個のファイルがあるとします。
1 つのファイルは次のよう
になります。
異なる ID を持つデータがある程度存在するたびに
(1 から 1000 までの ID を持つデータが、これらの N 個のファイルに何らかの方法(混合)で分散されるたびに)
これらの N 個のファイルをすべて結合して、順序付けされた単一のファイルを作成したいと思います。
最終ファイル:
データ ID 1 ~ 1000 のサイズは約 100 MB ですが、最大 50 GB のデータを占めることが多くあります。
この問題に対する私の解決策は、これを可能な限り高速にするために、これまでのところ次のようになります。
スーパーコンピューター ノード (たとえば、24 ~ 48 コアのコンピューター 1 台) でT スレッドを使用します (たとえば)。ID 1 ~ 1000 のすべてのデータを一度に保持するために、共有メモリ配列を割り当てました(必要に応じてそれ以上にすることもできます)。
手順:
ステップ 1:
- 各スレッドには、開いて所有するいくつかのファイルがあります。次に、各スレッドは、ファイル内にある ID のデータを共有配列に入力します。
ステップ2:
- すべてのスレッドが最終的に 1 回処理されると、スレッド 1 はこの配列を順序付けられた形式で最終ファイルに書き込みます。
アスダス
- それが効率的であれば、私は非常に興味がありますか?とにかく並列読み取りは順次化されていないので、まったく役に立ちませんか? 超高速 SSD を備えたローカル コンピューター、またはネットワーク ストレージ (Lustres または Panasas ファイルシステム) を備えたクラスター ノードで、最終的なファイルを計算できました。
- ステップ 2 ですべてのスレッドを再び使用してディスクに並列に書き込むことはできますか (オフセットによる並列書き込みをサポートする MPI IO を使用します)、または他にどのように達成できますか? -> C++ 標準ライブラリ?
ご意見ありがとうございます。
c++ - プロセッサごとに異なるカウント値を持つ MPI_File_write_all
くだらない質問かもしれませんが、
データを連続的に作成するために、プロセッサが同じファイルにN
すべて異なるものを書き込むことを望みます。byte count
offset
MPI_File_write_all(file,data,count,type,status)
(個別ファイルポインタ、一括、ブロック)機能を使いたいです。
最初の質問は、各プロセッサがcount
パラメータに異なる値を指定できるか? MPI 3.0 リファレンスで言及されているものは見つかりませんでした。(私の意図は、それは不可能ですか?)
これまでにわかったことは、次の2つの問題です。
MPI_File_write... 関数に大量
MPI_BYTES
の整数 (32 ビット)を書き込みたい場合、関数は少なすぎて、もちろんオーバーフローします!count
MPI で派生データ型を使用しない (できない)/使用したくないのは、前述のように、すべてのプロセッサが別のデータ型を書き込み
byte count
、型がMPI_BYTES
このトピックについてご協力いただきありがとうございます。
fortran - mpi file write によって書き込まれたファイル内の認識できない文字
私は分子動力学コードの mpi I/O を学び始めていました。まず、このコードを実行しようとしました:
http://www.mcs.anl.gov/research/projects/mpi/usingmpi2/examples/starting/io3f_f90.htm
コンパイルして実行すると、「testfile」が得られました。しかし、「vim testfile」を実行すると、「^A^@^@^@^B^@^@^@^C^@^@^@^D^@^@^@」などの認識できない文字がたくさん表示されます。 ^E^@^@^@^F^@^@^@^G^@^'. また、geditでも開くことができません(ファイルの種類は不明です)
何が起こったのですか?コードをまったく変更しませんでした。
Ubuntu で Open MPI 1.7 と ifort 13 を使用しました。プロセッサはラップトップの intel i7 (4 コア/8 スレッド) です。MPI が機能することを確信しています。このテストでは -np = 4 を使用しました。
ありがとう