Coupling Memory and Computation for Locality Management

Coupling Memory and Computation for Locality Management
复制标题

耦合内存和计算以进行位置管理

DOI:
10.4230/lipics.snapl.2015.1
复制
发表时间:
2015
期刊:
ACM Trans. Program. Lang. Syst.
影响因子:
--
通讯作者:
R. Raghunathan
R. Raghunathan
中科院分区:
--
文献类型:
--
作者:
Umut A. Acar;G. Blelloch;M. Fluet;Stefan K. Muller;R. Raghunathan

文献摘要

被引文献

相似文献

我们会自动阐明管理(数据)区域的需求,而不是将其留给程序员,尤其是在并行编程系统中。为此,我们提出了针对紧密耦合计算(包括线程调度程序)和内存管理器的技术,以便可以将数据和计算紧密地放置在硬件中。这种计算和内存管理的紧密耦合与孤立考虑每个人的普遍做法形成鲜明对比。例如,内存管理技术通常将计算抽象为未知的“突变器”,被视为“黑匣子”。作为方法的一个示例,在本文中,我们考虑了特定类别的并行计算,即嵌套并行计算。这样的计算动态创建了并行任务的嵌套。我们提出了一种将记忆整理为反映筑巢结构的堆的方法。更具体地说,如果任务在处理器上单独安排,我们的方法为任务创造了堆。这使我们可以将垃圾收集与计算结构以及在处理器上动态安排的方式进行杂交。这种耦合通过将其映射到硬件的局部性来利用程序中的局部性。例如,对于改进的地方,当堆内容可能在缓存中时,可以在其任务完成后立即收集堆。
We articulate the need for managing (data) locality automatically rather than leaving it to the programmer, especially in parallel programming systems. To this end, we propose techniques for coupling tightly the computation (including the thread scheduler) and the memory manager so that data and computation can be positioned closely in hardware. Such tight coupling of computation and memory management is in sharp contrast with the prevailing practice of considering each in isolation. For example, memory-management techniques usually abstract the computation as an unknown "mutator", which is treated as a "black box". As an example of the approach, in this paper we consider a specific class of parallel computations, nested-parallel computations. Such computations dynamically create a nesting of parallel tasks. We propose a method for organizing memory as a tree of heaps reflecting the structure of the nesting. More specifically, our approach creates a heap for a task if it is separately scheduled on a processor. This allows us to couple garbage collection with the structure of the computation and the way in which it is dynamically scheduled on the processors. This coupling enables taking advantage of locality in the program by mapping it to the locality of the hardware. For example for improved locality a heap can be garbage collected immediately after its task finishes when the heap contents is likely in cache.