向intel_zhenyuwang 提问

wzzwt 2008-04-18 02:27:12
在CPU核数较少时,无锁编程的性能是否会优于分布式数据结构?和单核多任务编程的性能相比呢?
...全文
82 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
intel_zhenyuwang 2008-04-18
  • 打赏
  • 举报
回复
我想你指的“无锁编程”是对某些公共变量作原子操作,已达到消除冲突-wait-for-free.这种方法主要是为了线程“大锁”引起的线程间的同步,避免大的“阻塞”。缺点是含大量“atomic”的算法看上去比较复杂,不易维护。另外,多核情况下,会引起核与核之间的等待。一般也是少量使用。
在多核下,尽量使用分布式计算。关键是对任务精心划分,减少依赖性,增加并发性。子任务粒度过细,则会增加同步的频率;子任务粒度过粗,平行性就差。标准就是:同一时刻运行的线程数需接近CPU的内核数。如何测量呢?使用Intel(TM) Thread Profiler工具。

另外提供了一套很好的mutex 在 Thread Build Block, 参见- http://topic.csdn.net/u/20080328/10/6ba0957d-3c5d-4fda-ae86-2b92c2a0e62f.html

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