并行计算

本文介绍了并行计算和分布式计算的基础知识,包括新摩尔定律、高性能计算的四种类型以及并行计算的实现方式。强调了CPU和GPU在处理逻辑和数据吞吐量上的差异,并探讨了GPU在特定应用场景下的优势和限制。此外,还讲解了如何查看电脑显卡类型以及CUDA程序的创建流程。
摘要由CSDN通过智能技术生成

基础知识

电脑功率= 主 频 3 主频^3 3,于是主频越高的电脑要求散热越好,于是采用多核并行解决这个问题。

新摩尔定律:处理器主流2-8个核心的多核CPU、十到上千个核心的众核GPU(图形处理器)。
高 性 能 计 算 ( H P C ) { 并 行 计 算 分 布 式 计 算 网 格 计 算 云 计 算 高性能计算(HPC)\begin{cases} 并行计算\\ 分布式计算\\ 网格计算\\ 云计算 \end{cases} HPC

分布式计算

原理:将任务和数据分割成小块,由多个计算机分别计算,上传结果统一合并。

优点:1)稀有资源共享
2)平衡计算负载
3)程序可以放在最合适运行的计算机上

并行计算

原理:多条指令同时进行
分为:
{ 时 间 并 行 − − 流 水 线 空 间 并 行 − − 多 个 处 理 器 \begin{cases} 时间并行--流水线\\ 空间并行--多个处理器\\ \end{cases} {线

常见的几种并行计算

1)进程+线程:硬件是多机+多核,编程环境是MPI+OpenMP,处理大粒度任务。
2)线程+GPU线程:硬件是多核+多GPU,编程环境是OpenMP+CUDA/OpenCL,处理小粒度任务。
3)进程+线程+GPU线程:硬件是多机+多核+多GPU,编程环境是MPI+OpenMP+CUDA/OpenCL,大小任务都可以。

划分任务的时候,任务之间最好是没有关系

{ M P I : 为 每 个 计 算 机 分 配 一 个 进 程 ( 进 程 I D ) O p e n M P : 多 核 分 配 一 个 线 程 ( 线 程 I D ) C U D A / O p e n C L : 多 个 G P U 线 程 处 理 对 应 的 子 任 务 \begin{cases} MPI:为每个计算机分配一个进程(进程ID)\\ OpenMP:多核分配一个线程(线程ID)\\ CUDA/OpenCL:多个GPU线程处理对应的子任务 \end{cases} MPI:IDOpenMP:线线IDCUDA/OpenCL:GPU线

CPU vs GPU

1)理论差别
{ C P U : 逻 辑 和 控 制 运 算 厉 害 , 面 向 解 决 延 迟 G P U : 数 据 并 行 任 务 , 面 向 数 据 吞 吐 量 , 图 像 处 理 就 需 要 高 数 据 并 行 \begin{cases} CPU:逻辑和控制运算厉害,面向解决延迟\\ GPU:数据并行任务,面向数据吞吐量,图像处理就需要高数据并行\\ \end{cases} {CPU:GPU:
2)结构差别
在这里插入图片描述
在这里插入图片描述
3)处理数据
GPU:实现需要准备好数据以及分配好内存(c里面的malloc),之后会拷贝到GPU上运算。
CPU:大缓存(Cache)、复杂控制、功能强大的ALU
4)GPU线程和CPU线程
{ C P U 一 个 核 心 通 常 只 能 运 行 一 个 线 程 C P U 多 线 程 , 解 决 粗 粒 度 , 一 般 由 操 作 系 统 自 带 的 A P I 实 现 C P U 线 程 切 换 代 价 高 G P U : 轻 量 级 线 程 , 零 开 销 线 程 切 换 \begin{cases} CPU一个核心通常只能运行一个线程\\ CPU多线程,解决粗粒度,一般由操作系统自带的API实现\\ CPU线程切换代价高\\ GPU:轻量级线程,零开销线程切换\\ \end{cases} CPU线CPU线APICPU线GPU:线线
G P U 不 适 用 的 应 用 : GPU不适用的应用: GPU
{ 复 杂 数 据 结 构 : 树 、 矩 阵 、 链 表 等 等 串 行 和 常 务 性 处 理 较 多 的 情 况 并 行 规 模 很 小 重 设 算 法 和 数 据 结 构 或 打 包 处 理 \begin{cases} 复杂数据结构:树、矩阵、链表等等\\ 串行和常务性处理较多的情况\\ 并行规模很小\\ 重设算法和数据结构或打包处理\\ \end{cases}

查看电脑的显卡是什么样的

在这里插入图片描述
如果电脑显卡是NVIDIA的就可以直接安装软件了
在这里插入图片描述

CUDA程序

1)安装cuda,如果显卡是NVIDA直接安装cuda
打开vs,新建一个cuda项目,cuda是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题
在这里插入图片描述2)用vs创建CUDA程序
vs2013下编写你的第一个CUDA程序

3)逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值