社区
英特尔边缘计算技术
帖子详情
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?
goding
2008-05-14 09:30:10
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?有多核cpu下编写多线程需要要注意的问题有那些?(c#方面)
...全文
676
4
打赏
收藏
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?
多核cpu下的多线程和单核cpu下的多线程在编程中有那些区别?有多核cpu下编写多线程需要要注意的问题有那些?(c#方面)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tt_timon
2008-05-29
打赏
举报
回复
因为单核处理器只能将多个指令流交错执行,并不能真正将它们同时执行,所以,单核 结构上的多线程应用程序的性能就受到了限制。在单核平台上,多线程一般都被当做是一种能够实现延迟隐藏的有效编程手段。
单 核平台上的这种性能瓶颈在多核体系结构中就不存在了。在多核平台上,各线程根本不需要为了得到某种资源而挂起等待,因为各线程都是在相互独立的执行核上并 行运行的。例如,假设有两个线程都要执行移位操作,那么,在单核平台上,两个线程需要竞争唯一的移位单元,因而必须顺序执行,而对于双核平台而言,因为存 在两个移位单元,所以两个线程能够并行执行而无须竞争。
多 核平台为开发人员提供了一种优化应用程序的渠道,那就是通过仔细分配加载到各线程(或者各处理器核)上的工作负载(也就是实现各线程的负载均衡)就能够得 到性能上的提升。并且,开发人员也可以对应用程序代码加以优化,使其能够更加充分地使用多个处理器资源,进而达到提升应用程序性能的目的。
在面向多核平台设计多线程应用程序的时候,开发人员必须采取与面向单核平台时不同的设计思想。在单核平台上,为了简化多线程应用程序的编写和调试,开发人 员可能会作一些假设。但是这些假设可能不适用于多核平台。对于这两种平台,设计思想的不同之处主要体现在存储缓存(memory caching)和线程优先级(thread priority)两个方面。
在 存储缓存方面,多核平台上的每个处理器核都拥有自己的cache。在某个时间点上,一个处理器核上的cache与另一个处理器核上的cache可能会出 现不同步的现象。下面给出一个例子来解释可能出现的这种cache不同步问题。假设有两个线程分别运行在双核处理器的两个执行核上,线程1在执行核1上运 行,线程2在执行核2上运行,而两个线程分别对邻近的存储器单元进行读写操作。由于cache存储器是基于局部性原理来工作的,故不同的数据可能存放在 cache的同一行中。因此,即使某个线程所需的位于某个cache块中的数据没有被重写过,存储系统还是可能会将该cache块标记为无效。这个现象就 是众所周知的伪共享(false sharing)问题。但是在单核平台上,因为只有唯一的cache供各线程共享,所以就不存在cache同步问题。
在 单核与多核平台上采用相同的线程优先级策略也会导致不同的程序行为。例如,假设一个应用程序有两个进程,这两个进程的优先级不同。在进行性能优化的时候, 开发人员会假定优先级较高的线程可以一直享用执行资源,而不会受到优先级较低线程的干扰。这在单核平台上是正确的,因为操作系统的调度程序不会为优先级较 低的线程分配CPU资源,而对于多核平台而言,因为调度程序是在不同的执行核上调度这两个线程,所以两个线程是同时执行的,也就是说在这种条件下,线程的 优先级不起作用。如果开发人员仍然遵循优先级较高的线程不会受到优先级较低线程的干扰的思想对代码进行优化,这样的代码在多核和多处理器系统上运行就会非 常不稳定。
appleshao
2008-05-29
打赏
举报
回复
这问题我也想问 UP上去。
goding
2008-05-24
打赏
举报
回复
up
sageking2
2008-05-24
打赏
举报
回复
没什么区别.
多核
CPU
和
单核
的
区别
~
昨天有同学问我
多核
cpu
和
单核
的
区别
大不大,今天简单写一篇回复下吧。大家有其他问题也可以文末给我留言,我会尽量抽时间写文回复。首先回顾下基本概念,
cpu
,就是中央处理器,包括运算器和控制器...
浅谈
多核
CPU
、
多线程
、多进程
1.
CPU
发展趋势 核心数目依旧会越来越多,依据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的桌面PC有望在2017年末2018年初达到24核心(或者16核32线程),我们如何来面对这突如其来的核心数目的增加?
编程
也要与时俱进。笔者斗胆预测,
CPU
各个核心之间的片内总线将会采用4路组相连:),因为全相连太过复杂,单总线又不够给力。而且应该是非对称
多核
处理器,可能其中会混杂几个DSP处理器或流处理器。 2.
多线程
与并行计算的
区别
(1)
多线程
的作用不只是用作并行计算,他还有很多很有益的作.
多核
CPU
和
单核
的
区别
?
昨天有同学问我
多核
cpu
和
单核
的
区别
大不大,今天简单写一篇回复下吧。大家有其他问题也可以文末给我留言,我会尽量抽时间写文回复。首先回顾下基本概念,
cpu
就是中央处理器,包括运算器和控制器。...
多核
CPU
硬件架构介绍
转自:http://book.51cto.com/art/201004/197196.htm SISD、MIMD、SIMD、MISD计算机的体系结构 1.计算平台介绍 Flynn于1972年提出了计算平台的Flynn分类法,主要根据指令流和数据流来分类,共分为四种类型的计算平台,如下图所示: 单指令流单数据流机器(SISD) SISD机器是一种传统的串行计算机,它的硬件不支持...
c++
多线程
什么是并发 并发在生活中随处可见,边走路边说话,边听歌边写代码。计算机术语中的"并发",指的是在单个系统里同时执行多个独立的活动,而不是顺序的一个接一个的执行。对于
单核
CPU
来说,在某个时刻只可能处理一个任务,但它却不是完全执行完一个任务再执行一个下一任务,而是一直在任务间切换,每个任务完成一点就去执行下一个任务,看起来就像任务在并行发生,虽然不是严格的同时执行多个任务,但是我们仍然称之为并发(...
英特尔边缘计算技术
568
社区成员
7,024
社区内容
发帖
与我相关
我的任务
英特尔边缘计算技术
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
复制链接
扫一扫
分享
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章