初识并行计算

  • 什么是并行计算
    通过多个处理器一起工作去解决某个问题。传统程序编写后是串行计算的,而并行计算则需要通过多个计算资源解决计算问题。
  • 并行计算与分布式计算的区别
    并行计算:同一时间发生多项不同活动,同一应用规模大而需分散到多个核心或处理器上,通常用于科学计算
    分布式计算:不同活动跨越多系统或服务器,更关注并发和资源共享,通常用于商业领域
  • 为什么需要并行计算
    1.节省计算时间;
    2.解决大规模问题,特别是单机无法解决的问题
    3.更好地利用底层并行硬件
  • 并行计算机和模型分类
    1.从处理单元分类:
    SISD:串行计算机,一个CPU时钟周期只能处理一条指令,同时只能输入一条数据,如单核CPU
    SIMD:一个时钟周期所有处理单元执行相同指令,不同的处理单元可以处理不同数据,如GPU
    MISD:多个不同处理单元独立在同一数据上执行不同指令
    MIMD:每个处理器可以执行不同指令和处理不同数据,如多核CPU
    2.从存储器分类
    共享存储器:具有多核处理器的单台计算机,如SMP
    分布式存储器:连接多台计算机形成无共享存储的计算平台,如集群、超级计算机、数据中心。通过通信网络连接各处理器内存,每个处理器有自己的内存或地址空间,一个处理器对内存的改变不会影响其他处理器的内存,软件程序负责定义数据在处理器间通信的方式和时机。
  1. 从编程模型分类
    共享存储编程模型:一般用于共享存储机器;单进程有多个并发执行的线程;每个线程有本地数据,但共享资源;线程间通过全局内存通信;线程可以创建或销毁,但主程序一直存在;如Pthread, OpenMP。
    消息传递编程模型:一般用于分布式存储机器;计算过程中有一组任务,每个任务都有自己的本地内存;多个任务可驻留在相同的物理机或跨越不同的物理机;任务间通过发送接收消息来交换数据;如MPI。
    编程模型严格来说不受机器或内存体系架构的限制,消息传递编程模型可以支持共享存储机器(如在一台服务器上的MPI),共享存储编程模型也可用于分布式存储机器(如分区全局地址空间PGAS)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值