我有一个MPI程序,我正在本地计算机上开发,但需要在远程计算机上运行。我使用clock()
来测量时间,但在发现它在远程计算机上运行不正常(由于完全不同的架构)之后,我用{{1}替换了一些调用clock()
产生了所需的结果。该程序仍在本地和远程计算机上运行。
但是,我刚刚用MPI_Wtime()
替换了clock()
的所有其他调用,现在在本地计算机上启动程序会立即导致进程停止,退出代码为-1073741819。即使我在MPI_Wtime()
的第一行放了一个cout
,也没有输出,所以我很确定这不是我的编程错误,但我不知道出了什么问题。< / p>
在执行更改的代码(或任何代码)之前,源代码中的更改如何导致程序失败?
答案 0 :(得分:4)
您是否从静态对象的构造函数中调用MPI_Wtime()
?它们在main()
之前运行。
答案 1 :(得分:0)
那个cout被'endl'或'flush'操纵者冲了?如果没有,程序可能会在之后崩溃,但你永远不会知道,因为缓冲的输出会丢失。