并行编程——工程实践
1 工程上已经使用并行技术的例子
1.1 网络设备 :Intel DPDK
Intel 推出的基于x86平台的数据包处理方案,目前已经开源:http://dpdk.org/,网上最新版本是 1.3.1,主要内容包括:多核框架,基于大内存页的内存管理方案,无锁队列,用户态网卡驱动,这几个核心模块的底层实现用到了本文档前面提到的诸多概念,在前面概念的描述过程中,也引用了一些dpdk的代码。
1.2 网络游戏
虽然文章一开头已经提到,目前家用PC和手机核数最高已经超过10颗,但很多网络游戏的主引擎还是单进程的,比较确定的使用了多核系统的,有云风主导开发的一款游戏(据说采用多进程模型),另外,剑侠奇缘现在有选项:多核游戏模式,不知道是不是已经实现多核的游戏引擎。
1.3 手机开发
Ios4.0 : Grand Central Dispatch (GCD) Apple开发的一个多核编程的解决方法
2 系列文章参考
http://ifeve.com/ 并发编程网
http://www.pdl.cmu.edu/ 卡耐基梅陇大学并行实验室
http://www.parallellabs.com 并行实验室
http://en.wikipedia.org/wiki/Non-blocking_algorithm#Obstruction-freedom
http://www.cnblogs.com/lxconan/category/429872.html sql server 并行相关
http://preshing.com/20120930/weak-vs-strong-memory-models 内存模型
http://preshing.com/20120625/memory-ordering-at-compile-time 内存顺序一致性模型
http://preshing.com/20120515/memory-reordering-caught-in-the-act 内存顺序一致性模型
http://preshing.com/20120710/memory-barriers-are-like-source-control-operations 内存屏障
http://preshing.com/20111118/locks-arent-slow-lock-contention-is 锁