[py]你真的了解多核处理器吗? 了解多线程

你真的了解多核处理器吗?

1.双核≠双性能

多核不一定会使你的手机或电脑速度更快,但它将提高你的PC的整体性能,这是一个有所不同的细微的技术特色。多核处理器的性能提升并不是简单CPU核心的倍数,因为受到两(多)个核之间共享资源的拖累。比如双核性能只是单核的1.4~1.8倍,实际情况取决于具体的应用。


一个核拼命干活,拼命转啊转啊,其他核在看,最后温度不断上升然后蓝屏了。。。。

上图是个笑话,不过你可以用任务管理器可以看到并不是每个核的负载时均匀分配的。

这是为什么一个核转啊转啊,最后蓝屏的原因。

2.多核并不一定高能

从理论上来说,多核的性能肯定要比单核高很多。不过软件的发展远远跟不上硬件发展的速度,这样多核CPU在实际应用中就无法发挥其应用的功效,比如现在四核CPU已经非常的普及,但是针对四核优化的应用软件寥寥可数。即使你已经用上八核的CPU,在运行很多软件时仍然不会感到速度有多快得提升。因此我们并不要唯核是从,多核的不一定是最优的。“够用就好”永远是大家装机时选择硬件的唯一原则。另外由于架构、主频的不同,多核也并不一定比少核性能高。

多核不一定高能,的原理跟人多不一定力量大,是一个道理。

3.多核不仅是CPU

为了充分发挥CPU功效和减少用户支出,现在越来越多CPU集成GPU功能,比如Intel就在Sandy Bridge把GPU核心整合进了CPU当中,其GPU核心的图形核心性能大幅度的提升。

多核化是无奈之举:以前,半导体工艺的发展可以带来“一举三得”的效果,包括提高晶体管速度、降低功耗和缩小芯片面积。但是,当制造工艺发展到90nm或65nm时,泄漏电流的问题凸显,沿用以往的内部架构来提高频率的方法难以奏效。为了在不提高工作频率的条件下实现性能的提升,只能增加CPU内核的数量。

在有许多客户机要求进行并行处理的服务器中,多核架构容易获得比较好的效果。但是,问题发生在根据用户的要求运行应用软件的客户机里。由于可能同时运行的软件数量有限,即使可以将各个软件分割以后并行执行,但软件中必须串行执行的部分仍然会妨碍处理性能的提升。许多相关人士认为,在目前这种架构的PC中,4~8个内核可能是多核处理器能够获得较好性能提升效果的极限。

集成多个不同类型的内核:另一方面,提供新体验的高级用户接口、动态及静态图像分析等新的应用软件的不断出现,对处理器的处理性能提出了更高的要求。如果处理器仅在目前以CPU内核为主的架构上继续发展,这些新应用可能将无法实现。

2007年9月,英特尔公司董事会名誉主席Gordon Moore在英特尔秋季技术峰会上表示:“众所周知,摩尔定律在物理上是有极限的。大约10年或15年以后,摩尔定律将会遇到根本性障碍,而退出历史舞台。”反过来说,Moore认为,半导体工艺的发展很可能还会像以前那样再延续10年左右。在把工艺发展当作技术推动力的同时,为了越过横亘在多核架构前面的壁垒,处理器应该采用什么样的内部架构呢?

业界想到的方案是采用异构处理器架构,即将不同类型的内核集成在一起。在这种架构中,CPU内核所不擅长的浮点运算及信号处理工作,将由集成在同一块芯片上的其它可编程内核执行。相关人士认为,集成多个不同类型内核的异构多核架构将成为今后处理器的主流架构。
从同构到异构通用处理器将实现SoC化:Nvidia公司的总裁兼CEO指出:“目前,图形芯片具有的浮点运算性能已经大大超越了处理器。如果能够灵活运用,随着图形芯片的发展,将会涌现出各种各样新的应用。”在占据PC及服务器主流地位的x86处理器中,围绕GPU(图形处理单元)展开的相关研发工作突然活跃起来。

GPU的集成和通用化取得进展:围绕GPU的研发方向主要有两个。首先,是将GPU内核集成到处理器芯片上。AMD公司在2006年7月收购了加拿大的GPU生产商ATI科技公司,并提出了将ATI公司的GPU内核集成到处理器上的Fusion处理器方案。另外,英特尔公司在2007年4月明确表示,正在开发矢量处理器Larrabee(开发代号),其中集成了许多专用于浮点运算的CPU内核。

