我是并行编程和不同模型领域的新手。我想知道遵循 PGAS 模型的语言中的“put”和“store”等操作有什么区别。此外,如果您可以将我引导至任何适当的资源,这对我将非常有帮助。我一直在审查的那些并没有回答我所有的问题。
问问题
36 次
1 回答
0
在 PGAS 模型中,“放置”操作通常将数据从与调用者有关联的内存(也称为本地内存)移动到共享内存(可能与远程对等方有关联)。“get”操作以相反的方向移动数据;从可能的远程共享内存到本地内存。这些操作也统称为远程内存访问 (RMA)。
有多种机制可以同步完成 PGAS RMA 操作(即找出操作何时“完成”,对于“完成”的一些适当定义);这些范围从“完全阻塞”(即 RMA 注入调用停止启动线程直到它“完成”),到用于同步非阻塞 RMA 操作的各种机制(允许不相关工作的重叠)。假设一个“单面”的 PGAS 模型,这些通常共享一个属性,即操作的完成是通过调用者的动作或信号来完成的(初始等级)。
UPC或GASNet(标记模型)都没有以规范的方式使用术语“存储” 。其他 PGAS 模型可能对“存储”有特定的含义。特别是,Split-C有一个“信号存储”操作,具有“放置”的数据移动语义,但不同之处在于,完成是向与目标内存相关的(可能是远程的)秩发出信号,而不是初始秩.
于 2019-01-10T00:21:15.953 回答