本书主要介绍适应于多核(或多处理器)计算机系统的算法和程序,共分为五个部分进行讲解。
第1部分介绍多核编程的基础知识,包括多核编程常见问题、锁竞争、加速比、负载均衡等基本概念,多线程退出算法、读写锁、旋转锁、原子操作等多线程编程基础知识,基于OpenMP标准的并行程序设计基础等;
第2部分介绍基础的数据结构与算法,包括数组、链表、哈希表、二叉树、AVL树、复合二叉树等基本数据结构,在链表那章中还讲解了多线程并行遍历的基本方法。
第3部分介绍多核并行计算方面的基础知识,并行编程包括常用的编程模式如分治模式、流水线模式、任务图分解与调度模式、动态任务调度模式等,并行搜索包括顺序搜索及终止检测算法,并行*短路径搜索等,并行排序包括并行快速排序、并行归并排序、并行基数排序等,并行数值计算包括并行矩阵乘法、并行前缀和计算等方面的内容。本部分介绍的各种并行算法和程序中,**介绍如何解决多核系统中的计算随CPU核数的扩展性,CPU Cache伪共享方面的问题。
第4部分介绍多核共享资源计算方面的内容,也是本书中*重要的内容,讲解了分布式计算设计模式如线程分组竞争模式、条件同步模式、批量私有化