在过去几年中,通过 OpenCL 和 CUDA 等系统向数据并行编程发生了重大转变,但即使在过去六个月内出版的书籍甚至从未提及数据并行编程的主题。
它并不适合所有问题,但似乎这里有一个没有得到解决的重大差距。
在过去几年中,通过 OpenCL 和 CUDA 等系统向数据并行编程发生了重大转变,但即使在过去六个月内出版的书籍甚至从未提及数据并行编程的主题。
它并不适合所有问题,但似乎这里有一个没有得到解决的重大差距。
首先,我要指出并发编程不一定是并行编程的同义词。并发编程是关于从松散耦合的任务构建应用程序。例如,对话窗口可以与作为单独任务实现的每个控件进行交互。另一方面,并行编程明确地是将某些计算任务的解决方案分散到多个执行硬件上,本质上总是出于某种性能原因(注意:当替代方案时,即使 RAM 太少也是性能原因正在交换。
所以,我不得不反问:你指的是什么书?它们是关于并发编程(我有一些,那里有很多有趣的理论),还是关于并行编程?
如果他们真的是关于并行编程,我会做一些观察:
我认为今天在学术上从事并行计算的人通常来自集群计算领域。OpenCL 和 CUDA 使用图形处理器,随着更先进的图形渲染算法的发展,这些处理器或多或少地在不经意间演变成了通用处理器。
然而,图形人员和高性能计算人员已经相互“发现”了一段时间,并且正在对使用 GPU 进行通用计算进行大量或研究。
“总是”有点强;那里有包括数据并行主题的资源(示例)。
Hillis 的经典著作《The Connection Machine》全是数据并行。这是我的最爱之一