并行及分布式框架

news/2024/9/21 22:36:11

文章目录

  • 并行及分布式框架
    • 并行计算常用技术
      • 共享内存系统和分布式内存系统概述
      • OPENMP技术
        • OpenMP编程模型
        • OPENMP API构成
          • 编译伪指令
          • 运行时函数
          • 环境变量
        • OpenMP常用指令
        • OpenMP常用函数
        • OpenMP 环境变量
      • MPI技术
        • MPI消息传递
      • Nvidia NCCL技术

并行及分布式框架

并行计算常用技术

共享内存系统和分布式内存系统概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
统一内存访问(UMA)系统或对称多处理器(smp)
在numa内多核cpu根据cpu的主频不一样其亲和性也会不一样,主频高的亲和性越高,低的功耗越小。

OPENMP技术

(Open Multi-Processing,开放多处理)
主要是为共享式存储计算机上的并行程序设计使用,支持多平台共享存储器多处理器编程的C/C++和Fortran语言的规范和API。
OPENMP提供对于并行描述的高层抽象,降低了并行百年城的难度和复杂度。

OpenMP编程模型

采取传统的fork-join模式,并行执行的控制流之间共享存储器。
OpenMP程序单线程执行开始,在parallel伪指令调用处,主线程产生多个子线程
在这里插入图片描述
缺点:不适合需要复杂的线程间通信。
不是很好在非共享内存系统上使用。

OPENMP API构成

编译伪指令

Pragma伪指令:通过通过标识引导编译器对相应代码段做处理,编译器根据指令自动将程序并行化,并加入同步互斥等手段。
eg:#pragma omp parallel

运行时函数

eg:int omp_get_num_threads();

环境变量

eg: export OMP_THREAD_LIMIT=8

OpenMP常用指令

prallel,用在一个代码段之前,表示这段代码将被多个线程并行执行
for,用于for循环之前, 将循环分配到多个线程中并行执行,必须保证每次循环之间无相关性。
prallfor,parallel 和for语句的结合,也是用在一个for循环之前,表示for循环的代码将被多个线程并行执行。
sections, 用在可能会被并行执行的代码段之前
pallel sctions, parallel和sections两 个语句的结合
citical,, 用在一段代码临界区之前
singe,用在一段只被单个线程执行的代码段之前,表示后面的代码段将被单线程执行。
brrier,用于并行区内代码的线程同步,所有线程执行到barrier时要停止,直到所有线程都执行到barrier时才续往下执行。
atomic,用于指定一块内存区域被制动更新
master,用于指定一段代码块由主线程执行
ordered,用于指定并行区域的循环按顺序执行
thedpivate,用于指定一个变量是线程私有的。

OpenMP常用函数

omp_ get_ num_ procs,返回运行本线程的多处理机的处理器个数。
omp
get_ num_ threads,返回当前并行区域中的活动线程个数。
omp
get. thread_ num, 返回线程号
omp_ set. nugn threads,设置并行执行代码时的线程个数
omp_ init Jock, 初始化一-个简单锁
omp_ set_ lock ,上锁操作
omp_ unset_ lock,解锁操作,要和omp_ set_ lock 函数配对使用。
omp_ destroy_ lock ,omp_ init_ _lock函数的配对操作函数,关闭一个锁

OpenMP 环境变量

●OMP NUM_ THREADS:指定执行并行区域时使用的默认线程数量。
●OMP_ PROC_ BIND:决定了是否允许线程迁移到其他的处理器上执行。设置为True时,运行时不会在处理器间迁移线程。
●OMP
THREAD_ LIMIT:指定 了系统能够创建的OpenMP线程的最大值。
●OMP
NESTED:决定了是否支持嵌套线程,True时支持。

MPI技术

●MPI是一个跨语言的通讯协议。支持点对点和广播。
●MPI是- -个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。
●MPI的目标是高性能,大规模性,和可移植性。
●与OpenMP并行程序不同,MPI是一种基于信息传递的并行编程技术。MPI标准定义了一组具有可移植性的编程接口。

MPI消息传递

在这里插入图片描述
MPI消息传递规程三个阶段:
1.消息装配将发送数据从发送缓冲区中取出加上消息信封等形成一个完整的消息
2.消息传递将装配好的消息从发送端传递到接收端
3.消息拆卸从接收到的消息中取出数据送入接收缓冲区

通信器

●通讯器定义了←组能够互相发消息的进程。在这组进程中,每个进程会被分配大个序号,称作秩(rank)-六进程间显性地通过指定秩来进行通信。
●通信的基础建立在不同进程间发送和接收操作。J–个进程可以通.过指定另一-个进程的秩以及一个独一无二的消息标签(tag) 来发送消息给另一个进程。接受者可以发送一个接收特定标签标记的消息的请求(或者也可以完全不管标签,接收任何消息),然后依次处理接收到的数据。类似这样的涉及一个发送者以及一个接受者的通信被称作,点对点(point-to-point) 通信。
在这里插入图片描述
在这里插入图片描述

Nvidia NCCL技术

●NCCL是Nvidia Collective multi-GPU Communication Library的简称,它是一个实现多GPU的collective communication通信(all-gather, reduce, broadcast)库,Nvidia做 了很多优化,以在PCle、Nvlink、 InfiniBand. 上实现较高的通信速度。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/17572.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Postgresql时间戳long转日期,转字符串,转timestamp,日期转换错误定位及解决

1. 效果图如下 排查问题时遇到个尴尬的问题,程序里计算好的小时开始及结束的时间戳,转换发现有点乱。 遂研究下,终于正确的转换了。 记录下原因: postgresql的 timestamp可以由bigint秒时间戳10位通过 to_timestamp转换出来&…

Django_1

文章目录云服务器配置docker&gitdjango:项目开发:开发环境:配置docker、git环境项目创建实例1创建django2git维护项目3运行项目IP加入ALLOWED_HOSTS4通过app写django页面5创建自己的页面6流程优化云服务器配置docker&git django: Django是后起…

记录|深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

记录|深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天 1. 彩色图片分类效果图 数据集如下: 测试图1如下 训练/验证精确图如下: 优化后:测试图——打印预测标签: 优化后:测试图——打印 预测标…

django_创建菜单界面

文章目录创建菜单界面项目系统设计项目文件结构素材地址创建文件项目配置settings.py配置项目架构配置tempaltes管理html配置js配置views配置urls编辑菜单界面配置menu的js添加按钮添加按钮创建菜单界面 项目系统设计 menu:菜单页面 playground:游戏界…

物体控制

代码 varsetspeed:float1.0; private varmove_x:float; private varmove_y:float;varprojectileprefab:GameObject;varpositiontemp:Vector3;varmytransform:Transform;varprojectilespeed:float50;functionUpdate () { move_x Input.GetAxis("Horizontal")*setspeed…

Postgresql 学习记录,模式,分区表,触发器,事务,窗口函数,视图,建表,约束等

Postgresql 学习记录,模式,分区表,触发器,事务,窗口函数,视图,建表,约束等 PostgreSQL使用一种客户端/服务器的模型。一次PostgreSQL会话由下列相关的进程(程序&#xf…

Django_3

文章目录游戏界面实现修改js模块化增加界面样式实现简易游戏引擎创建人物创建火球类实现碰撞实现动态效果游戏界面实现 修改js模块化 在game/templates/multiends/web.html 并且删除<head></head>里面的AcGame 在game/static/js/src/zbase.js里 在class前加上ex…

十一运夺金基础数据采集工具

点击下载 转载于:https://www.cnblogs.com/JiangHuakey/archive/2010/11/17/1880139.html