1) ABOUT:ILP\DLP\TLP

1-1、ILP

  • 大约在1985年之后的所有处理器都使用流水线来重叠指令的执行过,以提高性能。由于指令可以并行执行,所以指令之间可能实现这种重叠称为指令级并行(ILP)
  • ILP大体有两种不同开发方法:(1)依靠硬件来帮助动态发现和开发并行;(2)依靠软件技术在编译时静态地发现并行。使用基于硬件的动态方法的处理器,包括Inter Core系列,在桌面和服务器市场上占主导地位。在个人移动市场,提高能耗效率通常是一个关键目标,所以设计人员开发较低级别的指令级并行。因此,2011年,PMD市场的大多数处理器采用静态方法,ARM Cortex-A8中即是如此(不过新的A9将采用动态方法)。从20世纪80年代开始到Inter Itanium系列,人们已经无数次尝试基于编译器的积极方法。尽管付出了无数次努力,但除了非常有限有限的科学领域外,这些方法没有获得成功。
  • ILP存在一些局限性,正是这些局限性直接导致向多核的转移。

1-2、DLP

  • SIMD的三种变体:向量体系结构、多媒体SIMD指令级扩展、图形处理单元GPU体系结构中的数据及并行
  • 第一种变体的出现要比其他两个早30年以上,它实际上就是以流水线形式来执行许多数据操作。与其他SIMD变体相比,这些向量体系结构更容易理解和编译,但过去一直认为他们对于未处理起来说太过昂贵,这一看法直到最近才有所改变。这种体系结构的成本一部分用于晶体管上,另一部分用于提供足够的DRAM宽带,因为他广泛依赖于缓存来满足传统微处理器的存储性能要求。
  • 第二种变体借用SIMD名称来表示基本同时进行的并行数据操作,在今天支持多媒体应用程序的大多数指令集体系结构中都可以找到这种变体。X86体系结构的SIMD指令扩展是在1996年以MML(多媒体扩展)开始的,在接下来的10年间出现了几个SSE(流式SIMD扩展)版本,一直发展到现在的AVX(高级向量扩展)。为了使X86计算机达到高计算速度,通常需要使用这些SIMD指令,特别是对于浮点的程序。
  • 第三种变体来自GPU社区,它的潜在性能要高于当今传统多和计算机的性能。尽管GPU的一些特征与向量体系结构相同,但他们有自己的一些独特特征,部分原因在于他们发展的生态系统。在GPU的发展环境中,除了GPU及其图形存储器之外,还有系统处理器和系统存储器。事实上,为了辨识这些差别,GPU社区将这种体系结构成为异类。

1-3、TLP

  • 多处理器:紧耦合处理器组成的计算机,这些处理器协调与使用由单一处理器系统控制,通过共享地址空间来共享存储器。
  • 这里所研究的多处理器范围小到一个双处理器,大到包括数十个处理器,通过存储器的共享进行通信与协调。尽管通过存储器的进行共享隐含着对地址空间的共享,但并不意味着只有一个物理存储器。这些多处理器即包括拥有多个核心的单片系统(多核)也包括由多个芯片构成的计算机,每个芯片可以采用多核设计。
  • 而集群:是由大量处理器构建而成的超大规模计算机,在其所采用的模型中,要么假定有大量独立请求,要么假定有高度并行、密集计算任务。当这些集群发展到数万个服务器时,我们就称之为仓库级计算机。
  • 而多计算机:除多处理器、仓库级系统外的一种特殊的大规模处理器,他们的耦合度要低于多处理器,高于仓库级系统。主要用于高端科学计算。
  • 多处理器组织方式:①对称(共享存储器)多处理器(SMP),或集中式共享存储器多处理器。②分布式共享存储器(DSM):为了支持更多的处理器,存储器必须分散在处理器之间而不是集中式的,否则,存储器系统就无法在不大幅延长访问延迟的情况下为大量处理器提供带宽支持。
  • 在SMP和DSM这两种体系结构中,线程之间的通信是通过共享地址空间完成的,也就是说,任何一个拥有正确寻址权限的处理器都可以向任意存储器位置发出存储器引用。与SMP和DSM相关联的共享存储器一词是指共享地址空间这一事实。与之相对,集群和仓库级计算机看起来更像是由网络连接的独立计算机,如果两个处理器之间没有运行软件协议加以辅助,那一个处理器就无法访问另一个处理器的存储器。在此类设计中,利用消息传送协议在处理器之间传送数据。

2) ABOUT:公共计算

100多年前,各家公司不再自行用蒸汽机和发电机发电,而是接入新建成的电网中。电力公用设施提供廉价电能所改变的内容并非限制于这些公司的运行方式。这一现象导致了一连串的经济与社会转型,来开了现代世界的序幕。今天,一场类似的革命正在进行之中。海量信息处理工厂挂在相互联网的全球计算机网格上,开始将数据和软件代码诸如我们的家中和公司中。这一次变为公用设施的东西是计算能力。

