分类:
2008-12-01 13:40:08
·无结构并行(UnstrUCtured parallelism) 函数式语言对于并发的真正贡献是这些语言中广泛采用的高层次编程方式,在这种方式下,像Map和Map-Reduce等操作会将计算应用于复合数据结构的所有元素。这种高层次的操作方式是并发的坚实基础。这种编程风格,幸运的是,这种编程方式没有被固化于函数式语言,对命令式语言有重要借鉴意义。 即便我们取得了上述一些成绩,程序员仍然需要优秀的调试工具帮助他们理解并行程序里的复杂和难以重现的交互行为。有两项常规技术可以收集这方面信息。一是更好的日志跟踪工具,可以记录哪一个消息被送到了哪个进程或线程,进程和线程又访问了哪个对象,因此开发者可以回溯并部分理解程序的执行行为。开发者也希望获得追踪跨线程因果关系(比如哪个消息传递到了主动对象,何时执行,导致哪一个别的消息传递到了其他主动对象)、回放、重排队列里的消息、步进包含回调的异步调用模式,以及其他能力,借以检测代码的并发执行行为。第二个办法是重放执行,它能让程序员备份程序的执行历史,然后可重新执行一些代码。重放调试的想法由来已久,但它的高成本和复杂性导致了被抛弃的下场。最近,虚拟机监视器(VMM,Virtual Machine Monitor)已经逐渐呈现出取代这两项技术的趋势,未来的并发世界里,这项技术很可能成为必需品。 |
chinaunix网友2008-12-01 21:34:12
这是人家去年写的博客,我也只是转载。并行编程是当前软件技术的前沿,如果可以实现,就会给软件发展带来质的飞跃。相信会给传统编程语言带来很大的冲击。