Zufallszahl für jeden Prozess in MPI
Ich verwende MPICH2, um eine "Odd-Even" -Sortierung zu implementieren. Ich habe die Implementierung durchgeführt, aber wenn ich für jeden Prozess seinen Wert zufällig auswähle, wird für alle Prozesse dieselbe Zahl zufällig ausgewählt.
Hier ist der Code für jeden Prozess, jeder Prozess randomisiert seinen Wert.
int main(int argc,char *argv[])
{
int nameLen, numProcs, myID;
char processorName[MPI_MAX_PROCESSOR_NAME];
int myValue;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&myID);
MPI_Comm_size(MPI_COMM_WORLD,&numProcs);
MPI_Get_processor_name(processorName,&nameLen);
MPI_Status status;
srand((unsigned)time(NULL));
myValue = rand()%30+1;
cout << "myID: " << myID << " value: " << myValue<<endl;
MPI_Finalize();
return 0;
}
warum bekommt jeder prozess den gleichen wert?
Edit: danke für die Antworten :)
Ich habe die Leitung gewechselt
srand((unsigned)time(NULL));
zu
srand((unsigned)time(NULL)+myID*numProcs + nameLen);
und es gibt unterschiedliche Werte für jeden Prozess :)