• 并行程序设计导论
  • 并行程序设计导论
21年品牌 40万+商家 超1.5亿件商品

并行程序设计导论

正版保障 假一赔十 可开发票

77.3 6.0折 129 全新

库存65件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)彼得·S.帕切科(Peter S. Pacheco),(美)马修·马伦塞克(Matthew Malensek)著

出版社机械工业出版社

ISBN9787111743194

出版时间2024-05

装帧平装

开本16开

定价129元

货号16134338

上书时间2024-09-17

灵感书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
目    录<br />An Introduction to Parallel Programming, Second Edition<br />译者序<br />前言<br />第1章  为什么需要并行计算1<br />1.1  为什么需要不断提高性能1<br />1.2  为什么需要建立并行系统2<br />1.3  为什么需要编写并行程序2<br />1.4  如何编写并行程序5<br />1.5  我们将做什么6<br />1.6  并发、并行和分布式7<br />1.7  本书其余部分8<br />1.8  一点警告8<br />1.9  排版惯例9<br />1.10  小结9<br />1.11  练习10<br />第2章  并行硬件与并行软件12<br />2.1  背景知识12<br />2.1.1  冯·诺依曼体系结构12<br />2.1.2  进程、多任务和线程13<br />2.2  冯·诺依曼模型的改进14<br />2.2.1  缓存基础14<br />2.2.2  缓存映射16<br />2.2.3  缓存和程序:示例17<br />2.2.4  虚拟内存18<br />2.2.5  指令级并行19<br />2.2.6  硬件多线程21<br />2.3  并行硬件22<br />2.3.1  并行计算机的分类22<br />2.3.2  SIMD系统22<br />2.3.3  MIMD系统24<br />2.3.4  互连网络26<br />2.3.5  高速缓存一致性30<br />2.3.6  共享内存与分布式内存32<br />2.4  并行软件33<br />2.4.1  注意事项33<br />2.4.2  协调进程/线程33<br />2.4.3  共享内存34<br />2.4.4  分布式内存37<br />2.4.5  GPU编程40<br />2.4.6  混合系统编程40<br />2.5  输入和输出41<br />2.5.1  MIMD系统41<br />2.5.2  GPU41<br />2.6  性能42<br />2.6.1  在MIMD系统中的加速比和<br />效率42<br />2.6.2  阿姆达定律44<br />2.6.3  MIMD系统的可扩展性45<br />2.6.4  MIMD程序的计时46<br />2.6.5  GPU性能48<br />2.7  并行程序设计49<br />2.7.1  示例49<br />2.8  编写和运行并行程序53<br />2.9  假设53<br />2.10  小结54<br />2.10.1  串行系统54<br />2.10.2  并行硬件55<br />2.10.3  并行软件56<br />2.10.4  输入和输出57<br />2.10.5  性能57<br />2.10.6  并行程序设计58<br />2.10.7  假设58<br />2.11  练习58<br />第3章  基于MPI的分布式<br />内存编程62<br />3.1  入门62<br />3.1.1  编译和执行63<br />3.1.2  MPI程序64<br />3.1.3  MPI_Init和<br />MPI_Finalize64<br />3.1.4  通信域、MPI_Comm_size和MPI_Comm_rank65<br />3.1.5  SPMD程序66<br />3.1.6  通信66<br />3.1.7  MPI_Send66<br />3.1.8  MPI_Recv67<br />3.1.9  消息匹配68<br />3.1.10  status_p参数69<br />3.1.11  MPI_Send和MPI_Recv的<br />语义69<br />3.1.12  一些潜在的陷阱70<br />3.2  MPI中的梯形法则70<br />3.2.1  梯形法则70<br />3.2.2  梯形法则的并行化71<br />3.3  处理I/O74<br />3.3.1  输出74<br />3.3.2  输入75<br />3.4  集合通信76<br />3.4.1  树形结构的通信76<br />3.4.2  MPI_Reduce77<br />3.4.3  集合通信与点对点通信78<br />3.4.4  MPI_Allreduce79<br />3.4.5  广播80<br />3.4.6  数据分布82<br />3.4.7  分散83<br />3.4.8  收集84<br />3.4.9  综合实例85<br />3.5  MPI派生的数据类型88<br />3.6  MPI程序的性能评估91<br />3.6.1  计时91<br />3.6.2  结果93<br />3.6.3  加速比和效率95<br />3.6.4  可扩展性95<br />3.7  一种并行排序算法96<br />3.7.1  一些简单的串行排序算法96<br />3.7.2  并行奇偶移项排序98<br />3.7.3  MPI程序中的安全性100<br />3.7.4  关于并行奇偶排序的一些<br />补充细节102<br />3.8  小结103<br />3.9  练习106<br />3.10  编程作业112<br />第4章  Pthreads共享内存编程114<br />4.1  进程、线程和Pthreads114<br />4.2  Hello, world115<br />4.2.1  执行116<br />4.2.2  预备117<br />4.2.3  启动线程117<br />4.2.4  运行线程119<br />4.2.5  停止线程120<br />4.2.6  错误检查120<br />4.2.7  启动线程的其他方法120<br />4.3  矩阵-向量乘法121<br />4.4  临界区123<br />4.5  忙等待126<br />4.6  互斥锁128<br />4.7  生产者-消费者同步和信号量131<br />4.8  栅栏和条件变量135<br />4.8.1  忙等待和互斥锁135<br />4.8.2  信号量136<br />4.8.3  条件变量137<br />4.8.4  Pthreads栅栏139<br />4.9  读写锁139<br />4.9.1  排序的链表函数140<br />4.9.2  多线程链表142<br />4.9.3  Pthreads的读写锁144<br />4.9.4  各种实现方案的性能145<br />4.9.5  实现读写锁146<br />4.10  缓存、缓存一致性和伪共享147<br />4.11  线程安全150<br />4.11.1  不正确的程序可以产生<br />正确的输出153<br />4.12  小结153<br />4.13  练习154<br />4.14  编程作业159<br />第5章  OpenMP共享内存编程161<br />5.1  入门162<br />5.1.1  编译和运行OpenMP程序163<br />5.1.2  程序163<br />5.1.3  错误检查165<br />5.2  梯形法则166<br />5.2.1  第一个OpenMP版本166<br />5.3  变量的作用域170<br />5.4  归约子句170<br />5.5  parallel指令173<br />5.5.1  注意事项174<br />5.5.2  数据依赖性175<br />5.5.3  寻找循环迭代相关176<br />5.5.4  估算π176<br />5.5.5  关于作用域的更多内容178<br />5.6  关于OpenMP中的循环的更多<br />内容:排序179<br />5.6.1  冒泡排序179<br />5.6.2  奇偶移项排序180<br />5.7  循环的调度182<br />5.7.1  schedule子句183<br />5.7.2  static调度类型185<br />5.7.3  dynamic和guided调度<br />类型185<br />5.7.4  runtime调度类型186<br />5.7.5  哪种调度187<br />5.8  生产者和消费者188<br />5.8.1  队列188<br />5.8.2  消息传递188<br />5.8.3  发送消息189<br />5.8.4  接收消息189<br />5.8.5  终止检测190<br />5.8.6  开始190<br />5.8.7  atomic指令191<br />5.8.8  临界区和锁191<br />5.8.9  在消息传递程序中使用锁193<br />5.8.10  critical指令、atomic<br />指令或锁194<br />5.8.11  注意事项194<br />5.9  缓存、缓存一致性和伪共享195<br />5.10  任务化199<br />5.11  线程安全202<br />5.11.1  不正确的程序可以产生<br />正确的输出204<br />5.12  小结204<br />5.13  练习208<br />5.14  编程作业211<br />第6章  用CUDA进行GPU编程215<br />6.1  GPU和GPGPU215<br />6.2  GPU架构215<br />6.3  异构计算217<br />6.4  CUDA hello217<br />6.4.1  源代码218<br />6.4.2  编译与运行程序219<br />6.5  深入了解219<br />6.6  线程、线程块和线程网格220<br />6.7  NVIDIA计算能力和设备架构223<br />6.8  向量加法223<br />6.8.1  核函数224<br />6.8.2  Get_args函数225<br />6.8.3  Allocate_vectors函数和<br />托管内存226<br />6.8.4  main函数调用的其他函数227<br />6.8.5  显式内存传输229<br />6.9  从CUDA核函数返回结果231<br />6.10  CUDA梯形法则I233<br />6.10.1  梯形法则233<br />6.10.2  一种CUDA实现234<br />6.10.3  初始化、返回值和最后<br />更新235<br />6.10.4  使用正确的线程236<br />6.10.5  更新返回值和atomicAdd<br />函数236<br />6.10.6  CUDA梯形法则的性能237<br />6.11  CUDA梯形法则II:提升性能238<br />6.11.1  树形通信238<br />6.11.2  局部变量、寄存器、共享和<br />全局内存239<br />6.11.3  线程束和线程束洗牌240<br />6.11.4  使用线程束洗牌实现树形<br />全局求和241<br />6.11.5  共享内存和线程束洗牌的<br />替代方案242<br />6.12  用warpSize个线程块实现<br />梯形法则243<br />6.12.1  主机代码244<br />6.12.2  使用线程束洗牌的核函数244<br />6.12.3  使用共享内存的核函数244<br />6.12.4  性能245<br />6.13  CUDA梯形法则III:使用具有<br />多个线程束的线程块245<br />6.13.1  __syncthreads函数246<br />6.13.2  关于共享内存的更多内容247<br />6.13.3  使用共享内存的线程束<br />求和247<br />6.13.4  共享内存库248<br />6.13.5  收尾工作249<br />6.13.6  性能251<br />6.14  双调排序251<br />6.14.1  串行双调排序251<br />6.14.2  蝶式交换和二进制表示254<br />6.14.3  并行双调排序I256<br />6.14.4  并行双调排序II258<br />6.14.5  C

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP