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 :)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage