并行计算简介
高性能计算中的并行计算技术应用方法

高性能计算中的并行计算技术应用方法在当今科技高速发展的时代,高性能计算已经成为了许多科学研究、工程设计、数据分析等领域的重要工具。
并行计算技术是实现高性能计算的关键。
本文将介绍高性能计算中的并行计算技术应用方法,包括并行计算的基本概念、并行计算的分类和主要应用领域。
1. 并行计算的基本概念并行计算是指同时使用多个计算资源进行计算任务的方法。
传统的串行计算是一步一步地依次执行计算任务,而并行计算利用多个计算资源同时处理任务,大大提高了计算速度和效率。
并行计算的基本概念包括任务分解、数据分布和任务调度。
任务分解是将大任务划分成若干个小任务,数据分布是将这些小任务分配给不同的计算资源进行计算,任务调度是确定计算资源执行任务的顺序和时间。
2. 并行计算的分类根据任务分解的方式,可以将并行计算分为任务级并行和数据级并行。
任务级并行是将计算任务分解成多个子任务,并由不同的计算资源分别执行。
这种方式适用于任务之间没有依赖关系的情况。
数据级并行是将数据划分成若干个子数据集,并由不同的计算资源并行处理这些子数据集。
数据级并行可以进一步分为任务并行和流水线并行等。
3. 并行计算的主要应用领域3.1 科学研究高性能计算在科学研究领域有着广泛的应用。
例如天体物理学中的宇宙模拟、气候学中的气象模拟、生物医学中的基因组分析等。
这些科学研究往往涉及到大量的计算,通过并行计算可以大大缩短计算时间,提高模拟和分析的准确性。
3.2 工程设计在工程设计中,高性能计算可以用于仿真和优化。
通过并行计算,可以实现复杂结构的三维模型建立、结构强度分析、流体力学分析等工程应用。
这些应用需要大量的计算资源和快速的计算速度,只有通过并行计算才能够满足需求。
3.3 数据分析随着大数据时代的到来,数据分析成为了各行各业的重要工作。
高性能计算可以应用于大规模数据分析和机器学习等领域。
通过并行计算,可以加速数据处理和模型训练的过程,提高分析和预测的准确性。
高性能计算中的并行计算技术介绍(三)

高性能计算中的并行计算技术介绍在当今信息时代的浪潮中,高性能计算成为各行各业不可或缺的一部分。
高性能计算的迅猛发展,离不开并行计算技术的支持。
并行计算技术通过多个处理器同时执行不同的计算任务,大幅度提高了计算效率和速度。
本文将介绍高性能计算中的并行计算技术,包括并行计算的基本概念、共享内存和分布式内存,并分析两者的优缺点。
一、并行计算的基本概念并行计算是指多个处理器同时执行不同的计算任务,通过分配不同的计算任务给多个处理单元同时执行,从而提高计算速度和效率。
并行计算由于其强大的计算能力,广泛应用于科学研究、天气预报、金融建模等领域。
为了支持并行计算,需要使用并行计算模型。
常见的并行计算模型包括共享内存和分布式内存。
二、共享内存共享内存是一种共享数据通信的方式,多个处理单元可以通过访问共享的内存空间来传递数据。
共享内存可以支持多个处理器之间的并行计算,并且具有简单、高效的特点。
共享内存系统中的处理器可以直接访问同一块物理内存地址。
在共享内存系统中,所有的处理器共享同一个地址空间和全局变量。
因此,多个处理器可以通过读写共享内存来实现数据的交互和共享。
当其中一个处理器对共享内存进行写操作时,其他处理器可以立即读取到更新后的数据。
虽然共享内存可以方便地共享数据,但它也存在一些问题。
首先,多个处理器同时读写共享内存时需要进行同步操作,以防止数据竞争和不一致性。
其次,共享内存系统中数据的一致性维护需要付出较高的开销。
因此,在大规模高性能计算中,共享内存系统的可扩展性有限。
三、分布式内存分布式内存是一种将多个处理器连接在一起,通过消息传递来进行通信的计算方式。
每个处理器拥有自己的私有内存,通过发送和接收消息来进行数据的交互。
分布式内存系统中,每个处理器拥有单独的物理内存,并且通过消息传递来共享数据。
当一个处理器需要访问另一个处理器的数据时,它需要通过发送消息来请求数据,并等待对方处理器的响应。
这种方式可以有效避免数据竞争和一致性问题。
并行计算的基本概念

