clock()和MPI_Wtime()之间的区别

Ank*_*tam 6 c c++ processor clock mpi

快速问题.对于我的代码的MPI实现,我两者都有很大的不同.我知道MPI_Wtime是每个处理器经过的实时时间,而clock()可以大致了解预期的时间.有人想添加一些断言吗?

R..*_*R.. 5

这个clock功能完全没用.它测量cpu时间,而不是实时/墙上时间,而且它有以下严重问题:

  1. 在大多数实现中,分辨率非常差,例如1/100秒.CLOCKS_PER_SECOND不是决议,只是规模.

  2. 通常的值CLOCKS_PER_SECOND(例如,Unix标准要求它为100万),clock在32位系统上会在几分钟内溢出.溢出后,返回-1.

  3. 大多数历史实现在溢出时实际上不返回-1,正如C标准所要求的那样,而是换行.由于clock_t通常是带符号的类型,尝试使用包装的值执行算术将产生无意义的结果或未定义的行为.

  4. 在Windows上它完全错误的事情和测量实时,而不是CPU时间.