在分区全局地址空间语言 (PGA) (如 UPC) 中,"put" 和 "store" 之间有什么区别?



我是并行编程和不同模型领域的新手。我想知道在遵循PGAS模型的语言中,像"put"one_answers"store"这样的操作之间有什么区别。此外,如果你能告诉我任何合适的资源,对我来说都会很有帮助。我一直在复习的那些并没有回答我所有的问题。

在PGAS模型中,"put"操作通常将数据从与调用方具有相关性的内存(也称为本地内存)移动到共享内存(可能与远程对等方具有相关性)。"获取"操作将数据移动到相反的方向;从可能的远程共享存储器到本地存储器。这些操作也统称为远程存储器访问(RMA)。

有多种机制用于同步PGAS RMA操作的完成(即找出操作何时"完成",以获得"完成"的适当定义);这些范围从"完全阻塞"(即RMA注入调用暂停启动线程直到"完成"),到同步非阻塞RMA操作的各种机制(使不相关的工作重叠)。假设是"单侧"PGAS模型,它们通常共享这样一个特性,即操作的完成是通过调用方(发起秩)的动作或向调用方发出信号来完成的。

术语"商店"是而不是由UPC或GASNet(标记模型)以规范的方式使用。其他PGAS型号可能对"商店"有特定含义。特别是,Split-C有一个"信号存储"操作,其数据移动语义为"put",但不同之处在于,完成是向与目标内存相关的(可能是远程)列发出信号的,而不是初始列。

最新更新