c*******h 发帖数: 1096 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: 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就抢在中间把它那
一行先打印了? | l********a 发帖数: 1154 | | j**u 发帖数: 6059 | 3 会,我还遇到过不同的process打印的东西交叉到一起的情况,所有我每行输出都在最
前面把rank号码标上。
【在 c*******h 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: 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就抢在中间把它那 : 一行先打印了?
| c*******h 发帖数: 1096 | 4 但我的显示是类似
rank = 0, a[0] = 1.0e-5rank = 1, a[4096]
= 1.2e-5
这样的。把rank打印出来也没用啊
【在 j**u 的大作中提到】 : 会,我还遇到过不同的process打印的东西交叉到一起的情况,所有我每行输出都在最 : 前面把rank号码标上。
| j**u 发帖数: 6059 | 5 我用过比较笨的办法,就是让process一个接一个打印,反正是用来debug的。用DDT比
较方便,不过可能要买licence,我也只在cluster上面用。
【在 c*******h 的大作中提到】 : 但我的显示是类似 : rank = 0, a[0] = 1.0e-5rank = 1, a[4096] : = 1.2e-5 : 这样的。把rank打印出来也没用啊
| c***r 发帖数: 1570 | 6 用conforming方法没这个问题,就是慢点。 |
|