Ich habe eine Struktur namens Department
, und Array der Struktur Abteilung namens Departments
, ich möchte dieses Array für die bestimmte Anzahl von Prozessen zu streuen, so dass jeder Prozess Current
ein Element (struct) (Abteilung) vom Departments
Array `Scatter Array von Strucubers in C MPI
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
struct Department{
int position;
int Department_Destinations[100];
};
struct Department Current,Departments[100];
int main(int argc, char** argv){
int rank, nprocess;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &nprocess);
if(rank==0){
for(i=0;i<n;i++){
Departments[i].position=i+1;
for(j=0;j<c1;j++){
Departments[i].Department_Destinations[j]=0;
}
}
MPI_Scatter(Departments, sizeof(Current), MPI_BYTE, Current ,sizeof(Current), MPI_BYTE, 0,MPI_COMM_WORLD);
MPI_Finalize();
return 0;
}
die Anzahl der Verfahren auf die Anzahl der Departments
Elemente gleich Angenommen (Abteilung)
Bei der Kompilierung und diesen Code ausführen es gibt mir Fehler: "inkompatibler Typ für Argument 4 von 'MPI_Scatter'"
Könnte jemand beantworten, warum dieser Fehler und wie streuen Array von Struktur (Abteilungen) in MPI?
Vielen Dank im fortgeschrittenen
Dies ist eine schreckliche und sehr nicht tragbare Weise Strukturen zu übergeben. Suchen Sie auf der Website nach Fragen und Antworten, die 'MPI_Type_create_struct' enthalten, um Informationen zum ordnungsgemäßen Senden von Strukturen zu erhalten. –