并行计算的基本概念并行计算的基本概念[转贴2008-02-25 09:57:26]1、并行计算:并行计算是指同时对多个任务或多条指令、或对多个数据项进行处理。
完成此项处理的计算机系统称为并行计算机系统,它是将多个处理器通过网络连接以一定的方式有序地组织起来。
2、指令流:机器执行的指令序列;3、数据流:由指令流调用的数据序列,包括输入数据和中间结果。
4、SIMD计算机:有一个控制部件和许多处理单元,所有的处理单元在控制部件的统一控制下工作。
控制部件向所有的处理单元广播同一条指令,所有的处理单元同时执行这条指令,但是每个处理单元操作的数据不同。
5、MIMD计算机没有统一的控制部件,含有多个处理器,各处理器可以独立地执行不同的指令,每个处理器都有控制部件,各处理器通过互连网络进行通信。
6、并行向量处理机(PVP)在并行向量处理机中有少量专门定制的向量处理器。
每个向量处理器有很高的处理能力。
并行向量处理机通过向量处理和多个向量处理器并行处理两条途径来提高处理能力。
7、大规模并行处理机(MPP)大规模并行处理机一般指规模非常大的并行计算机系统,含有成千上万个处理器。
它一般采用分布的存储器,存储器一般为处理器私有,各处理器之间用消息传递的方式通信。
大规模并行处理机的互连网络一般是专门设计定制的。
8、分布式共享存储器多处理机(DSM)分布式共享存储器多处理机的主要特点是它的存储器在物理上是分布在各个结点中的,但是通过硬件和软件为用户提供一个单一地址的编程空间,即形成一个虚拟的共享存储器。
它通过高速缓存目录支持分布高速缓存的一致性。
9、机群(COW或NOW) 是由高档商品微机(包括工作站)用高速商品互连网络(有的商用机群也使用定制的网络)连接而成,每个结点都是一台完整的计算机(可能没有鼠标、显示器等外设)。
10、对称多处理机(SMP)对称多处理机的最大特点是其中的各处理器完全平等,无主从之分。
所有的处理器都可以访问任何存储单元和I/O设备。
Visual Studio 2010并行计算概述

Visual Studio 2010并行计算概述并行计算(Parallel Computing)是指同时使用多台计算机协同合作解决计算问题的过程,其主要目的是快速解决大型且复杂的计算问题。
图1:计算原理并行计算是相对于串行计算——即在单个计算机(具有单个中央处理单元)上执行的操作,所提出的。
具体的说,并行计算是在多台(并行)计算机上将一个应用任务分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,同时执行子任务的过程。
并行计算可分为时间上的并行和空间上的并行。
时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。
为执行并行计算,计算资源应包括一台配有多处理(或并行处理)机的计算机和一个与网络相连的计算机专有编号。
图2:(a)SIMD类型 (b)MIMD类型目前,对于并行计算的研究主要集中在空间上的并行问题上。
空间上的并行导致了两类并行机的产生,即单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。
类似地,我们常用的串行机有时也被称为单指令流单数据流(SISD)。
在1972年诞生的第一台并行计算机ILLIAC IV就属于SIMD类型机器。
而自上个世纪八十年代以来,都是以MIMD并行计算机的研制为主。
常见的MIMD类的机器可分:并行向量处理机(PVP)、对称多处理机(SMP)、大规模并行处理机(MPP)、工作站机群(COW)、分布式共享存储处理机(DSM)等五类。
并行计算机主要有以下四种访存模型:l 均匀访存模型(UMA)非均匀访存模型(NUMA)l全高速缓存访存模型(COMA)ll 一致性高速缓存非均匀存储访问模型(CC-NUMA)和非远程存储访问模型(NORMA)。
常见的基本并行算法有:划分法(partitioning)、分治法(divide-and-conquer)、流水线方法(pipelining)、随机法(randomization)、平衡树法(balanced-tree)、倍增发(doubling)、迭代法(iteration)等。
计算机科学中的并行计算与分布式计算

