为什么图形处理很难分布?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (8)

最近我读了论文Scalability!但是以什么代价?。在本文中,作者以图形计算为例,测量它们在单个线程机器上的性能,而不是某些分布式框架上的性能。

在第2部分中,作者指出图形计算代表了最简单的数据并行计算类之一,而不是简单的并行化。谁能告诉我图形计算并行化的主要障碍是什么?

提问于
用户回答回答于

主要障碍是图操作的交换和关联属性。这两个属性确定算法是否可以简单地并行化。在您链接的页面中,作者说明了以下内容:

更新是可交换和关联的,因此允许可扩展的实现[7]。

实际上[7]引用的论文是博士论文,它解释得很好:

本论文的核心是这种可扩展的交换规则:在几种操作通勤的任何情况下 - 意味着无法使用接口区分其执行顺序 - 它们具有在这些操作期间无冲突的实现 - 意味着没有核心写入由另一个核心读取或写入的缓存行。根据经验,无冲突的操作规模,因此这种实施可扩展。或者,更简洁地说,每当接口操作通勤时,它们都可以以可扩展的方式实现。这条规则具有直观意义:当操作通勤时,其结果(返回值和对系统状态的影响)与顺序无关。因此,交换操作之间的通信是不必要的,并且消除它可以产生无冲突的实现。在现代共享内存多核上,

例如,笛卡尔图产品是交换和关联操作,可以按任何顺序计算得到的顶点,在这种情况下使并行化变得容易。但是,大多数图形操作缺少这些属性中的一个或两个。

扫码关注云+社区

领取腾讯云代金券