私はmpiについて読んだので、私はMPI_Gather関数の使用に興味があります。正しく使用する方法MPI_Gather?
今、私はこれをやっているが、それは働いていない:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mpi.h>
char *funcion (char *a) {
sprintf(a, "asdfa%u", 2);
}
int main (int argc, char *argv[]) {
MPI_Init(&argc, &argv);
int rank;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
char *parcial = malloc(5*sizeof(char));
char *total;
if (rank == 0) {
total = malloc(15*sizeof(char));
parcial = "aaaaa";
}
else if (rank == 1) {
parcial = "bbbbb";
}
else if (rank == 2) {
parcial = "ccccc";
}
MPI_Gather(parcial,5,MPI_CHAR,total,15,MPI_CHAR,0,MPI_COMM_WORLD);
if (rank == 0) {
printf("%s",total);
}
MPI_Finalize();
}
代わりの印刷をそれだけで「AAAAA」を印刷しています「aaaaabbbbbccccc」。
私は間違っていますか?
私はちょうど下部にある 'edit'ボタンを使用し、あなたが質問に何かを追加したい場合は、私は3 – Sergio
-npオプションを指定して、それを実行していますことをコメントすることを忘れてしまいました質問の左にある。 – Zulan