多核编程文章汇总

一、基础篇

1多核编程的几个难题及其应对策略

主要讲解多核编程时的串行化方面的难题及其应对策略。阅读全文

2多核编程中的锁竞争难题

锁竞争会导致加速系数随CPU核数增多而下降的现象。核数增加到128时,加速系数只有0.78,还不如在单核CPU上运行的速度。 S(p) = (t +1)/ (p + t/p) = p*(t+1) / (p*p+t) (锁竞争下的加速系数公式) 。阅读全文

3多核编程中的负载平衡难题

负载平衡的难度与CPU的核数成正比,CPU核数越多,负载划分的难度就越大。 阅读全文

二、OpenMP专题

1OpenMP并行程序设计(一)

介绍OpenMP程序在并行计算时的效率,在双核CPU上效率增加了整整一倍。 阅读全

2OpenMP并行程序设计(二)

1fork/join并行执行模式的概念 2OpenMP指令和库函数介绍 3parallel 指令的用法 4for指令的使用方法 5 sectionssection指令的用法。阅读全文

3OpenMP中的数据处理子句

本文主要介绍了OpenMP中的privatefirstprivatelastprivatethreadprivatereductioncopyincopyprivate等数据处理子句的用法。 阅读全文

4OpenMP中的任务调度

本文主要介绍了OpenMP中任务调度子句schedule的使用方法。阅读全文

5OpenMP创建线程中的锁及原子操作性能比较

主要比较了原子操作,Windows CriticalSection OpenMP库带的锁在单任务运行情况下和多任务运行情况下的性能情况,在多核CPU上,多任务的锁竞争花费的时间是单任务时的锁运行花费时间的18倍。锁竞争带来的效率下降完全出乎意料之外,由此也可见多核编程和单核多任务编程是有很大区别的。 阅读全文

6OpenMP程序设计的两个小技巧

讲述了如何动态设置线程数量以适应硬件和软件的扩展性,如何将嵌套循环并行化的技巧。 阅读全文

三、性能篇

1双核CPU上的快速排序效率

在双核CPU上运行后,打印出花费的时间为 234 ms , 单任务版的快速排序函数约需406ms左右,并行运行效率为:406/2×234 = 86.7% 左右。运行速度快了172ms阅读全文

2多核系统中三种典型锁竞争的加速比分析

本文主要讨论了固定式锁竞争、随机锁竞争、分布式锁竞争三种典型锁竞争情况下的加速比,并分析了任务粒度因子和锁粒度因子对加速比的影响。结论: 分布式锁竞争加速比随CPU核数成正比,可以达到和单核多任务时相当的性能,是多核编程的发展方向。 阅读全文

3无锁编程与分布式编程那个更适合多核CPU

本文重点比较了无锁编程和分布式锁竞争的性能,无锁(原子操作)实际上是一种细粒度锁。然后又从实现的功能,程序员掌握难易程度,现有软件的移植等方面进行了比较,得出结论:无锁编程远不如分布式编程。分布式编程更适合多核CPU系统。 阅读全文

四、多核编程模式专题

1多核编程中的线程分组竞争模式

讨论了使用任务分组锁竞争方式来消除锁竞争导致的CPU饥饿现象,队列池就是任务分组竞争的一个非常好的实践任务分组竞争模式相对于无锁编程具有更好的优势。 阅读全文

2多核编程中的线程随机竞争模式的概率分析

本文主要分析了多个任务在随机分布式锁竞争的情况下,有不少于CPU核数个数的任务在运行的概率。然后将随机竞争和无锁编程的性能进行了理论上的比较。阅读全文

3多核编程中的条件同步模式

本文讲解了一种减少锁使用的方法,将每次都加锁改为满足一定条件时才加锁,非常适合具有状态机性质的场合使用。 阅读全文

五、多核数据结构与算法专题

1多核分布式队列的实现:偷与自私的运用

本文讲述了多核系统中分布式队列的实现方法,所谓分布式队列指的是每个线程除了可以访问线程池外还自动拥有一个本地队列。实现分布式队列的基本方法就是自私阅读全文

2多核查找-顺序查找也疯狂

用数组进行查找,由于其插入和删除需要按顺序进行,需要移动较多的数据,对于大数据量的查找是无法使用的。然而,在多核时代,一切都改变了,大数据量的查找结构也可以用数组来实现。并且用数组实现的大数据量查找结构有着比其他查找结构更明显的优势:效率高、内存占用少、并且容易避免伪共享问题。 阅读全文

3多核中的并行前缀和计算

前缀和计算在并行计算中很有用,因为在处理负载平衡问题时,经常需要将若干段数据重新平分,而计算前缀和通常是一种有效的将数据平分的方法。 阅读全文

六、多核编程思想专题

1多核新观念-象使用内存一样使用CPU

象使用内存一样使用CPU阅读全文

2老子”是伟大的多核计算科学家

本文主要论述道家的小国寡民无为”“大道自然等思想与多核计算中使用的思想的异曲同工之处,给出了道家思想在多核计算中的实践实例分析。大道自然,贪心自私偷窃这些大自然赋给人类的自然力量,在多核计算中得到了广泛的使用。 阅读全文

3多核编程的四层境界

从先天方法策略、目标需求评价、本质根源保障、算法实现执行四个层面阐述多核计算的含义    阅读全文

4高房价与多核分布式计算

本文主要从多核计算的角度来论述高房价问题及其对社会的影响,并给出了高房价问题的最终解决措施。 阅读全文

5道家·老子的算法思想分析

将道家老子的思想与软件中的思想进行对比分析,得出结论,道家追求稳定可靠性。所以历代在拨乱反正时期,用的都是道家思想。历史上最典型的三个朝代汉、唐、明为例,汉朝时张良等人都是好黄老之术(也就是道家思想),唐朝的宰相魏征也是道家人物,明朝的刘伯温也是属于道家人物。 阅读全文

6屈原·渔父的算法追求

屈原与渔父两种不同的思想,相当于软件中的两种不同算法思想。世人皆浊,众人皆醉可以理解为软件运行的场景。 阅读全文

你可能感兴趣的:(设计模式,多线程,数据结构,编程,算法)