作者ikjhyu (还没想到)
看板CSSE
标题Re: accmulation
时间Tue May 31 05:24:21 2005
※ 引述《Eventis (何逸凡)》之铭言:
: ※ 引述《ikjhyu (还没想到)》之铭言:
: : 若有一个程式
: : in sum=0;
: : for(int i=0; i<20;i++)
: : {
: : sum=sum+value(sum);
: : }
: : int value(int)是一个子函数
: : 会回传一个值, 然後程式会继续累加(或叫叠代)
: : 请问这样的程式可否平行计算?
: : 即每个iteration 算一个值以上?
: sum(i+1) = sum(i) + value(sum(i))
: sum(i)
: \ \
: \ \
: \ value(sum(i))
: \ /
: \ /
: sum(i+1)
: \ \
: \ \
: \ value(sum(i+1))
: \ /
: \ /
: sum(i+2)
ㄟ...看不懂
为什麽这样每次iteration 可以算两次sum的值?
这个问题好像如果多一点value的资讯可以用的话
不知道有没有办法..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.211.123
1F:推 jeunder:如果不知道 value() 的性质, 考虑一般化的结果 61.230.226.190 05/31
2F:→ jeunder:那就不可能办到 61.230.226.190 05/31
3F:→ jeunder:离散动态系统是很难捉摸的, 甚至会出现浑沌现象 61.230.226.190 05/31
4F:推 Eventis:不是算两个值喔XD 61.62.49.43 05/31
5F:→ Eventis:我只是把dependency标出来而已^^ 61.62.49.43 05/31
6F:→ Eventis:在critical path上有serial特性的话 61.62.49.43 05/31
7F:→ Eventis:基本上就像楼上的前辈说的,那是不可能办到的. 61.62.49.43 05/31
8F:→ Eventis:从上面的图就知道,把sum(i)拿掉,图就disconnect 61.62.49.43 05/31
9F:→ Eventis:因此不可能在未知sum(i)的情况计算sum(i+1) 61.62.49.43 05/31
10F:→ Eventis:或者更小心地说,在计算sum(i+1)时, 61.62.49.43 05/31
11F:→ Eventis:也能算出中间的结果sum(i) 61.62.49.43 05/31
12F:→ Eventis:如果没办法把value内部拆开,图形重建. 61.62.49.43 05/31
13F:→ Eventis:那就只能在这边Orz了XD 61.62.49.43 05/31
14F:推 jeunder:楼上的才是前辈, 我只是小小小咖 61.230.226.190 05/31