另一个研发方向是,利用GPU擅长对浮点运算进行并行处理的特点,将其用作矢量处理器。这就是面向通用计算领域的GPGPU(General Purpose Computing on GPU),NVIDIA公司从2006年下半年已陆续推出相关的硬件产品及软件开发工具(见图1)。

赛灵思推了一款新器件的时候,估计英特尔老大科再奇惊得要从椅子上掉下来了。

这个新器件是啥?这就是赛灵思今年在大年初五发布的基于16nm FinFET 3D晶体管的FPGA新品---Zynq UltraScale MPSoC

看看它的内部结构:

  • 1、 四核A53处理器 CPU
  • 2、 一个GPU Mali-400MP
  • 3、 一个Cortex-R5 CPU
  • 4、 电源管理单元,AMS单元
  • 5、 H.265(HEVC)视频编解码器
  • 6、 安全模块
  • 7、 UltraScale FPGA 单元;

这其实就是一款异构处理器,如前所述,它是一款ASIC就级的异构处理器!而且是64位,采用16nm FinFET工艺的处理器!而且是采用FPGA实现硬加速的处理器!

Intel收购Altera,说明Intel坐不住了。一场大戏即将开幕。拭目以待。

4. 什么是双核、双芯和超线程

双(多)核:是指拥有两(或多个)物理核心(又称为内核),各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口等逻辑单元,各个核心通过超传输技术让CPU内核直接跟外部I/O相连,集成内存控制器技术,使得每个内核都有自己的高速缓存可资遣用,都有自己的专用车道直通I/O,没有资源争抢的问题。

双(多)芯:仅仅将两(或多个)完整的CPU封装在一起,连接到同一个前端总线上。由于总线的限制,两个核心必然会产生总线争抢,影响性能,而且这样的核心越多,越容易加剧处理器争用前端总线带宽,成为提升系统性能的瓶颈,这是CPU架构引发的先天故障,因此这种双(多)芯实际上是“假多核”。双芯有些像是北京郊区开发的大型社区一样,多个社区利用同一条城市快速路,人们出行(数据处理)肯定要遇到堵车的问题。双核则是为不同小区开发专用车道,每个小区出行并不交叉(数据可以并行处理),并不会发生堵车现象。

HT技术(即超线程技术):HT技术是在处理器实现2个逻辑处理器(注意不是物理处理器),是充分利用处理器资源,类似虚拟CPU,让系统误认为是双核处理器。而双核心处理器是集成2个物理核心,是实际意义上的双核心处理器。举个形象例子来说,前者好像是一个能用双手同时炒菜的厨师,但一次只能把一碟菜放到桌面;而双核心处理器好比2个厨师炒两个菜,并同时把两个菜送到桌面。

5.多任务与多线程

多任务是指系统可以同时执行多个任务,比如你可以一边下载、一边听歌,Windows可以很好支持多任务的运行,这和多核CPU并没有多大关系。多线程则是指系统可以针对某项操作,调用多个CPU进行并行处理。比如支持多线程的PS,在批处理多个操作(如滤镜、抠图)时,系统就会调用多路CPU并行处理这些操作以提高操作效率。

原文地址:https://www.cnblogs.com/iiiiiher/p/8341091.html

时间: 2024-11-13 08:07:59

[py]你真的了解多核处理器吗? 了解多线程的相关文章

[转帖]AMD、英特尔为何争相走向胶水多核处理器?真相在此

AMD.英特尔为何争相走向胶水多核处理器?真相在此 胶水多核到底好不好?这个事不是简单一句话能说明的,今天的超能课堂里我们就来聊聊MCM胶水多核技术的过去及未来. 作者:孟宪瑞来源:超能网|2018-11-21 15:25 收藏 分享 从2017年到现在,不到两年时间里X86处理器行业的变化要比过去五年都要大,标志性事件就是AMD重返高性能处理器市场,除了在桌面处理器力推8核16线程处理器之外,在服务器市场上还推出了32核64线程处理器,前不久更推出了7nm的64核128线程"罗马"处

ARM多核处理器启动过程分析

