arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1709.09491cs.DCcs.AR
收藏

灵活支持快速并行可交换更新

Flexible Support for Fast Parallel Commutative Updates

Vignesh Balaji, Dhruva Tirumala, Brandon Lucia

摘要:

私有化数据是增加共享内存多线程程序中并行性的一种有用策略。独立核可以独立地计算共享数据的副本,在计算结束时组合它们的结果。然而,私有化的常规方法依赖于针对重复状态的显式静态或动态存储器分配,从而增加存储器占用和对高速缓存资源的争用,特别是在共享高速缓存中。在这项工作中,我们描述了CCache,按需私有化的交换操作操作的数据系统。CCache获得了私有化的好处,而不会增加内存占用或缓存占用。CCache中的每个核心动态地私有化可交换操作的数据,对副本进行操作。核心会定期或在计算结束时将其值与内存中的值合并,当所有核心合并后,内存中的副本将包含最新值。我们描述了一个低复杂度的架构实现CCache,扩展了传统的多核,以支持按需私有化,而不使用额外的内存私有副本。我们在几个高价值的应用程序上评估了CCache,包括随机访问键值存储,聚类,广度优先搜索和图排名,显示加速高达3.2倍。

英文摘要:

Privatizing data is a useful strategy for increasing parallelism in a shared memory multithreaded program. Independent cores can compute independently on duplicates of shared data, combining their results at the end of their computations. Conventional approaches to privatization, however, rely on explicit static or dynamic memory allocation for duplicated state, increasing memory footprint and contention for cache resources, especially in shared caches. In this work, we describe CCache, a system for on-demand privatization of data manipulated by commutative operations. CCache garners the benefits of privatization, without the increase in memory footprint or cache occupancy. Each core in CCache dynamically privatizes commutatively manipulated data, operating on a copy. Periodically or at the end of its computation, the core merges its value with the value resident in memory, and when all cores have merged, the in-memory copy contains the up-to-date value. We describe a low-complexity architectural implementation of CCache that extends a conventional multicore to support on-demand privatization without using additional memory for private copies. We evaluate CCache on several high-value applications, including random access key-value store, clustering, breadth first search and graph ranking, showing speedups upto 3.2X.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