计算机科学中的并行计算与分布式计算随着计算机技术的发展和计算需求的增加,计算机科学中的并行计算和分布式计算在现代计算领域中扮演着重要的角色。
本文将对这两种计算模型进行介绍和比较。
一、并行计算1. 定义和原理并行计算是指多个计算任务同时在多个处理器上运行,以获得更好的运算效率。
每个处理器独立地执行指定的任务,通过相互通信和协调来完成整个计算过程。
并行计算利用了计算机系统中多个处理单元的并行能力,将计算任务分解成更小的子任务并同时处理。
2. 应用领域并行计算广泛应用于科学计算、数据挖掘、图像处理、大数据分析等领域。
在科学计算中,使用并行计算可以加快复杂模型的计算速度,提高计算精度和求解能力。
在大数据分析中,可以通过并行计算和并行存储来快速处理大量数据。
3. 并行计算的优势和挑战并行计算具有高性能、高效率和灵活性的优势。
通过增加处理器的数量,可以实现更高的计算速度和更好的系统资源利用率。
然而,并行计算也面临着任务划分、负载平衡、数据通信和同步等挑战,需要细致的系统设计和优化策略。
二、分布式计算1. 定义和原理分布式计算是指将一个计算任务分解成若干个子任务,并将其分发到不同的计算节点上进行并行处理。
计算节点可以是位于同一台机器上的多个进程,也可以是连接在网络上的分布式计算节点。
这些节点通过相互通信和协调来完成整个计算任务。
2. 应用领域分布式计算广泛应用于云计算、分布式数据库、分布式存储等领域。
在云计算中,分布式计算可以实现资源的共享和动态分配,提供弹性的计算能力。
在分布式数据库和分布式存储中,可以通过分布式计算实现数据的高可用性和可扩展性。
3. 分布式计算的优势和挑战分布式计算具有高可靠性、高可扩展性和高性能的优势。
通过增加计算节点的数量,可以使系统具备更高的计算能力和更好的容错性。
然而,分布式计算也面临着节点故障、数据一致性和通信开销等挑战,需要采用一系列的分布式算法和协议来解决。
三、并行计算与分布式计算的比较并行计算和分布式计算都是利用多个计算资源来实现任务的并行化。
并行算法简介

并行算法研究
一,并行计算的简介
并行算法就是用多台处理机联合求解问题的方法和步骤,其执行过程是将给定的问题首先分解成若干个尽量相互独立的子问题,然后使用多台计算机同时求解它,从而最终求得原问题的解。
并行算法的设计,分析和正确性比起相应的串行算法来要困难得多。
对于串行算法,衡量并行算法复杂度的主要标准除了是运行时间和所占用的空间,还要考虑其他资源的开销。
(1)处理器数
某些个别问题是固有串行的,不能使用并行算法,此时处理器的多少对问题的解决无意义。
大多数问题可以并行化解决,此时使用的处理器越多(在某个界限内),算法就越快。
而这个界限就需要我们研究探讨。
(2)处理器间的通信(处理器数目一定)
①处理器的距离
②处理问题同步
二,并行计算的模型
算法运行时间为(,)
T n p,其中n是输入的大小,p是处理器的数目。
比率()(,1)(,)
=被称为算法的加速比。
当()
S p T n T n p
=时并行算法是
S p p
最有效的,因为在这种情况下,算法获得了完美的加速比。
(,1)
T n的值应取自众所周知的串行算法。
处理器利用率的一个重要度量是并行算法的效率,定义为
()
(,1)
(,)(,)S p T n E n p p pT n p ==。
如果(,)1E n p =.,则在算法执行过程中所有处理器完成的工作量的总和等于串行算法所需要的工作量,在这种情况下算法取得了最优的处理器使用效果。
获得最优效率的机会是很小的,我们的目标是使效率最大化。
计算机的并行与分布式计算

