异构无竞争内存模型学习

在介绍异构无竞争内存模型前,我们需要说明说明是异构系统,以此方能目标引入异构无竞争内存模型的必要性。

异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。而计算机体系结构的异构则是指,各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。

异构系统(例如,集成CPU和GPU)现在支持所有组件的统一的共享存储器地址空间。因为异构系统中的全局通信的延迟可能非常高,所以异构系统(与同类CPU系统不同)提供仅保证线程子集之间的排序的同步机制,我们称之为范围。不幸的是,这些作用域的后果和语义还没有被很好地理解。没有一个正式和可接近的模型来理解这些操作的行为,所以,现在的异构系统在运行时,我们总冒着一系列可移植性和性能问题的风险。
为了解决这个方法,一个新类型的内存一致性模型作用域同步,将范围同步添加到类似于C ++和Java的数据无竞争模型。对于异构无等级(SC用于HRF)调用的顺序一致性,新模型保证具有“足够”范围的“充分”同步(无数据竞争)的程序的SC。我们讨论两个这样的模型。第一个,HRF-direct,适用于具有高度规则并行性的程序。第二种,HRF间接,建立在HRFdirect上,允许在涉及传递通信的某些情况下使用不同范围的同步。我们定量地显示HRF间接鼓励具有不规则并行性的前瞻性程序,通过在GPU的任务运行时间中显示高达10%的性能增加.

花了将近30年,像C ++ 和Java这样的CPU系统的语言已经开始采用一类称为顺序一致性的数据无竞争(SC for DRF)。 这些模型是形式和精确的定义,允许许多低级优化。 用于DRF模型的SC也可以被大多数程序员访问,因为它们保证与正确同步的任何程序的顺序一致性 - 这意味着大多数程序员不需要关心实现细节。 这项工作的目标是在显着更少的时间内为异构系统实现相同的好处。

不幸的是,在异构系统中应用SC用于DRF模型并不直接,因为当前异构系统支持具有非全局副作用的同步操作。例如,OpenCL提供了将工作项与其自己的工作组中的其他工作项同步,但不与不同工作组中的工作项同步的fence操作。

作用域同步打破了DR对DRF模型的一些基本原则。 例如,在OpenCL 2.0中,可以编写一个完全由原子组成的racey程序,如果这些atomics没有正确使用scope。 还可以编写一个程序,其中所有普通访问都用原子保护,使得没有并发的冲突访问,然而如果这些原子没有被正确地限定,则该程序仍然可能包含竞争。

杜克大学的的教授提出了一种新类型的内存模型,用于使用范围同步,称为用于异构无种族(SC for HRF)的顺序一致性。 用于HRF模型的SC定义了关于顺序一致的执行和关于被认为“足够”同步以避免竞争的规则的正确性。 HRF模型的SC实现两个基本目标:它们在异构执行中提供对存储器行为的精确定义,并且它们提供用于以典型程序员可以理解的方式描述该行为的框架。

他们描述HRF变体的两种可能的SC:(1)HRF-direct需要通信工作项以使用完全相同的范围进行同步。(2)HRF间接扩展HRF直接支持使用不同范围的传递通信

在此基础上,他们对现有技术做了如下改进:

使用作用域同步定义:他们确定需要更正式地定义和更好地描述作用域同步操作的语义,特别是当工作项通过不同作用域交互时。
SC for HRF模型:他们提出一类程序中心存储器模型,称为用于异构无竞争的顺序一致性,以描述具有范围同步支持的系统。
HRF-direct模型:他们为当前具有当前标准(例如,OpenCL 2.0)的高度规则GPGPU程序定义HRF直接模型。 HRF间接:我们为未来不规则GPGPU程序定义前瞻性HRF间接模型,其中从生产者到消费者有不确定的数据流。
【1】 Hower D R, Hechtman B A, Beckmann B M, et al. Heterogeneous-race-free memory models[J]. ACM SIGPLAN Notices, 2014, 49(4): 427-440.

你可能感兴趣的:(操作系统)