13、嵌套并行OpenMP应用程序的性能评估

嵌套并行OpenMP应用程序的性能评估

1 引言

OpenMP在共享内存机器的高性能计算中越来越受欢迎,但其当前规范存在诸多限制。特别是,当前OpenMP规定嵌套并行是可选的,这意味着实现可以忽略在另一个并行指令执行期间遇到的并行指令。许多现有的OpenMP系统实际上不支持嵌套并行,或者仅基于负载内联提供非常有限的支持。

1.1 传统观点

  • 收益方面 :假设在最外层循环中获得了足够的并行性,提取嵌套并行对整体性能没有好处。
  • 成本方面 :嵌套并行的高效实现困难或复杂,因为它需要能够轻松处理大量线程的线程管理。像Pthreads或Win32线程这样的标准线程库不满足这一要求,它们在线程创建时会产生大量开销,并且无法容忍大量线程。

1.2 新观点

然而,我们认为嵌套并行的高效实现既有益(许多应用程序可以从中受益)又成本不高(其实现并非那么困难)。
- 收益 :嵌套并行支持最外层级别并行性不足的程序(如并行递归),更重要的是,它增强了并行库的性能透明度,促进了黑盒代码的重用。
- 成本 :并行编程语言社区的大量现有文献表明,嵌套并行和动态并行管理通常可以高效实现。特别是,我们之前关于细粒度线程库StackThreads/MP的工作表明,使用常规顺序编译器可以实现这一点,并且在串行执行时几乎不产生开销。

我们将StackThreads/MP引入到Omni(一个最初仅支持有限形式嵌套并行的OpenMP实现)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值