• 并行计算:并行计算机与并行模型的分类


    视频来源:新竹清华大学:并行计算与并行编程课程

    分类:1.Flynn's classic taxonomy: 从哈佛结构 CPU的处理器做的分类,基于两个维度:指令及数据(GPU:属于SIMD)

                   SISD:单指令,单数据 ,单指令是指在CPU的一个时钟周期 只有一条指令发生动作,单数据是指在CPU的一个任意时钟周期只有一个数据流作为输入。

                   SIMD:单指令,多数据,单指令是指所有的计算单元在每个周期内执行相同的指令,多数据是指处理单元可以执行不同的数据。比如GPU,量化处理(X86 AVX指令集)。

                    

                    MISD:多指令,单数据流,多指令是指 每个处理单元可以通过 分离的指令流  来独立  的处理数据。单数据是指单个数据流送入到多个计算单元中。

                     MIMD:多指令,多数据,每个计算单元可以执行不同的指令流,每个计算单元可以处理不同的数据流。缺点:复杂度很大。如多核CPU。

                2. Memory archicture classification: 从哈佛结构 内存上进行分类

                     Shared Memory: 不同CPU可以访问同一个内存。根据内存的Access ,latency 及速度 可以分为一致/不一致,

                           一致性(UMA):所有CPU与内存直接相连,他们之间的速度是一致的。

                           不一致性(NUMA):多个CPU连接在一个内存上,不同内存之间存在交流,这里造成冗余。也是非一致性的原因。注意的是需要决定程序运行在哪块CPU/内存上。

                     Distributed Memory:不同CPU都有对应的内存,无法读取对方的内存进行沟通,各自管理。

                            

                         沟通:需要一个 沟通网络 来连接内部处理 内存,每个处理器由自己独立的 内存及 地址空间, 不能任意修改 其他处理器的内存。编程时需要注意不同计算单元之间 何时 及 如何 进行 数据的传递。

                 3. 编程模式的分类。

                     并行编程模式 基于硬件及内存结构 以 抽象的形式(编程语言) 存在。本质:硬件抽象

                     可分为shared memory prog:用于共享内存机器,message passing prog:针对分布式系统。但编程模式不受限于共享/分布式系统,如 message passing model可以跑在 shared memory上,如signle server上的MPI, shared memory model on distributed memory  如partitioned Global Address Space(此类代价较大)。

                 Shared Memory :  两种编程库:Pthread(很底层,编程复杂),OpenMP(很高层次,编程简单)

                    

                  Message Passing:主要在于 内存之间的沟通,内存拷贝,主要用到的库:MPI API

                                                                      

                  总结:shared memory:快,但规模受限,message passing:程序可以控制,但需要定义接送数据,且要对应,内存拷贝需要开销

     

  • 相关阅读:
    NetCore3.1,NetCore5.0让发布的时候可以展示views
    Mac配置Gradle环境变量
    [转] 聊聊OkHttp实现WebSocket细节,包括鉴权和长连接保活及其原理!
    spark hive 数据不一致 spark默认本地数据元 spark不能插入hive数据
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 885: invalid start byte
    hadoop+zookeeper+yarn+spark高可用主从备份启动步骤
    Java笔记
    cnblogs设置
    IC Test Note
    复制文件夹下所有文件文件名
  • 原文地址:https://www.cnblogs.com/fourmi/p/11919701.html
Copyright © 2020-2023  润新知