计算机的并行与分布式计算计算机技术的快速发展促使了并行与分布式计算的兴起。
随着信息时代的到来,计算机的性能需求越来越大,传统的串行计算已无法满足实际应用需求。
并行与分布式计算技术的应用成为了解决大规模计算问题的有效手段。
本文将着重讨论计算机的并行与分布式计算的基本概念、发展历程以及应用前景。
一、并行计算的基本概念和技术并行计算是指通过同时执行多个任务或多个子任务的方式来提升计算机系统的整体计算能力。
相比传统的串行计算,它能够充分利用多个处理器或计算机节点的计算和存储资源,从而提高计算效率和速度。
并行计算可分为共享内存并行和分布式并行两种模式。
共享内存并行是通过多个处理器共享同一块物理内存来实现的,并通过锁机制来协调对共享资源的访问。
这种模式具有良好的可编程性和易用性,但在实际应用中往往面临着多线程同步和数据一致性等问题。
分布式并行则是将计算任务划分为若干个子任务,并分发到不同的计算节点上进行并行计算。
各计算节点之间通过网络进行通信,共享数据并协同完成计算任务。
分布式并行模式具有较好的可扩展性和容错性,但需要克服网络延迟和节点间通信带来的开销问题。
二、分布式计算的基本概念和技术分布式计算是指将一个较大的计算任务分解为多个子任务,并分发到不同的计算节点上进行协同计算和协同数据处理的计算模式。
在分布式计算中,各计算节点之间通过网络进行通信,共享数据和资源,并通过协同工作完成整个计算过程。
分布式计算技术的基础是计算机网络和通信技术的发展。
随着互联网的普及和计算能力的提升,分布式计算已经得到了广泛的应用,例如云计算和大数据处理等。
分布式计算具有高可靠性、高性能和强大的计算能力等优势,可以满足海量数据处理和复杂计算任务的需求。
三、并行与分布式计算的发展历程并行与分布式计算的发展历程可以追溯到上世纪60年代。
当时,计算机科学家开始尝试将计算任务分成多个子任务进行并行计算,从而提高计算速度和效率。
在此后的几十年中,随着硬件技术和软件技术的进步,人们对并行与分布式计算的研究逐渐深入,并提出了一系列的并行计算模型和分布式计算框架。
并行计算的基本概念与应用

