并行程序设计导论
并行编程最容易被误解成“把程序丢到更多核心上就会更快”。真正开始写代码以后会发现,任务怎么拆、数据怎么分、通信怎么安排、同步怎么控制,往往比单个 kernel 或单条命令更重要。
这本书放在服务器白皮书旁边,是因为两者刚好对应超算学习的两面:一面是机器本身的硬件条件,一面是程序如何利用这些硬件条件。读完不一定马上能写出高性能程序,但会更容易看懂后面关于 MPI、OpenMP、GPU 并行和性能瓶颈的讨论。
并行编程最容易被误解成“把程序丢到更多核心上就会更快”。真正开始写代码以后会发现,任务怎么拆、数据怎么分、通信怎么安排、同步怎么控制,往往比单个 kernel 或单条命令更重要。
这本书放在服务器白皮书旁边,是因为两者刚好对应超算学习的两面:一面是机器本身的硬件条件,一面是程序如何利用这些硬件条件。读完不一定马上能写出高性能程序,但会更容易看懂后面关于 MPI、OpenMP、GPU 并行和性能瓶颈的讨论。