11、UPMLIB:优化OpenMP程序内存性能的运行时系统

UPMLIB:优化OpenMP程序内存性能的运行时系统

1. 引言

可扩展共享内存多处理器架构逐渐趋向于一种通用模型,其中配备通用微处理器和内存的节点通过快速网络连接,并借助额外硬件支持为程序员提供共享地址空间的通信抽象。同时,可扩展并行计算机的高级编程模型也逐渐收敛于少数标准,主要代表了消息传递和共享内存这两种不同通信抽象的编程方法,MPI和OpenMP是这两种方法中最流行的代表。

近期,关于可扩展共享内存多处理器的首选编程模型存在大量讨论。像SGI Origin2000这类当代系统,通过供应商提供的定制运行时系统,同时支持基于消息传递和共享内存的编程模型。不过,性能经验表明,使用MPI实现的并行程序通常比使用OpenMP实现的相同程序性能更好,尤其是对于大型工业代码。

OpenMP在可扩展共享内存多处理器上面临的最突出问题是内存访问延迟的非均匀性(NUMA)。尽管共享内存通信抽象对程序员隐藏了数据分布细节,但程序对操作系统的页面放置策略非常敏感。糟糕的页面放置方案可能会增加远程内存访问的次数,而在先进系统中,远程内存访问的成本是本地内存访问的2到10倍。因此,确保线程和数据在系统节点中对齐,使每个线程与它更频繁访问的数据位于同一节点至关重要。

然而,要使用普通的共享内存编程模型实现这一目标,程序员必须了解操作系统的页面放置策略,要么修改程序以使其内存引用模式适应系统策略,要么绕过操作系统手动编写定制的页面放置方案。这两种方法都会破坏共享内存编程模型的简单性,并影响其在不同平台上的可移植性。目前,共享内存多处理器的供应商也面临是否应在OpenMP中引入数据分布指令的困境。

为了解决这些问题,本文提出了UPMLIB(用户级页面迁移库),这是

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值