关于计算机技术以及未来的一些想法
2010/7/24 14:44:47
周末受到一点挫折,昨天回家打开《战争机器》把电脑海扁了一顿,心里觉得无比畅快。爽完以后感到有些失落,于是开始反思。
最近玩游戏太多了,该振作起来了,这1年多人很不在状态,很多打算做的事情都搁浅了,以下是清单:
Life单体生命演化模拟系统(CodeName: WildLife):只做了一个WPF开头就丢在那里了;
手机条码扫描和商品信息分享系统(CodeName: BarLife):还停留在草稿纸上;
Android单片机的研究 :停留在跑马灯阶段;
用Lego积木做的自动爬楼梯机器人 :只搭了机器人主体部分,看了不少机械方面的书,程序一个字没写;
朋友一起搞的建筑效果图的3维渲染和投影实验:吃饭扯淡中全给丢到脑后了。
用Xbox360手柄开发的通用型可扩展的电脑遥控器 (CodeName: A360): 虽说完成了,但是bug还有很多没修,不敢放到网上去,丢不起那人!
并行计算和分布式计算技术研究: 看了点文章,还没动手实验
基于GPS和图形识别的扩展实境系统研究(CodeName : Espresso): 还停留在理论上,看了图形识别的算法,仅限于此
清凉峰登顶: 在一次次的“这周好累,下周吧”中消散了
看玩具总动员3 : 想起来去看的时候,已经过档期了
唯一比较成功的大事,是总算把旅游签证的资料收齐递交上去了(离不开我好友的鞭策。如此了解我脾气和性格的,恐怕只有你了,谢谢你),通过与否未知,佛祖保佑,阿门。
妈的,写到这里,感觉自己真该成立一个“点子公司”。
嗯。。。还是算了吧,这是前年的想法。。。。。
我真让我自己无语。。。-_-!
好了,该想点正事了,不管怎么样,得保重身体,好好生活。。这么多东西拉下了,我得重新捡起来。最近1年虽说很多事情没做好,不过一直在考虑关于计算机的未来,一个关于每个人的生活的未来。
计算机在这10年来是爆炸式发展,10年前我刚毕业,我们公司甚至没有Intranet,只有一个小局域网连接了开单间和服务器。而现在,光我自己现在的住处就有2台PC,1台PSP,1个手机组成了无线局域网,任何一个设备都比以前开单间的486电脑要快,而存储空间更是远远超过当年我们的公司企业级主服务器。任何其他一个行业都无法在10年内取得如此的发展。
但是,计算机技术发展的速度在放缓,尤其是计算机的大脑:CPU。在可预见的未来,除非量子计算机出现技术突破,否则摩尔定律将不再适用于单核心半导体芯片组件(生物计算机因为原理完全不同,以后另作分析)。 我们的CPU技术正在接近物理极限,最明显的就是这些年来,CPU厂商已经开始从追求更高频率,改为以多核与节能作为卖点。而软件开发这些年来也逐渐呈现出一个全新的进步:并行计算和分布式计算!
计算机程序的开发,在我看来,存在两种东西:发明和应用。 老有人和我说Google的GFS或者MapReduce技术多么多么的牛B,于是专门研究了一下,发现充其量就是一个分布式计算系统的实现。Unix和Windows上早就有类似的东西了,Google做了一次很伟大的“应用”,不可否认技术含量很高(支持10个节点与支持1000个节点的并行集群设计,其难度差别远远超过100倍。任何一个小小的问题,放大10倍与放大1000倍,带来的后果完全不同),但我不认为是一种让人激动的发明。我倒是认为Google的Go语言是一次伟大的尝试,原因我在后面会说明。
前几年出一个叫做CUDA的东西,nVidia公司推出的用显卡来代替CPU计算的一个东西。这次微软的DX11也带了这个,叫做ComputeShader。从运算指标来看,1块千元左右的显卡的CUDA的运算能力是目前的顶级CPU都无法比拟的。从原理来看,就是把显卡看成很多个功能单一的CPU来并行计算。由于显卡对于不少算法都做了优化,甚至提供了硬件运算指令,所以单一内核的运算速度有极大的提升,何况显卡动不动就是几十几百个运算单元。
微软有一套叫做Future Vision的影片很有意思,讲述了未来人们的生活是如何与计算机系统互动的。从影片里可以看到各种瘦终端在提供极其的强大视频,图形和在线数据分析能力。这个影片是我觉得最有可能实现的关于未来的设想。其实不管是并行计算也好,分布式计算也好,其核心就是用多个计算单元(甚至是专用计算单元)来并行的处理数据,这些运算单元并不需要在一个物理封装内,也不需要在一台计算机内,甚至不需要在同一个大陆。借助于有线和无线网络,所有的运算单元都能够成为一体,进行协力计算。
嗯,说了这么些,好像还是没说到重点,还是把重点用列表的方式来写吧。以下是我认为以后有可能出现的东西:
P2P计算网络:以后的程序员将无法知道自己的程序到底运行在哪里,其实现在的“云计算”就已经实现了这个目的,但是“云计算”目前需要大公司来提供和维护服务器集群。而新的计算系统很有可能采用对等P2P计算网络来实现,能够实现一旦上线,永远不会下线的自维护和自升级系统架构。很可能当你打开手机查看天气预报的时候,天气预报的计算其实是从世界上几十万台设备在5分钟前运算的结果。并且,请注意,其实你的手机刚才也利用了空余的CPU时间参与了该运算!
计算量:一种计量单位,用以评估计算贡献的单位。在以后,大公司仍然会为大众提供服务,上面所说的气象预报就是一种。但是大公司无法自己维护如此庞大的运算集群,他们需要购买运算能力。这使得运算能力计量单位出现。普通用户可以在自己的计算机上安装一个符合某种协议的软件来选择加入某个P2P计算网络(我认为会长期出现多种计算网络并存的情况),大公司在计算网络上发布计算任务,而个人计算机会分担该任务并获取报酬。由于不同的设备运算能力不同,从服务器到手持式设备,其计算能力完全不可同日而语,所以使用运算时间来计算肯定不公平。所以到时会诞生一种新的计量单位,也就是计算量。
计算单元:任何参与计算网络的设备,可能是任何一种设备,比如PC,服务器,手机,游戏机,甚至路由器的也可以利用空闲CPU周期来提供计算。
算法投毒:当某些有缺陷的或者精心设计的算法进入运算网络后,可能导致该算法永远无法完成,在计算网络中无限增殖和繁衍并执行特定指令。如果该算法具备自我进化功能(比如基因算法来产生下一代),那么很可能出现一种全新类型的网络战争。
计算网络边界与政府:由于计算网络可以提供几乎无穷尽的运算能力,这会导致政府倾向于组建地区性专有计算网络,从而达到计算资源可靠保有率。这使得计算网络和某个特定通讯网络出现映射关系,而该通讯系统很可能还提供普通的数据通讯服务,比如手机通讯和电视信号传播,网络战争的一种表现将体现为通过网络投毒故意制造大量数据包来阻塞某个特定运算网络,从而达到阻断通讯网络的行为。
计算量期货市场:大公司在购买计算量后,通常会攒满一定的额度才给予客户兑换成货币,而不是有多少换多少。这样可以避免过度频繁的小额兑换挤垮系统。而客户如果需要使用该公司提供的服务的话,可以用积攒来的计算量来直接兑换,避免了[计算量]-〉[货币]-〉[服务]的无谓转换。这导致计算量可以估价,同时具备资金沉淀功能。尽管计算量和服务的购买价格不会频繁变化,但是由于计算量可以用于兑换本国货币,这将导致导致计算量参与汇率浮动,这将导致买卖计算量也能获利,华尔街的那帮混蛋肯定会弄出计算量期货市场或者类似的金融衍生产品。金融组织的参与可能会给计算网络带来负面效应,金融本质上是短视的,急于求回报的,任何投资者无法理解的东西,往往会被抹杀。这是在发展的时候需要密切注意的。
新能源系统:计算网络对运算能力几乎无限的榨取,将加剧全球电力紧张。迫使新能源技术的加快发展。能源公司将获得比现在更强大的掘金能力以及政治地位。
无限互联:由于计算网络对通讯系统的需求,世界上大部分城市将覆盖无线或者有线网络,智能终端将可以在任何地方接入网络,提供几乎无限的便利。从陌生地方找厕所到医院排队拿号,无所不包。
为分布式编程准备语言:目前的主流程序语言对于分布式支持并不好,感觉这些语言会逐渐进化出更适合分布式运行的东西来。Go语言是一个很好的尝试。
以上是关于计算机发展的一些碎片,基于对人类社会的研究以及计算机科学发展的理解,加上我个人的推理得出。不管怎么说,至少我知道了该选择哪个方向去研究,希望我的看法是对的。
努力。。。。。奋斗。。。。。。! --周星驰
2010年7月24日 于少年路老宅
posted on 2010-11-07 21:34 john_masen 阅读(491) 评论(1) 编辑 收藏 举报