世界是并行的?

    今天跟同事讨论起多核编程。他感慨说现在大家对并行的态度可以分成两派,一个是乐观派,一个是悲观派。
    论坛上也有很多讨论并行编程的帖子,比如T1大人的一些经典帖子。从大家的言论来看,乐观派提的比较多的一点就是“世界是并行的”,所以并行是必须的,是大势所趋,是前途光明的。
    但是世界真的是并行的吗?表面上看很明显是这样的,两个人同时在做不同的事情,这不是并行吗?但是我说世界是串行的,有一个时钟中断一样的上帝时间来处理各种各样的物理定律引起的效果,这样似乎也能说得通。感觉世界本质到底是并行的还是串行的,目前还只是一个世界观的问题。
    但是引入观察者之后就不一样了,一个粒子的速度和质量可能本质上来说是同时都存在一个确定值的。但是测不准原理说,我们只能精确测量其中的一个量。可以说要获取对一个观测者有意义的信息的时候,并发本质上是有些受限制的。
    再往上层说,我们现在用计算机有相当一部分还是做一些事务性的事情,这些本身就是人类从世界中抽象出来的一个流程。这个东西诞生的时候就只注重时序性,没有考虑并行,所以要改造成可并行的基本上都要从根本上推倒重来。用我的话说就是“等着人类进化吧”。
    另外并行编程大家都一致认可的难点就是任务的划分。感觉这点可以用退相干理论来解释。在最细微的层次上各种量子态是叠加在一起的,但是随着层次的提高,观察范围的扩大,目标的量子性质逐渐减弱。因此在不同层次的时候,目标的属性和呈现出来的信息都是不同的,自然处理时候引入的模型也是不一样的,所以在不同层次处理并发是需要重新编程的。比如对一团气体做研究,宏观的层次可能把他当做流体来处理就可以了,但是在微观的层次,就需要把气体当做无数个小球来处理。
    应该也是跟人所处的层次和最常接触的尺度有关系。在国家元首元首看来,一个国家就是一堆统计数字,但是在小老百姓看来,国家就是很多个人。现在并行处理需求最强烈的地方,比如天气预报,也是因为大气的尺度对于人类来说是很大的,所以建模的时候本身层次就比较低,自然本身就考虑了并行。如果人跟地球一样大,那华北地区下雨,西北地区晴天对我们就不重要了,我们就不会考虑这么多细节了。
-----------------------------从这里开始往下都是瞎想的--------------------------
    感觉还是要等计算机能像生物一样,不对,要像物质一样,能在不同的层次下存在,还要对人类表现出一个一致的接口,这时才能轻松的并行编程。不过这个好像比较困难,感觉上是不会存在的。不过这个属性倒是跟人的思维的性质比较接近,额……好像这个条件就是人的思维能直接得到确切的实际世界的信息……这时应该计算机就可以直接省掉了……晕菜,是我的思路还是受当前的条条框框限制吗……

你可能感兴趣的:(编程,生物)