mpi

    -1

    3答えて

    私はここで多くの同様のスレッドを見ましたが、私の問題は、私のプログラムが実際には異なる設定で実行されていることです。例えば :私のマトリックスは、2つのコアの1024x1024 ある:エラー4 11 、8、16等が正常に動作します。 マトリックス2048x2048:任意のコア設定について :エラー11 私はこれがなぜ起こるか、各プロセスが計算する2048 /(総プロセス)X 2028行列を取ってい

    0

    1答えて

    私はという1D行列データを持っています。各反復では、各プロセッサはQ_send_matrixを更新し、前のプロセッサ(rank-1)に送信しますが、次のプロセッサ(rank+1)から新しく更新された行列Q_recv_matrixを受け取ります。たとえば、反復では、Proc[0]はQ_send_matrixを更新し、Proc[3]に送信しますが、Proc[1]からはQ_recv_matrixを受け取

    1

    2答えて

    たとえば、MPI_Comm_spawnが呼び出されたときに、すべてのプロセスが必要なデータを持つ必要があるのだろうかと思います。 この関数を呼び出すと、操作を実行するルートプロセスが定義され、このランクは明らかに関数に適切なパラメータを与える必要があります。すなわち: MPI_Comm_spawn("./a.out", &argvs, maxprocs, info, 0, MPI_COMM_WOR

    0

    1答えて

    特定の種類のファイルに対して、Fortran mpiプログラムを順次書き込みから並列書き込みに変更しています。 netcdf 4.3.3.1/hdf5 1.8.9 parallelを使用しています。私は、インテルコンパイラのバージョン14.0.3.174を使用します。 すべての読み取り/書き込みが完了したら、ファイルを閉じる時間です。この時点で、シミュレーションはもはや継続しません。だからすべての

    0

    1答えて

    私は、並列コードの作成/実行にかなり慣れています。現在、私はプロセスのための感触を得るために並列コードを書く際の基本的なチュートリアルを試しています。私のコンピュータはMpichとubuntuを使っています。 私はこのページの「ベクトルを合計するための完全な並列プログラム」と題したコードを実行しようとしています:http://condor.cc.ku.edu/~grobe/docs/intro-M

    1

    2答えて

    私はMPIを使用して簡単な並列プログラミングを行っています。私はコンパイル時にエラーを起こさなかったが、ランタイム中に私が理解できないエラーが発生した。助けてください!君たちありがとう! ソースコードは以下の通りです: #include <stdio.h> #include <stdlib.h> #include "mpi.h" #include "matrix.h" #define MI

    1

    1答えて

    私は集中的に実行するためにメモリが不足しているMPI並列化を使用したFortranコードを扱っています。シミュレーション開始時に必要なメモリのほとんどすべてを割り当てています。サブルーチンの静的メモリ割り当ては通常小さいですが、これらのサブルーチンのためにメモリが使い果たされた場合、シミュレーションの早い段階で発生します。 Insufficient memory to allocate Fortr

    0

    2答えて

    私はmpiについて読んだので、私はMPI_Gather関数の使用に興味があります。 今、私はこれをやっているが、それは働いていない: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <mpi.h> char *funcion (char *a) { sprintf(a, "asdfa%u",

    2

    2答えて

    各プロセスで文字列を生成し、すべてを収集したい。しかし、各プロセスで作成された文字列は、intとcharを付加することによって作成されます。 私はまだすべてを正しく収集することができません。すべての部分文字列を1つずつ印刷することができますが、rcv_stringを印刷しようとすると、部分文字列が1つだけ、またはセグメント化エラーが発生することがあります。 memsetを使って文字列の最後にゼロを

    0

    1答えて

    ピアツーピアをサポートしていない(同じPCIルートハブにない)GPU用の古いAPIを使用して、異なるプロセスで2つのGPU間でデータをコピーしたいとします。しかし、私は同期に問題があります。私はそれらを理解して基本的な手順は以下のとおりです。 (プロセス0、デバイス0): void * d_X; cudaMalloc(&d_X, size); // Put something into d_X