说明: 该流程图按照代码执行时间顺序划分为4部分: 1.     Bootloader在图片上半部,最先启动: 2.     Kernel在图片下半部,由bootloader引导启动: 3.CPU0执行流程在图片左半部,bootloader代码会进行判断,先行启动CPU0: 4.  Secondary CPUs在图片右半部,由CPU唤醒 具体启动流程如下: 1.     在bootloader启动时,会判断执行代码的是否为CPU0,如果不是,则执行wfe等待CPU0发出sev指令唤醒.如果是CP

多核处理器的由来

多核处理器的由来-在21世纪初,能量强power wall无法再想以前一样增加CPU的时钟频率(因为功耗太大)-所以使用了多个小处理器核core取代单个大处理器来提高性能-每个完整的处理器都可以独立的执行程序 P = fCv^2f = 时钟频率C = 电容v = 电压 电容C类似于总面积,所以只要总面积不变,能耗就不会变,然后按照摩尔定律指数型的下降,性能就会提升

C#多线程 为多核处理器而生的多线程方法Parallel.For和Parallel.ForEach

1.在.net4.0中,有了一个新的类库:任务并行库.它极大地简化了并行编程且内容丰富.这里仅介绍其中最简单的 Parallel.For循环和Parallel.ForEach循环.它们位于System.Threading.Tasks命名空间.它们是两个方法,这两个方法将迭代分别放在不同的处理器上并行处理,如果机器是多处理器或多核处理器,这样就会使性能大大提升. 2.例子用Parallel.For做计算,为数组赋值并打印,用Parallel.ForEach计算字符串数组每个元素的长度,运行结果:

多核处理器基础SMP&AMP&BMP

多核处理器也称片上多核处理器(Chip Multi-Processor,CMP). 1.多核处理器的流行 多核出现前,商业化处理器都致力于单核处理器的发展,其性能已经发挥到极致,仅仅提高单核芯片的速度会产生过多热量且无法带来相应性能改善,但CPU性能需求大于CPU发展速度.尽管增加流水线提高频率,但缓存增加和漏电流控制不力造成功率大幅增加,性能反而不如之前低频率的CPU.功率增加,散热问题也严重了,风冷已经不能解决问题了. 那么新技术必须出现-多核处理器.早在1996年就有第一款多核CPU原型H

Dekker算法在多核处理器下的失效

Dekker algorithm是一种著名的并发编程的算法,Dekker算法的核心部分是一组对称的代码来访问一组共享变量,使得两个线程不可能同时进入临界区(只要cpu内存模型是遵循顺序一致性的),从而达到线程同步的目的.以下是该算法的一种实现: static volatile int flag1 = 0; static volatile int flag2 = 0; static volatile int turn = 1; static volatile int gSharedCounter

操作系统与多核处理器

早在上世纪90年代末,就有众多业界人士呼吁用CMP(单芯片多处理器)技术来替代复杂性较高的单线程CPU.IBM.惠普.Sun等高端服务器厂商,更是相继推出了多核服务器CPU.不过,由于服务器价格高.应用面窄,并未引起大众广泛的注意.直到AMD抢先手推出64位处理器后,英特尔才想起利用"多核"这一武器进行"帝国反击战".2005年4月,英特尔仓促推出简单封装双核的奔腾D和奔腾四至尊版840.AMD在之后也发布了双核皓龙(Opteron)和速龙(Athlon) 64 X

intel DPDK在多核处理器平台上的安装与配置

一.DPDK系统需求: 1.需要的编译工具(ubuntu12.04 LTS均符合要求,可以不检查) GNU make; cmp, sed, grep, arch; gcc;libc库文件(glibc-devel fedora;libc ubuntu) kernel-devel(fedora);kernel-dev(ubuntu) python 2.6 or 2.7 2.运行条件(关键在于kernel的配置,其他均符合条件) kernel-version >=2.6.33 :查看命令 uname

使用多核处理器处理任务

1 //记录开始处理的时间 2 Stopwatch paddingTime = new Stopwatch(); 3 paddingTime.Start(); 4 JobHelper jobHelper = new JobHelper(); 5 int orderCount = jobHelper.GetJobCount(); 6 mutex=new Mutex(false,"CNBlogs.EmulationSystem"); 7 if (!mutex.WaitOne(0,false