j**u 发帖数: 6059 | 1 ☆─────────────────────────────────────☆
cockroach (冬冬) 于 (Wed Jul 27 12:01:24 2011, 美东) 提到:
发信人: cockroach (冬冬), 信区: Programming
标 题: 问个mpi的问题
发信站: BBS 未名空间站 (Wed Jul 27 12:01:02 2011, 美东)
for (i = 0; i < len; i++)
{ printf("rank = %d, a[%d] = %g\n", rank, i, a[i]); }
上面代码是为了把分布式的数组a打印出来,同时把process的rank也打印出来。
有没有可能一个process还没把整行打印出来,另一个process就抢在中间把它那
一行先打印了?
☆─────────────────────────────────────☆
libralibra (soso) 于 (Wed Jul 27 13:26:01 2011, 美东) 提到:
打出来看看就知道了
☆─────────────────────────────────────☆
jzxu (自然) 于 (Wed Jul 27 13:38:30 2011, 美东) 提到:
会,我还遇到过不同的process打印的东西交叉到一起的情况,所有我每行输出都在最
前面把rank号码标上。
☆─────────────────────────────────────☆
cockroach (冬冬) 于 (Wed Jul 27 14:22:06 2011, 美东) 提到:
但我的显示是类似
rank = 0, a[0] = 1.0e-5rank = 1, a[4096]
= 1.2e-5
这样的。把rank打印出来也没用啊
☆─────────────────────────────────────☆
jzxu (自然) 于 (Wed Jul 27 14:28:06 2011, 美东) 提到:
我用过比较笨的办法,就是让process一个接一个打印,反正是用来debug的。用DDT比
较方便,不过可能要买licence,我也只在cluster上面用。
☆─────────────────────────────────────☆
caoer (caoer) 于 (Sat Jul 30 21:54:56 2011, 美东) 提到:
用conforming方法没这个问题,就是慢点。 |
|