多核编程入门

感谢 陈耿佳 投递此文。

下载地址:多核编程入门

本文是多核编程的入门资料汇总,来源主要是国外国内的一些网站及自己使用过程中一些记录,写作目的主要是内部分享用(@NSFOCUS)。在多核使用过程中,得益于很多网络资源,所以也把自己整理的产品无关的东西共享出来,希望对多核感兴趣的同学可以入门用。

在intel E5 平台上搞了几个月多核编程,中间收集并学习了一些多核编程的知识,整理了一份PDF格式的 ,欢迎大家一起探讨。

目前遇到比较难的问题是,自己做Demo的时候使用了nbds.tar.gz里一种无锁哈希的实现,但是最后发现它是没有删除的,无锁的删除真的那么难吗?有谁手上有比较稳定而且高效(必须针对缓存优化过)而且完整(lookup,insert,delete)的无锁哈希表实现吗?希望大家就这个问题给出一些建议。

 

本书目录

一. 并发与并行的区别? ……………………………………………………………………………………………………………11.1 串行 ………………………………………………………………………………………………………………………………… 11.2 并发 ………………………………………………………………………………………………………………………………… 11.3 并行 ………………………………………………………………………………………………………………………………… 1

1.4 多核编程的难点 ………………………………………………………………………………………………………………. 2

二. 多核体系架构 ……………………………………………………………………………………………………………………… 3

2.1 多核处理器定义 ………………………………………………………………………………………………………………. 3

2.2 多核发展趋势 ………………………………………………………………………………………………………………….. 3

2.3 一个多核处理器架构例子 ………………………………………………………………………………………………… 5

2.4 LINUX 线程核绑定 ……………………………………………………………………………………………………………… 6

2.4.1 核亲和性绑定 …………………………………………………………………………………………………………… 6

2.4.2 资源控制 cgroup ………………………………………………………………………………………………………. 8

三. 内存模型 …………………………………………………………………………………………………………………………….. 8

3.1 操作原子性 ……………………………………………………………………………………………………………………… 9

3.1.1 原子性的3种保证机制 …………………………………………………………………………………………….. 9

3.1.2 硬件原子操作 …………………………………………………………………………………………………………… 9

3.1.3 总线锁-原子操作原语 ……………………………………………………………………………………………… 12

3.2 缓存一致性 ……………………………………………………………………………………………………………………. 16

3.2.1 定义 ……………………………………………………………………………………………………………………….. 16

3.2.2 CC协议 ……………………………………………………………………………………………………………………. 17

3.2.3 伪共享 ……………………………………………………………………………………………………………………. 21

3.3 顺序一致性 ……………………………………………………………………………………………………………………. 24

3.3.1 定义 ……………………………………………………………………………………………………………………….. 24

3.3.2 几种顺序约束 …………………………………………………………………………………………………………. 25

3.3.3 乱序执行和内存屏障 ………………………………………………………………………………………………. 28

四. 并发级别 …………………………………………………………………………………………………………………………… 31

4.1 WAIT-FREEDOM 无等待并发 ……………………………………………………………………………………………….. 32

4.2 LOCK-FREEDOM 无锁并发 ……………………………………………………………………………………………………. 32

4.3 OBSTRUCTION-FREEDOM 无阻塞并发 …………………………………………………………………………………….. 33

4.4 BLOCKING ALGOITHMS 阻塞并发 ……………………………………………………………………………………………. 33

五. 锁 …………………………………………………………………………………………………………………………………….. 34

5.1 信号量 …………………………………………………………………………………………………………………………… 34

5.2 自旋锁 …………………………………………………………………………………………………………………………… 35

5.3 读写锁 …………………………………………………………………………………………………………………………… 35

5.4 顺序锁 …………………………………………………………………………………………………………………………… 37

5.5 RCU ………………………………………………………………………………………………………………………………… 38

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/140920.html

(0)
上一篇 2021年9月5日
下一篇 2021年9月5日

相关推荐

发表回复

登录后才能评论