|
该帖已经被评为精华帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-05-08
引用 执行的过程中,父节点需要依赖子节点的执行.
如果是 Bottom Up, 父节点就执行子节点进行求值. 如果是 Top Down, 父节点就是展开(Unwind)子节点. 不是很明白你的意思. 引用 我想知道的是,
在Top Down的过程中, 父节点展开(Unwind)子节点的时候, 如果遇到一个 Lazy Node, 那么就不会展开,而是直接进行求值.就是说Lazy Node的执行就是要遵守Bottom Up的方式了. 是这样吗? 一种语言的求值方式要么是strict的要么是non-strict的。不存在一会用top-down,一会用bottom up. 遇到non-strict node是否要unwind,关键是看你采用树规约还是图规约。图规约可以共享sub-expression提高效率,不存在规约方向的区别.也就是说图也是分top-down,和bottom up的.另外图规约可以对non-strict 节点做展开,但是不求值,这种方式叫做graph rewrite.这个时候只展开不求值. |
|
| 返回顶楼 | |
|
时间:2008-05-20
如果是.net 环境,推荐你研究一下Robotic Studio里面附带的CCR
|
|
| 返回顶楼 | |
|
时间:2008-06-10
ray_linn 写道 WALL.E 写道 说这话没有理由。顺序代码凭什么应该顺利地迁移到并行代码?除非编写的时候就为并行优化,顺序代码一般都严重依赖上下文关系。打破这个关系自然跟重写没什么区别。
传闻IBM花了大量时间研制并行编译器。如果顺序代码都可以顺利地转化成并行代码,那这个东西早就搞出来了。而且PS3也不会弄得现在这样子。 就是因为我们编程能力已经落后于硬件的进步了.大部分时候,我们都是用顺序的方式去思考逻辑. 我的想法并不是要完全打破顺序结构,而是在顺序结构适当中引入并行结构. 比如从文件中读数据--->对每个数据进行傅立叶变换--->把结果保存到文件中. 就可以用顺序--->并行--->顺序的方式来执行. 我想从现在到未来,CPU的数目只会更多, 昨天送来的样机有2个4核CPU 加 两张 2个双核 GPU, 12个core让你使用,并行只会更重要..... 傻傻地问:操作系统对多核的支持不需要考虑么?已经能够将一个进程的多个线程分配到所有的CPU上面?还是仅仅提高了多进程的并行速度? 记得好多年前就在己经有并行计算这个概念了,我还看过矩阵并行计算的算法,以后基本没接触了。 |
|
| 返回顶楼 | |
|
时间:2008-06-12
个人觉得多线程并不是为了程序处理速度的快,而是为了给用户一种感觉上的快,就像web上广泛使用的ajax一样,它并没有降低服务器的负担(反而加重了),但是它给了用户一种快的感觉。
|
|
| 返回顶楼 | |
|
时间:2008-06-19
lz需要一个支持数据流的管道
|
|
| 返回顶楼 | |








