私はMPI Fortranプログラムをコーディングしていて、3つのランクで異なる長さの3つのベクトルを持っています。あなたは、私はそれを行うことができる方法を教えてもらえMPIすべてのプロセッサからのベクトルを結合する
Rank 0: a = [1 2 3 4 5 3 5 7 9 2 4 6 8 10 12]
:それらを組み合わせる
Rank 0: a0 = [1 2 3 4 5]
Rank 1: a1 = [3 5 7 9]
Rank 2: a2 = [2 4 6 8 10 12]
:私のような「連結」の方法でそれらを一緒に結合したいと思いますか?
MPI_GatherまたはMPI_Gatherv http://mpitutorial.com/tutorials/mpi-scatter-gather-and-allgatherを達成するために、
MPI_Gatherv()
を使用することができます/ http://www.mcs.anl.gov/research/projects/mpi/mpi-standard/mpi-report-1.1/node70.htm – alfCお返事ありがとうございました。私もmpi_gathervを見つけて、sendリンクで与えられた例を読んだ。私はまだ私の場合にそれを正しく行う方法が本当にわからない。あとでmpi_gathervを使うことができるように、私はベクトルの長さをあらかじめ送っておくべきです。それが正しいか ? – ctnguyen
実際に試しましたか?あなたは何と闘いましたか?コード全体をあなたのために書くつもりはありません。さらに、リンクされたページには詳細な例が含まれています。 – Ross