OpenACC 高性能并行编程:概念与策略 (10):OpenACC 概述 1.3

阅读数:1 2020 年 1 月 5 日 18:31

OpenACC高性能并行编程:概念与策略(10):OpenACC概述 1.3

(数据环境)

内容简介
本书是介绍大规模并行编程 OpenACC 的综合实践性书籍之一。书中前 3 章介绍了 OpenACC 背后的概念和 OpenACC 开发工具;第 4 章至第 7 章带你了解第 1 个真实世界的 OpenACC 程序,并揭示 OpenACC 程序编译背后的魔力,从而引入更多概念;第 8 章至第 10 章涵盖高级主题,例如 OpenACC 的替代方案、底层设备交互、多设备编程和任务并行性;第 11 章和第 12 章探讨了 OpenACC 实现潜在新语言特性的各种研究领域。

OpenACC 用于处理这样的环境:在与主程序不在同一个存储空间的设备上执行计算构件,因此需要在主机和设备之间进行数据迁移。在本节中,我们将讨论通过由 OpenACC 提供的全套导语和子语,怎样控制内存布局和移动。但是,首先来看看在规范中说明的会自动完成的部分。

以下变量被预先设定为 private,这意味着每个执行元素将创建一个副本,具体取决于被使用的并行类型:

1. 与 loop 构件相关的循环控制变量。

2. 在 parallel 或 kernels 区域中包含的 Fortran do 循环索引变量。

3. 在 C 代码块内声明的变量。

4. 在过程内部声明的变量。

在 parallel 区域中使用但未在数据子语中列出的标量变量,被预先定义为 firstprivate(使用构件之前的值进行初始化的私有变量)或 private,具体取决于对象在区域中是先读取还是先写入。

规范定义了与数据对象有关的两个重要概念:数据区域(data region)和数据生命周期(data lifetime)。数据区域是一个结构化块的动态范围,这个结构化块与隐式或显式数据构件相关联。数据生命周期从对象首次在设备上可用时开始,到对象在设备上不再可用时结束。一共定义了四种类型的数据区域:数据构件、计算构件、过程和整个程序。

OpenACC高性能并行编程:概念与策略(10):OpenACC概述 1.3

购书地址 https://item.jd.com/12596484.html?dist=jd

评论

发布