4

在过去几年中,通过 OpenCL 和 CUDA 等系统向数据并行编程发生了重大转变,但即使在过去六个月内出版的书籍甚至从未提及数据并行编程的主题。

它并不适合所有问题,但似乎这里有一个没有得到解决的重大差距。

4

4 回答 4

2

首先,我要指出并发编程不一定是并行编程的同义词。并发编程是关于从松散耦合的任务构建应用程序。例如,对话窗口可以与作为单独任务实现的每个控件进行交互。另一方面,并​​行编程明确地是将某些计算任务的解决方案分散到多个执行硬件上,本质上总是出于某种性能原因(注意:当替代方案时,即使 RAM 太少也是性能原因正在交换。

所以,我不得不反问:你指的是什么书?它们是关于并发编程(我有一些,那里有很多有趣的理论),还是关于并行编程?

如果他们真的是关于并行编程,我会做一些观察:

  • CUDA 是一个快速移动的目标,自发布以来一直如此。今天写的一本关于它的书在它出版时已经过时了。
  • OpenCL 的标准是在不到一年前发布的。在过去 8 个月左右的时间里出现了稳定的实现。根本没有足够的时间来写一本书,更不用说修改和出版了。
  • OpenMP 至少包含在我使用过的一些并行编程教科书中。直到第 2 版(v3 刚刚发布),它基本上都是关于数据并行编程的。
于 2009-12-06T00:49:42.733 回答
1

我认为今天在学术上从事并行计算的人通常来自集群计算领域。OpenCL 和 CUDA 使用图形处理器,随着更先进的图形渲染算法的发展,这些处理器或多或少地在不经意间演变成了通用处理器。

然而,图形人员和高性能计算人员已经相互“发现”了一段时间,并且正在对使用 GPU 进行通用计算进行大量或研究。

于 2009-12-06T01:51:05.987 回答
0

“总是”有点强;那里有包括数据并行主题的资源(示例)。

于 2009-12-06T00:48:15.257 回答
0

Hillis 的经典著作《The Connection Machine》全是数据并行。这是我的最爱之一

于 2009-12-07T16:37:23.390 回答