《OpenACC并行程序设计:性能优化实践指南》一 2.5 在多核系统中并行运行

简介: 本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.5节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 在多核系统中并行运行

尽管本章使用了NVIDIA GPU,但OpenACC不是一个GPU编程模型,而是一种普遍适用的并行编程模型。尽管在2.4节中使用的循环优化技术仅适用于GPU,关于并行度和数据移动的技术手段适用于任意并行架构设备。本章使用的PGI编译器支持多种目标加速器,包括NVIDIA和AMD公司的GPU,以及多核x86 CPU。如果在多核CPU上开发和运行代码,将会发生什么呢?为多核目标平台重新编译代码,而不是将目标设定为tesla(见图2-29和图2-30)。

screenshot

如果运行可执行程序,它将在测试机的多核CPU上并行化各循环,而不是在GPU上运行了。通过设定ACC_NUM_CORES环境变量可以用来调整参与并行计算的CPU的核心数目。图2-31展示了调整核心数目后的加速比情况,该机器具有的最大核心数目是12。性能在使用超过4个CPU核之后保持稳定,这是因为测试程序的性能主要受制于CPU带宽。

screenshot

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
10月前
|
人工智能 NoSQL Redis
Collaborative Gym:斯坦福人机协作框架开源!异步交互+三方感知,让你的AI学会主动补位
介绍Collaborative Gym,一个专注于人机协作的框架,支持异步交互和多种任务环境。
403 14
Collaborative Gym:斯坦福人机协作框架开源!异步交互+三方感知,让你的AI学会主动补位
|
计算机视觉
OpenCV滑动条(createTrackbar()函数)如何在多个维度进行同步调整?
这篇文章介绍了如何在OpenCV中使用`createTrackbar()`函数创建多个滑动条以同步调整图像的多个维度(如亮度和对比度),通过将不同滑动条的回调函数合并为一个,确保它们在同一图像基础上进行调整。
|
SQL 关系型数据库 MySQL
MySQL----配置双主双从
本文档详细介绍了如何在四台服务器上配置MySQL的双主双从架构。首先,通过关闭防火墙和SELinux确保网络通信畅通无阻。接着,设置各服务器的主机名和本地Host,确保名称解析正确。然后,通过YUM安装MySQL并修改初始密码。接下来,逐步配置四个节点(master01、master02、slave01、slave02),包括修改配置文件、创建用户和授权等步骤,实现主从复制。最后,通过SQL命令验证主从同步是否成功。
|
Linux
RPM 管理软件包的依赖关系
RPM 管理软件包的依赖关系
1283 1
|
机器学习/深度学习 自然语言处理 算法
Adam优化算法和应用场景
Adam(Adaptive Moment Estimation)是一种用于训练深度学习模型的优化算法
900 2
|
Linux 虚拟化
麒麟系统开发笔记(一):国产麒麟系统搭建开发环境之虚拟机安装
麒麟系统开发笔记(一):国产麒麟系统搭建开发环境之虚拟机安装
麒麟系统开发笔记(一):国产麒麟系统搭建开发环境之虚拟机安装
|
小程序 前端开发 安全
【微信小程序】无纸化会议OA系统之首页搭建(下)
【微信小程序】无纸化会议OA系统之首页搭建(下)
332 0
|
前端开发 关系型数据库 MySQL
开源测试平台横向测评系列『流马』篇:流马部署
【简介篇】 • 项目概述:技术栈、工作原理 • 项目功能简介:功能特点 【部署篇】 • 部署规划 • 依赖环境部署(JDK、MySQ、NGINX、Git、NodeJS、Python3) • 代码打包:克隆项目、前端代码打包、后端代码打包 • 项目部署:前端部署、后端部署、执行引擎部署
开源测试平台横向测评系列『流马』篇:流马部署
|
NoSQL 前端开发 Java
考研为了背单词,我手写了一个背单词小 app
考研为了背单词,我手写了一个背单词小 app
447 0
|
存储 Java 关系型数据库
28个案例问题分析---24---xxljob控制台不打印日志排查--xxljob问题
28个案例问题分析---24---xxljob控制台不打印日志排查--xxljob问题
1167 0