题名:多核计算与程序设计
作者:周伟明著
出版年:2009
ISBN: 978-7-5609-5096-9
分类号: TP311.1
中图分类: 程序设计
定价: 88.00元
页数: 656 页
出版社: 华中科技大学

《多核计算与程序设计》主要介绍适应于多核(或多处理器)计算机系统的算法和程序,共分为五个部分进行讲解。第1部分介绍多核编程的基础知识,包括多核编程常见问题、锁竞争、加速比、负载均衡等基本概念,多线程退出算法、读写锁、旋转锁、原子操作等多线程编程基础知识,基于OpenMP标准的并行程序设计基础等;<br />第2部分介绍基础的数据结构与算法,包括数组、链表、哈希表、二叉树、AVL树、复合二叉树等基本数据结构,在链表那章中还讲解了多线程并行遍历的基本方法。<br />第3部分介绍多核并行计算方面的基础知识,并行编程包括常用的编程模式如分治模式、流水线模式、任务图分解与调度模式、动态任务调度模式等,并行搜索包括顺序搜索及终止检测算法,并行最短路径搜索等,并行排序包括并行快速排序、并行归并排序、并行基数排序等,并行数值计算包括并行矩阵乘法、并行前缀和计算等方面的内容。本部分介绍的各种并行算法和程序中,重点介绍如何解决多核系统中的计算随CPU核数的扩展性,CPU Cache伪共享方面的问题。<br />第4部分介绍多核共享资源计算方面的内容,也是《多核计算与程序设计》中最重要的内容,讲解了分布式计算设计模式如线程分组竞争模式、条件同步模式、批量私有化处理模式、数据本地化模式等。这部分中讲解了《多核计算与程序设计》中几个最重要的程序:分布式队列中实现了自动让每个线程带有一个本地队列、分布式查找中介绍了分段锁的哈希表、动态负载平衡的分布式查找等,分布式内存管理则介绍了适应多核的内存管理方案,尤其是基于抢夺式的分布式内存管理算法,在分配和释放共享内存时也几乎不需要使用锁,性能优异。<br />第5部分介绍任务分解与调度方面的知识,这也是《多核计算与程序设计》中最重要的内容,包括任务图分解与调度的实现方法,动态任务分解与调度的实现方法等。其中还介绍了使用动态嵌套任务调度进行并行计算的方法,给出了用动态嵌套任务调度实现ParallelForo、并行快速排序、并行归并的实例。<br />最后一章中还介绍了Lock-Free编程(使用CAS原子操作进行编程)的基础知识,如ABA问题,内存删除问题等,并给出了一个Lock-Free的队列的实现实例。

周伟明者,熙熙攘攘中一过客也。
幼时学业平平,懵懂不通世事,贪玩而不求上进者是也。及中学后,心稍静,渐感数理之趣,学业有进也。性直,受前辈之影响,好公平、正义。喜青莲居士之豪爽,亦兼怀少陵野老之忧,致好友者众,亦未尝为此开罪于人也。
及学业竟,尝供职于某大型国企,彼时仍不知世事,终日游戏人生。同届之友,茶余饭后,常聚某室,或高谈阔论,或痛批时事;又或同游某山,同玩某游戏,同学某技。人生之快事,不亦乐乎!
俗云:“天下无不散之筵席”。游戏人生,非长久之计。寻思技已入门,乃欲进熙攘之门,建功立业去也。遂入深圳,在深十余年间,历经私企,外企,国企,后辗转于某大型私企。功业之梦,终未达成,熙攘之门,也未挤进,何也,需交入场券也。
有南国智者,遇于南山之巅,语吾曰:众皆有入场券,尔何独无?何不习众人,攫其一,混入熙攘之门,以达尔愿。
答曰:入场券非免费可取,需一物进行交换也。
智者问:尔无交换之物乎?
答:交换之物,人人皆有也。
智者:尔既有交换之物,何不换一入场券,奈何独自徘徊于门外?
答:交换之物,珍贵非常,不可轻易失去。
智者:众人皆有之物,又何贵之有?尔何故作冥顽不化状,何不与世逐流去也。
答:非关冥顽不化、与世逐流之事耳,实因此物非寻常物也。
智者:何物贵至此矣?
答:公平、正义之心也。
智者默然而退。
既无入场券,乃做浮云客,熙门庭前过,珠玉不沾衣。十余年中,所见四面皆壁也,稍不留神,即撞之矣。屡见投机取巧者,欲逾壁而入,奈壁高,往往摔至头破血流矣!又或见持入场券者,既入熙攘之门,然门中有门,门深不知几许也,遂出,自此不复进焉!
熙门难进,人生艰辛,阅尽熙客无数,乃思何处是乐土。自丙戌以来,遂定决心,免世务之烦,专于己之所兴。虽有五斗米之忧,然于钻研中偶有所悟,亦自得其乐矣。
至《多核计算与程序设计》一书写成,反思优化之道,负载均衡乃全局效率之重也。倘失公平正义,何来负载均衡?算法之本、全局效率之源,公平正义是也。
世人见吾,皆谓吾之思想偏激也,实公正之心溢于言表,未入熙门之故也。同道者见吾,往往一见如故,倾情畅谈,置世事于身外矣!