并行计算的基本概念与应用并行计算是目前计算领域中的一项重要技术,它旨在通过同时执行多个计算任务来提高计算机的性能。
本文将深入探讨并行计算的基本概念和应用,从而帮助读者更好地理解并行计算的原理和价值。
一、并行计算的基本概念并行计算是指通过将任务分成多个独立的子任务,并在多个处理单元上同时执行这些子任务来加速计算过程。
下面将介绍几个基本的概念:1. 并行性和并行度并行性是指任务能够被分解成可以并行执行的子任务的能力。
而并行度是指并行计算系统中同时执行的子任务的数量。
并行度越高,系统的计算能力就越强。
2. 任务和子任务任务是指计算过程中需要完成的工作总体,可以分解成多个独立的子任务,每个子任务可以在不同的处理单元上执行。
3. 处理单元处理单元是指用于执行并行计算任务的计算机硬件单元,可以是CPU、多核处理器、GPU等。
4. 通信和同步并行计算中,各个处理单元之间需要进行通信以共享数据,同时需要进行同步操作以保证计算结果的准确性。
二、并行计算的应用领域并行计算广泛应用于科学计算、数据分析、图像处理、人工智能等领域。
下面将介绍几个常见的应用领域:1. 科学计算并行计算在科学计算中得到了广泛的应用,例如天气预报、模拟物理过程和化学反应等。
通过并行计算,科学家可以更准确地预测天气、研究物理现象,并加速新药物的开发过程。
2. 数据分析并行计算可以加速大规模数据的处理和分析,例如在互联网公司中进行用户行为分析、广告推荐和数据挖掘等。
通过并行计算,可以快速处理海量的数据,并发现其中隐藏的模式和规律。
3. 图像处理图像处理是另一个重要的应用领域,例如图像的压缩、去噪、特征提取和图像识别等。
通过并行计算,可以同时对图像进行多个处理操作,提高图像处理的效率和质量。
4. 人工智能并行计算在人工智能领域中有着重要的应用,例如深度学习和神经网络等。
通过并行计算,可以加速神经网络的训练过程,同时提高人工智能算法的性能和精度。
三、并行计算的挑战与未来发展尽管并行计算具有很多优势,但也面临一些挑战。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并行计算简介Blaise Barney, 劳伦斯利弗莫尔国家实验室译者:卢洋,同济大学原文地址:https:///tutorials/parallel_comp/目录1 摘要2 概述2.1 什么是并行计算2.2 为什么使用并行计算3 概念和术语3.1 冯诺依曼体系结构3.2 Flynn经典分类法3.3 一些通用的并行术语4 并行计算机存储结构4.1 共享内存4.2 分布式内存4.3 混合型分布式共享内存5 并行编程模型5.1 概览5.2 共享内存模型5.3 线程模型5.4 消息传递模型5.5 数据并行模型5.6 其他模型6 设计并行程序6.1 自动化vs. 手工并行化6.2 问题的理解和程序6.3 问题分解6.4 通信6.5 同步6.6 数据依赖6.7 负载平衡6.8 粒度6.9 I/O6.10 并行程序设计的限制和消耗6.11 性能分析与调整7 并行示例7.1 数组程序7.2 PI 的计算7.3 简单的加热等式7.4 一维的波等式8 参考和更多信息1 摘要为了让新手更加容易熟悉此话题,本教程覆盖了并行计算中比较基础的部分。
首先在概述中介绍的是与并行计算相关的术语和概念。
然后探索并行存储模型和编程模型这两个话题。
之后讨论一些并行程序设计相关的问题。
本教程还包含了几个将简单串行化程序并行化的例子。
无基础亦可阅读。
2 概述2.1 什么是并行计算传统上,一般的软件设计都是串行式计算:-软件在一台只有一个CPU的电脑上运行;-问题被分解成离散的指令序列;-指令被一条接一条的执行;-在任何时间CPU上最多只有一条指令在运行图在最简单的情形下,并行计算是使用多个计算资源去解决可计算问题。
-用多核CPU来运行;-问题被分解成离散的部分可以被同时解决;-每一部分被细分成一系列指令;-每一部分的指令可以在不同的CPU上同时的执行;-图计算资源可以包括:-多核CPU;-任意数量的CPU用网络连接起来;-或者以上两者结合;可计算问题通常展示出如下的特性:-能分解成可以同时解决的离散的工作块;-同一时刻可以执行多条程序指令;-通常用多个计算资源解决问题所花的时间要比单个计算资源要短;●宇宙是并行的并行计算是由串行计算发展而来,试图去模仿真实世界中事物的处理过程:许多复杂的互相关联的事件同时发生,例如:银河系的变换;行星的运动;天气和海洋的变化;交通堵塞;大陆板块迁移;炊烟升起;自动的流水线;建造空间飞行器;开车买汉堡;●并行计算的用途:在历史上,并行计算被认为是高端计算,并用于为复杂的科学计算和基于真实世界的工程问题建模。
下面是一些例子:-大气层、地球、环境-物理学应用、核能、原子能、凝聚态、高压、溶解、光电子;-生物科学、生物工程、基因学-化学、分子科学-地理和地震学-机械工程、从弥补术到空间飞行器-电气工程、电路设计、微电子学-计算机科学、数学今天,商务应用是推动快速计算机发展的更大的推动力。
这些应用需要用复杂的方法处理大量数据。
例如:-数据库、数据挖掘-石油勘探-网络搜索引擎、基于网络的商务服务-医学成像和诊断-制药设计-国有企业或跨国企业的管理-金融经济建模-高级制图和虚拟现实、特别实在娱乐事业上-网络视频和多媒体技术-协同工作环境2.2 为什么使用并行计算●主要的原因有:节省时间和成本:理论上,使用更多的资源会使一个任务提前完成,而且会节约潜在的成本。
况且可以使用便宜的、甚至市面将要淘汰的CPU来构建并行聚簇。
●解决更大规模的问题:很多问题是相当庞大而复杂的,尤其是当计算机的内存受到限制的时候,用单个计算机来解决是不切实际或者根本不可能的。
例如:-"Grand Challenge" (/wiki/Grand_Challenge) 问题需要Peta级浮点运算能力和存储空间的计算资源。
-网络搜索引擎和网络数据库每秒钟要执行上百万次的处理。
支持并行:单一的计算资源在同一时刻只能做一件事情。
多个计算资源能够同时做很多事情。
例如:Access Grid (/)提供一个全球的合作网络,在这里来自世界上不同国家的人们可以开会并―现场‖指导工作。
使用非本地资源:当缺少本地计算资源的时候可以使用广泛的网络或Internet计算资源。
例如:-SETI@home () 使用超过330000个计算机来执行每秒超过528T次浮点运算;(August 04, 2008)-Folding@home ()使用超过340,000 计算机来执行每秒4.2P次浮点运算(November 4, 2008)串行计算的限制:在理论上和实际上,想要轻易地制造更快的串行计算机存在着巨大的限制。
-传输速度——线性计算机的执行速度直接取决于数据在硬件中传输的速度。
光速的绝对限制是每纳秒30cm,铜导线是每纳秒9cm。
不断提升的执行速度更加靠近极限。
-微型化的极限——处理器技术使芯片集成了更多的晶体管。
但是,即使使用分子或者原子级别的组件也会很快达到芯片集成晶体管的极限。
-经济上的限制——让单个芯片变得更快需要增加昂贵的投入。
用多个一般的芯片来取代单个高性能的芯片或许性能会更好而且更便宜。
现在的计算机体系结构越来越依赖于硬件层次的并行来提高性能:-多个执行单元-管道指令-多核谁?什么? 给出了并行计算用户的数据统计——下面的图标只是一个样例。
下面几点需要注意:-扇形可能重叠——例如,研究的部分可能在经典研究中。
作者不得不二选一。
-目前为止未分类的最大应用可能是多种应用集合。
未来在过去的20年里,更快速网络、分布式系统、多核处理器体系结构(甚至是在桌面应用级别)的发展趋势已经很清楚的指出并行化是未来科学计算的发展方向。
3 概念和术语3.1 冯诺依曼体系结构以匈牙利数学家约翰. 冯诺依曼命名,他是第一个在1945年的论文中提出通用电子计算机必要条件的创始人。
从那时开始,实际上所有的计算机都遵从这个基本的设计,区别于早期的硬布线编程的计算机设计。
主要有五个主要的部件构成:-内存-控制单元-逻辑计算单元-输入输出读/写随机存储内存用于储存程序指令和数据:-程序指令是告诉计算机做什么事的代码数据-数据是程序用到的简单数据控制单元从内存中取回指令/数据,解码指令然后连续协调操作来完成编码工作。
计算单元完成基本的计算操作。
输入输出是用户操作的界面。
3.2 Flynn经典分类法有很多方法给并行计算机分类,其中,Flynn分类法从1966年开始使用被大家广为接受。
Flynn分类是利用两个独立的标准指令和数据对多核计算机体系结构进行划分的。
每一个标准有两种可能的值:单个或者多个。
下面的矩阵定义了4中可能的Flynn分类:-S I S D:单指令单数据-S I M D:单指令多数据-M I S D:多指令单数据-M I M D:多指令多数据-单指令单数据(SISD)串行计算机单个指令:在一个系统时钟周期只有一条指令可以被执行。
单数据:在一个系统时钟周期只有一个数据流可以被用来输入。
确定性执行。
这是迄今为止最老的,但大多数通用计算机都是这个类型。
例如:老一代的大型机、微机和工作站,还有现在大多数的PC机。
UNIVAC1IBM 360CRAY1CDC 7600PDP1Dell LaptopØ单指令多数据:并行计算机的一种单指令:所有的处理单元在给定的时钟周期只能执行相同的指令。
多数据:每一个处理器单元可以同时处理不同的数据元素。
最适合处理高度规则的问题,如图形图像处理。
同步,确定性执行。
两类:处理器数组和向量流水线。
例如:处理器矩阵:Connection Machine CM-2,MasPar MP-1 & MP-2, ILLIAC IV;向量流水线:IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10。
最先进的计算机,特别是带有图形处理器单元的计算机都使用SIMD指令集和执行单元。
ILLIAC IVMasParCray X-MPCray Y-MPThinking Machines CM-2Cell Processor (GPU)Ø 多指令单数据(MISD):单数据流进入多处理器单元。
每一个处理器单元通过独立的指令流在独立的操作数据。
这种计算机几乎在市面上找不到。
有一个实验机Carnegie-Mellon C.mmp可能用于单信号流上多频率过滤、用多密码学算法破解单码信息。
Ø 多指令多数据(MIMD)现在,大多数通用并行计算机都是这种。
多指令:每个处理器可以执行不同的指令流多数据:每个处理器可以用不同的数据流。
同步或异步、确定性或非确定性执行。
例如:大多数的超级计算机、网格计算机、多核SMP计算机,多核PC机。
注意:很多MIMD体系结构也包含SIMD执行子构件。
3.3 一些通用的并行术语像其他的东西一样,并行计算机有他自己的术语。
下面列出了一些与并行计算相关的通用的术语。
其中大多数都会在后面再进行详细的讨论。
Task:可计算工作在逻辑上不连续的分区。
一个任务通常是一个程序或者类似程序一样的可以被处理器执行的指令集。
Parallel Task:一个任务可以被多个处理器安全的并行的执行,产生正确的结果。
Serial Execution:程序相继的执行,每次一个状态。
在最简单的情况下,单核处理器就是这样运行的。
可是,实际上所有并行的任务有一些并行程序的区域一定要串行的执行。
Parallel Execution:一个或多个任务同时执行的程序,每个任务同时能够执行相同的或不同的代码语句。
Pipelining:不同的处理器单元把一个任务根据输入流来分解成一系列步骤来执行,相当于一条流水线;并行计算的一种。
Shared Memory(共享内存):完全从硬件的视角来描述计算机体系结构,所有的处理器直接存取通用的物理内存(基于总线结构)。
在编程的角度上来看,他指出从并行任务看内存是同样的视图,并且能够直接定位存取相同的逻辑内存位置上的内容,不管物理内存是否真的存在。
Symmetric Multi-Processor(对称多处理器):这种硬件体系结构是多处理器共享一个地址空间访问所有资源的模型;共享内存计算。
Distributed Memory(分布式存储):从硬件的角度来看,基于网络存储的物理内存访问是不常见的。
在程序模型中,任务只能看到本地机器的内存,当任务执行时一定要用通信才能访问其他机器上的内存空间。
Communication:并行任务都需要交换数据。
有几种方法可以完成,例如:共享内存总线、网络传输,然而不管用什么方法,真实的数据交换事件通常与通信相关。
Synchronization:实时并行任务的调度通常与通信相关。