【发布时间】:2013-12-07 02:52:07
【问题描述】:
我正在使用 MPICH2 来实现“奇偶”排序。 我做了实现,但是当我随机分配每个进程他的值时, 相同的数字随机分配给所有进程。
这里是每个进程的代码,每个进程随机分配他的值..
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;
}
为什么每个进程得到相同的值?
编辑:感谢您的回答:)
我换行了
srand((unsigned)time(NULL));
到
srand((unsigned)time(NULL)+myID*numProcs + nameLen);
它为每个进程提供不同的值:)
【问题讨论】: