基于可扩展Actor的PGAS应用编程系统
在并行计算领域,为了提高生产力和可扩展性,我们提出了一种基于Actor模型的编程系统,用于PGAS(Partitioned Global Address Space)应用。以下将详细介绍该系统的相关内容。
1. PGAS应用中的通信背景
PGAS应用中有两种基本的消息传递模式:读取(Read)和更新(Update),并且有Conveyors库可用于消息聚合。我们采用Single Program Multiple Data (SPMD) 模型,每个处理元素(PE)以不同的排名执行相同的代码。
- 读取模式 :每个PE从动态识别的远程位置请求数据,然后处理响应请求接收到的数据。以下是一个OpenSHMEM程序示例,用于从分布式数组中读取数据:
for(i = 0; i < n; i++){
int col = index[i] / shmem_n_pes();
int pe = index[i] % shmem_n_pes();
gather[i] = shmem_g(data+col, pe);
}
该程序根据本地数组 index 中的全局索引,从分布式数组 data 中读取值,并将其存储在本地数组 gather 中。在MPI中也可以使用 MPI Get 执行相应操作。
超级会员免费看
订阅专栏 解锁全文
6241

被折叠的 条评论
为什么被折叠?



