首页 > 其他分享 >CS149笔记02并行抽象

CS149笔记02并行抽象

时间:2022-11-04 20:14:07浏览次数:90  
标签:02 sinx CS149 并行 instance program 抽象 simd ispc

Parallel Programming Abstractions

single program, multiple data

SPMD这个定义还是第一次听到,我在Intel ispc的官网找到了这一定义:https://ispc.github.io/ispc.html

The main idea behind SPMD is that one writes programs as if they were operating on a single data element (a pixel for a pixel shader, for example), but then the underlying hardware and runtime system executes multiple invocations of the program in parallel with different inputs (the values for different pixels, for example).

说白了就是让程序员写出如同处理单个数据的并行程序

ISPC sinx

c++ 版本的sinx函数:

image-20221104170427613

可以看到,main函数调用sinx,然后等待计算完成,这个sinx函数是一个完全串行程序

但是我们可以使用ispc写出并行程序,ispc会生成一个gang,gang就是多个program instance的集合。这里我的理解,program instance不应该当做一个线程或者simd中一条lane,虽然它实际上就是simd化,但是我们思考的时候应该把其理解为处理单个数据的program instance

image-20221104170719850 image-20221104170741486

iterleaved

image-20221104170843431

program instanceassign数据的方式是interleaved方式,ISPC也是使用这种assign方式

blocked

image-20221104170947988

一个instance连续处理多个数据

抽象和实现

spmd是编程的抽象,程序员应该把gang多做逻辑上的多个指令流,同时运行多个程序实例

simd是ispc的实现,ispc将condition之类的判断变为simd中的mask

三种并行编程模型

共享内存

抽象和实现:

image-20221104171425195 image-20221104171616635
  • 不同线程读写同一块共享内存,线程间通信可以使用load store
  • 需要各种同步原语

Message passing

image-20221104171744433 image-20221104171756983

Data-parallel model

image-20221104171845147

Parallel Programming Basics

Amdahl’s Law

amdahl's law 定义了并行处理的最大加速比

S = 内在串行执行比例

最大并行加速度 \(\le 1/S\)

image-20221104180542454

标签:02,sinx,CS149,并行,instance,program,抽象,simd,ispc
From: https://www.cnblogs.com/kalicener/p/16858962.html

相关文章

  • CS149笔记01现代多核CPU
    AModernMulti-CoreProcessor一个处理器在做什么?FetchDecode:指令流解码,决定下一条执行的指令ALU:执行单元,执行一条指令,决定如何修改寄存器和计算机内存Context一......
  • 开发向未来!2022 云开发技术峰会报名中
    2022云开发技术峰会将于2022年11月13日在深圳举办。本次峰会报名通道现已开启,欢迎各位开发者进入微信学堂小程序报名参与!*注意事项:大会仅限报名审核通过者实名入场,参......
  • 2022.11.04
    2022.11.04P3350非常风骚的一道分治。这其实是我做的第一道在网格图上跑最短路的题,也让我学到了一些小技巧:给网格图附上编号codeintid(intx,inty){return(x......
  • 2022NOIP A层联测20
    [优化排序?]T2:给出二分图,左部任意节点和右部任意节点有边连接,边有边权,求最少边权使得所有节点联通。(n<=5000)正解kruscal跑最小生成树,发现\(n^2logn\)的sort会T,然后因为......
  • SCRIPT1002: syntax error File: 0. chunk.js,SCRIPT5009: ‘Map‘ is undefined File
    情景描述React项目通过​​npmrunstart​​启动后,在Chrome浏览器、Firefox浏览器和Edge浏览器都可以正常运行,但是在IE浏览器打开的时候,控制台报标题的错误解决方法1......
  • Nexus RCE CVE-2018-16621/CVE-2020-10204
    POST/service/extdirectHTTP/1.1Host:xxxxxxxxxUser-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64;rv:106.0)Gecko/20100101Firefox/106.0Accept:*/*Accep......
  • 02 ES查询设计
    一原理知识Bool查询包括四种子句:mustfiltershouldmust_not1.must文档必须匹配这些条件才能被包含进来。相当于sql中的and2.must_not文档必须不匹配这些条件......
  • 【题解】Luogu P8743 【[蓝桥杯 2021 省 A] 异或数列】
    最近刚好在刷博弈论,看到这道题没有题解,所以刚好来水一发题目链接[蓝桥杯2021省A]异或数列题目描述Alice和Bob正在玩一个异或数列的游戏。初始时,Alice和Bob......
  • MySQL函数-Group_Concat分组并行转列
    group_concat函数解析:1、concat()函数:  功能:将多个字符串连接成一个字符串  语法:concat(str1,str2)  结果:连接参数str1,str2为一个字符串,如果有任何一个参数为n......
  • luogu 5022
    任意选定一个城市作为起点,然后从起点开始,每次可以选择一条与当前城市相连的道路,走向一个没有去过的城市,或者沿着第一次访问该城市时经过的道路后退到上一个城市。当回到......