目标代码形式-analysis i terence tao third edition

上传者: 26749843 | 上传时间: 2021-11-08 17:02:03 | 文件大小: 4.28MB | 文件类型: -
6.3 目标代码形式 对于 OpenMP 的并行域管理功能的实现,一部分在代码变换中体现,另一部分在运行库 中提供支持。对于并行域如此复杂的功能,全部依靠代码翻译变换来完成并不现实,因此许多 功能就只好压入到运行库中。如此一来,编译工作关于并行域管理的部分反而变得简单,而运 行库则需要负担更多的工作。此时在代码变换上只留下了启动并行域的代码(包括执行任务函 数)、任务函数的封装两大任务。可行的目标代码形式如图 6.4: 图 6.4 parallel 的目标代码框架 在 GCC 的 GOMP 中变换前后的代码形式如下: 1. #pragma omp parallel 变换前的代码 2. { 3. body; 4. } 下面是变换后的代码,分成两部分: 1. void subfunction (void *data) 这个是任务函数 2. { 3. use data; 4. body; 5. } …… 6. setup data; 数据共享、私有化等处理 7. GOMP_parallel_start (subfunction, &data, num_threads); 创建并行域 8. subfunction (&data); 调用任务函数 9. GOMP_parallel_end (); 退出并行域 上 面 的 代 码 变 换 与 图 6.4 基 本 一 致 , GOMP 中 的 GOMP_parallel_start() 和 GOMP_parallel_end()等函数是 GOMP 运行库中的函数。OMPi 的实现略有不同。 这里只是给出实现 OpenMP 并行域管理的代码基本形式,与具体的 C 编程语言绑定的代 码“框架”将在第 9 章给出。 串行代码 并 行 域 #pragma omp parallel 数据环境准备 并行域创建代码 …… 执行任务函数 …… 退出并行域 { …… …… …… } 任务函数 封装 替换

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明