1

我正在开发一个对图的每个顶点进行计算的应用程序。这里的主要问题是延迟,因为每次计算都相当小。例如,每个计算可能需要 10 毫秒才能自行执行,因此 PGBL 不应给进程增加任何明显的延迟。

我可以编写自己的准系统图形例程来完成这项任务。当然,PBGL 有更多的特性会很不错。例如,当延迟不是问题时,我什至可能将一些计算卸载到“云”。

所以基本上,在 cpu 或多核 cpu 上跨向量计算的开销是多少?另外,将来是否有可能将顶点计算卸载到 GPU 上?

我从未使用过 PGBL,但在 boost 库中遇到过它,它引起了我的注意,它可能对我的应用程序来说几乎是完美的,除了潜在的延迟问题。

例如,一个非常简单的树被分成 n 个分支,每个分支的计算在单独的核心上运行,与使用 PBGL 相比,性能差异是什么?(对于小的计算时间,显然计算越大,差异越小)

4

1 回答 1

1

Parallel BGL 主要是一个分布式内存库。有一个研究版本也包含了共享内存并行性。从长远来看,我们可能会添加加速器支持,假设加速器内存模型曾经支持内核中的原子、重叠输出写入集以及支持有助于其他类型并行化的图形算法所需的其他复杂行为。主要目标是找到一个单一的并行抽象,允许使用它表达的图形算法使用各种硬件并行化。

无论如何,听起来您正在寻找一个主要是共享内存的并行图形库,而 Parallel BGL 可能不适合。目前,您必须运行多个 MPI 等级,这绝对不能满足您的“低延迟”约束。多年来,人们对 BGL 的共享内存和/或 SIMD 版本产生了一些兴趣,但没有任何结果。随着在 Boost 中添加更多共享内存并行库(Lockfree、各种 SIMD 实现和容器等),实现某种共享内存并行 BGL 所需的工作量变得非常低,所以也许这几天会发生.

于 2013-03-09T16:11:27.803 回答