Hi All,

Doing quick test with rand()/srand() I found that MPI_Init() seems to be 
calling a function in their family  that is affecting the values in the user 
application.  Please see below my simple test and the results. Yes, moving the 
second call to srand() after MPI_init() solves the problem. However, I'm 
confused since this was supposedly addressed in version 1.7.5. From release 
notes:


1.7.5 20 Mar 2014:



- OMPI now uses its own internal random number generator and will not perturb 
srand() and friends.


I tested on OMPI 1.10.2 and 1.10.3. The result is deterministic.



Any ideas?



Thanks,
Regards,

#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
int main(int argc, char *argv[])
{
    int rand1;
    int rand2;
  int name_len;
    srand(100000);
    rand1 = rand();
    srand(100000);
    MPI_Init(&argc, &argv);
    rand2 = rand();
    if (rand1 != rand2) {
        printf("%d != %d\n", rand1, rand2);
        fflush(stdout);
    }
    else {
        printf("%d == %d\n", rand1, rand2);
        fflush(stdout);
    }
    MPI_Finalize();
    return 0;
}


host1:/tmp> mpirun -np 1 -host host1 -mca pml ob1 -mca btl tcp,self ./rand1

964940668 != 865007240


_MAC

Reply via email to