并行计算概述

转载 2012年03月28日 15:54:15

并行计算概述

这篇日志介绍并行计算的极为基础的一部分,为那些准备接触熟悉并行计算的人准备。 其中的描述和理解,大部分是根据我个人非常有限的经验和研究。 所以,可能存在失误。欢迎所有的意见和更正。

  • 什么是传统的串行计算?
    通常,串行计算程序是运行在具有一个核心(或CPU)的单机上。 这种程序被编译和解释成一串独立的命令指示,然后被挨个执行。 换句话说,任何时候只有一个线程在执行。

  • 什么是并行计算?
    相对应的,并行计算程序运行在一个多核心(或CPU)的计算机、或者由多台计算机组成的网络上。 这种程序被编译成多个部分,每个部分又进一步转化为一系列指令。 不同部分的指令可以同时执行。 换句话说,在同一时间可以有多个线程在执行。

  • 并行计算为什么有用?
    显然,并行计算可以节省时间。 并行计算也增加了资源的利用率。 另外重要的一点是,并行计算可以帮助解决不能在一台计算机上通过串行计算来解决的问题,尤其当受到速度或内存的限制时。
  • 并行计算有多少种模式?
    据我所知,依据内存是如何利用的分为三种模式:
    1.共享内存:
    在这种模式下,所有的线程独立运作,但共享相同的内存资源。 例如,在一个多核心电脑上不同的线程共享内存里的矩阵、参数,等等。这种模式在今天通常称为Symmetric Multiprocessor (SMP)。 这种模式下典型的并行计算程序可以使用OpenMP实现(一个API的多平台共享存储并行编程)。(下面图中的不同的CPU也可以表示不同的线程。)

    2.分布式内存:
    在这种模式下,线程(或处理器)都有自己的本地内存。 例如,内存可能会分布在整个网络,但是单个计算机上的每个线程只能用本地分配给它的内存。 甚至在同一台计算机上的不同线程都有独立的内存位置。 在这种模式下不同的线程通常需要与其他线程沟通以获取和发送数据。 在这种模式下典型的并行计算程序可以通过MPI(消息传递接口)实现。

    3.混合分布式内存:
    在这种模式下,共享存储的单元通常是一个SMP节点。 在给定的SMP处理器上内存是通用共享的。 程序所需的总内存分布在多个SMP构成的网络上。 每个SMP只知道自己的内存- 而不包括其他的SMP内存。 因此,一个SMP和另一个SMP的网络通信是必须的。 这种模式下典型的并行计算程序可以通过同时使用OpenMP和MPI来实现。

相关文章推荐

[并行计算] 1. 并行计算简介

这篇帖子旨在为并行计算这一广泛而宏大的话题提供一个非常快速的概述,作为随后教程的先导。因此,它只涵盖了并行计算的基础知识,实用于刚刚开始熟悉该主题的初学者。...

2014年海康威视面试题

目前只有一面,应用软件开发 1、阻塞与非阻塞的区别 2、
  • ffddybz
  • ffddybz
  • 2014年04月25日 16:10
  • 1835

百度面试经历

【描述】百度投的软件研发,只面了一面,总结一下,希望对大家有帮助。 【经历】 首先,问的项目。然后,是现场编程。问了2个,都编不出来,只有思路。 1 根据前序遍历和中序遍历,还原二叉树?(《编程...

并行计算导论第二版

  • 2017年11月19日 11:12
  • 46.28MB
  • 下载

Windows系统下搭建MPI(并行计算)环境

Windows系统下搭建MPI环境 MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windo...

并行计算(中科大讲义)

  • 2016年04月29日 14:13
  • 8.4MB
  • 下载

CUDA并行计算

  • 2015年12月03日 19:30
  • 808KB
  • 下载

并行计算与分布式处理的区别?

 并行计算或称平行计算是相对于串行计算来说的。 所谓并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 并行计算(Pa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:并行计算概述
举报原因:
原因补充:

(最多只允许输入30个字)