——Nicholas Carr

《大变革:重新审视世界,从爱迪生到Google》

(The Big Switch: Rewiring the World, from Edison to Google)

3) ABOUT:FAST

谁都可以搭建一块快速CPU。难点在于如何搭建一个快速系统。

——Seymour Cray 公认的超级计算机之父

本文链接:http://www.cnblogs.com/zjutlitao/p/4181440.html

更多精彩:http://www.cnblogs.com/zjutlitao/p/4125085.html

[云] 1、云服务器——从ILP\DLP\TLP谈起的更多相关文章

  1. 转-阿里云CentOS Linux服务器上用postfix搭建邮件服务器

    http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html 注:本文的邮件服务器只用于发送邮件,也就是ST ...

  2. Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解

    Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...

  3. 【转载】阿里云ECS Linux服务器禁止某些IP访问

    在阿里云ECS Linux服务器运维过程中,如果发现某些IP访问异常,如怀疑有攻击行为或者怀疑是别人写的爬虫程序长时间占用你的服务器资源,则可以通过相关的设置来禁止这些IP段的访问,拒绝这些IP的请求 ...

  4. 阿里云CentOS Linux服务器上搭建邮件服务器遇到的问题

    参考文章: 阿里云CentOS Linux服务器上用postfix搭建邮件服务器 Linux系统下邮件服务器的搭建(Postfix+Dovecot) 本来想自己搭建邮件服务器,但是看到一篇资料表示阿里 ...

  5. 阿里云 putty链接服务器出现 server refused our key

    阿里云 putty链接服务器出现 server refused our key 创建了密钥对绑定实例,puttygen生成ppk,putty配置参数,连接,一步一步来的,结果出现 server ref ...

  6. 购买阿里云的云服务器时选择镜像centos时应该选择哪个版本

    购买阿里云的云服务器时选择镜像centos时应该选择哪个版本 方法/步骤首先,我们要清楚的便是每个系统之间的差别,以及在阿里云上的差别:1. Windows1.1) 系统内含正版激活.1.2) 适合于 ...

  7. 在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误

    在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误 解决:增加Swap空间(阿里云缺省没有分配任何 ...

  8. 【故障公告】阿里云 RDS 数据库服务器 CPU 100% 造成全站故障

    非常非常抱歉,今晚 19:34 ~ 21:16 园子所使用的阿里云 RDS 数据库服务器突然出现 CPU 100% 问题,造成全站无法正常访问,由此您带来了很大的麻烦,请您谅解. 故障经过是这样的.1 ...

  9. 阿里云CentOS7.3服务器通过Docker安装Nginx

    前言 小编环境: 阿里云CentOS7.3服务器 docker 下面分享一次小编在自己的阿里云CentOS7.3服务器上使用Docker来安装Nginx的一次全过程 温馨小提示: 如果只是希望单纯使用 ...

随机推荐

  1. javascript组件化

    http://purplebamboo.github.io/2015/03/16/javascript-component/#%E5%BC%95%E5%85%A5%E4%BA%8B%E4%BB%B6% ...

  2. Android 下拉刷新框架实现

    原文地址:http://blog.csdn.net/leehong2005/article/details/12567757 前段时间项目中用到了下拉刷新功能,之前在网上也找到过类似的demo,但这些 ...

  3. Func的介绍

    经常看到  Func<int, bool>...这样的写法,看到这样的就没有心思看下去了.我们学技术还是需要静下心来. 对Func<int,bool>的Func转到定义看它的解 ...

  4. jquery 删除数组元素

    expertsId.splice($.inArray(thisID.split('&')[0],expertsId),1); 1. expertsId数组名2. thisID.split('& ...

  5. MFC 实现字符串的移动

    在视类添加一个WM_KeyDown,然后实现函数写上 switch(nChar) {.. CRect rc; GetClientRect(&rc);   int nWidth = rc.Wid ...

  6. 转 对菜鸟开发者的叮咛:花一万个小时练习Coding,不要浪费一万小时无谓地Debugging

    原文见http://blog.jobbole.com/74825/ Coding 之于科技的重要性不言可喻,也不再是软体工程师的专利,医师.律师.会计师.护理师.金融从业人员,甚至是听起来摸不着边的政 ...

  7. umf(转)

    深入浅出Eclipse Modeling Framework (EMF) Eclipse Modeling Framework (EMF),简单的说,就是Eclipse提供的一套建模框架,可以用EMF ...

  8. 请不要做浮躁的IT人

    1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么.当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异. 2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用 ...

  9. poj 3264 Balanced Lineup (RMQ)

    /******************************************************* 题目: Balanced Lineup(poj 3264) 链接: http://po ...

  10. Python:生成器

    生成器:使用了 yield 的函数被称为生成器(generator).它记住上一次返回时在函数体中的位置. yeild运行过程:当你向生成器要一个数时,生成器会执行,直至出现 yield 语句,生成器 ...