`
yhx0000
  • 浏览: 28212 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

云计算第一季:002

阅读更多

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

云计算第一季:002

这里我们讨论一下一些基础类的相关基础信息

 

写的比较乱,基本是考虑到哪里写到哪里,然后再做整理,否则思路怕跟不上Sorry

 

CPU 如何处理指令:

这是基础的基础了

想当初学习汇编和微机原理的时候没有好好学,这回好了,还得回头再看看了。

一般来说,个人电脑:主流的CPU 厂商包括IntelAMD ,小一些的有威盛

服务器:SPARCSUN 的标准,现在是OpenSparc ,富士给代工的,当然他也做自己的SPARC ),IBMPowerCPU 等。

同时也有应用于嵌入式的ARM 架构CPUARM 不是cpu ,而是CPU 的架构,他收专利费)比如你的智能手机之类。

还有一个国人的骄傲,那就是龙芯。

关于CPU 具体介绍我也不想多说了,http://know.chinabyte.com/index.php/%E8%8B%B1%E7%89%B9%E5%B0%94CPU%E5%8F%91%E5%B1%95%E5%8F%B2 ,这个是关于IntelCPU 的简介,有兴趣可以看看。

说了一堆广告名词后,我们来说一下架构。

其实我感觉如果真正运行分布式计算,CPU 最好是64 位的CPU

我们这里所说的CPU 基本都是X86 架构的CPU ,其他的暂时不做深入介绍。

 

 

当处理器运行的时候,会从内存中指定区域读取相关指令进行操作。

根据操作码进行数据的操作。

 

这个部分在很多教科书或者老人头的书上都有。

 

我这里要说的是,CPU 对于每一条操作指令都是采取阻塞式的,这样,所有的指令都会被放入队列等待操作,同样,因为这种关系,形成了数据操作的瓶颈。

 

双核甚至于多核CPU 为了解决类似问题,被生产了出来,同时操作系统会对所有的操作指令进行管理,分别放入单独的CPU 核心中进行执行,提高了效率。

 

这样问题产生了,我如果需要同时处理100 条指令(假设而已),如果在单核心CPU ,需要这100 条指令一条一条的去处理。

如果双核理论也就是快一倍,但是,集群的产生让需要处理的命令进行了分流,当然,目前的集群层次还是比较高的,不是基于单独的指令,而是基于一个用户操作来进行的。

 

这个时候,我们可以考虑一个事情,就是如果把网线考虑成为一个BUS ,所有的机器被当作一个单独的CPU 内核进行处理的话,会不会提高系统的操作的效率?

答案是肯定的,但是目前存在的问题也是比较棘手的。

举一个例子,一个业务操作,他并不能并行的进行执行,他需要一步一步处理下去,然后返回结果。

这样的例子太多了,以至于形成了编程人员的固定思维了,也就是所有的操作都有次序,这样结果是还停留在高层次的集群中,无法充分把所有的集群中的机器当作一个多核心的CPU

 

根本的解决方法就是改变编程的顺序化的思维,让我们程序是一个并行处理的程序。

当然,这需要改变的太多了。

还有个折中的方案,修改Runtime ,让Runtime 把指令进行分解,把可以并行处理的指令一起发送到可以处理的各个机器上。

 

今天就写到这里吧,思路感觉又乱了,再好好考虑一下:)

 

1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics