精华内容
下载资源
问答
  • 并发(Concurrency)是一个通用的概念,指一个同时具有多个活动的系统,而并行(Parallelism)指的是用并发来使一个系统运行得更快。并行可以在计算机系统的多个抽象层次上运用。并发和并行的区别1、线程级并发构建在...
    3aa394b7f6e54021675e901b2a1dd80b.png

    在数字计算机的整个发展历程中,有两个需求是驱动进步的持续动力:

    • 计算得更多
    • 计算得更快

    当处理器能够同时做更多事情时,这两个因素都会改进。

    并发(Concurrency)是一个通用的概念,指一个同时具有多个活动的系统,而并行(Parallelism)指的是用并发来使一个系统运行得更快。并行可以在计算机系统的多个抽象层次上运用。

    并发和并行的区别

    1、线程级并发

    构建在进程这个抽象上,能够设计出同时有多个程序执行的系统,这就导致了并发。使用线程,能够在一个进程中执行多个控制流。自20世纪60年代出现时间共享,计算机系统中就开始有了对并发执行的支持。传统意义上,这种并发执行只是模拟出来的,通过使一台计算机在它正在执行的进程间快速切换来实现的,就好比一个杂耍艺人保持多个球在空中飞舞一样。这种并发形式允许多个用户同时与系统交互。如当许多人要从一个Web服务器获取页面时。在以前,即使处理器必须在多个任务间切换,大多数实际的计算也都是由一个处理器来完成的。这种配置称为单处理器系统。

    d5d689250869484e9871ecc4a8063aba.png

    当构建一个由单操作系统内核控制的多处理器组成的系统时,就得到一个多处理器系统。

    多核处理器是将多个CPU集成到一个集成电路芯片上。下图是一个典型多核处理器的组织结构,其中微处理器芯片有4个CPU核,每个核都有自己的L1和L2高速缓存,其中的L1高速缓存分为两个部分:一个保存最近取到的指令,另一个存放数据。这些核共享更高层次的高速缓存,以及到主存的接口。

    485ddce2a079632616333d68674163e3.png

    超线程,也称为同时多线程(simultaneous multi-threading),是一项允许一个CPU执行多个控制流的技术。它涉及CPU某些硬件有多个备份,如程序计数器和寄存器文件,而其他的硬件部分只有一份,如执行浮点算术运算的单元。常规的处理器需要大约20000个时钟周期做不同线程间的转换,而超线程的处理器可以在单个周期的基础上决定要执行哪一个线程。这使得CPU能够更好地利用它的处理资源。比如假设一个线程必须等到某些数据被装载到高速缓存中,那CPU就可以继续去执行另一个线程。如Intel Core i7处理器可以让每个核执行两个线程,所以一个4核的系统实际上可以并行地执行8个线程。

    多处理器的使用可以从两方面提高系统性能。首先它减少了在执行多个任务时模拟并发的需要,其次它可以使应用程序运行得更快。当然这必须要求程序是以多线程方式来书写的,这些线程可以并行地高效执行。

    2、指令级并发

    在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。早期的微处理器需要多个(3~10个)时钟周期来执行一条指令。而现代处理器可以保持每个时钟周期2~4天指令的执行速率。其实每条指令从开始到结束需要长得多的时间,大约20个或者更多周期,但是处理器使用了非常多的聪明技巧来同时处理多达100条指令。

    如果处理器可以达到比一个周期一条指令更快的执行速率,就称之为超标量(super-scalar)处理器。现代处理器都支持超标量操作。

    8a5fa407b7059066d004152520e2fab1.png

    3、单指令多数据并行

    在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,这种方式称为单指令多数据,即SIMD并行。

    提供这些SIMD指令多是为了提高处理影像、声音和视频数据应用的执行速度。虽然有些编译器会试图从C程序中自动抽取SIMD并行性,但是更可靠的方法是用编译器支持的特殊的向量数据类型来写程序,如GCC就支持向量数据类型。

    14cefdd57319c99da617a3ed7442c86c.png
    展开全文
  • 首先,我们先理清一下并行和并发的关系:并行是指,同一时刻处理多个任务,并发多个可独立运行的任务,彼此在某一段时间内独立有序运行。实现:最初,程序员们所掌握的有关机器底层的知识来编写中断服务程序,...

    在计算机编程中,有一个基本概念,就是在同一时刻处理多个任务的思想。

    许多程序设计,需要程序能停下正在做的工作,转而处理其他问题,然后返回主进程。

    首先,我们先理清一下并行和并发的关系:

    并行是指,同一时刻处理多个任务,并发是指多个可独立运行的任务,彼此在某一段时间内独立有序运行。

    实现:

    最初,程序员们用所掌握的有关机器底层的知识来编写中断服务程序,主进程的挂起是通过硬件中断来触发的,但难度太大,而且不能移植。中断对于时间性强的任务是必须的,但对于大量的其他问题,我们只是想把问题切分成多个可独立运行的部分(任务),从而提高程序的响应能力。在程序中,这些彼此独立运行的部分称之为线程。

    通常,线程只是一种为单一处理器分配执行时间的手段,但是,如果操作系统支持多处理器,

    那么每一个任务都可以被指派给不同的处理器,并且它们是真正的并行执行(而不是某一时间段内)

    在语言级别上,多线程所带来的便利,便是程序员不用操心机器上是多个处理器还是一个处理器,

    由于程序在逻辑上被分为线程,所以如果机器有多个处理器,那么不需要特殊调整程序就能执行的更快。

    并发的隐患:共享资源

    多个并行任务都要访问同一个资源的时候,为某个任务锁定资源,完成后,释放资源,供其他任务使用。

    展开全文
  • 计算机编程中,有一个基本概念,就是在同一时刻处理多个任务的思想。 许多程序设计,需要程序能停下正在做的工作,转而处理其他问题,然后返回主进程。 首先,我们先理清一下并行和并发的关系: 并行是指,...

    在计算机编程中,有一个基本概念,就是在同一时刻处理多个任务的思想。

    许多程序设计,需要程序能停下正在做的工作,转而处理其他问题,然后返回主进程。

     

    首先,我们先理清一下并行和并发的关系:

    并行是指,同一时刻处理多个任务,并发是指多个可独立运行的任务,彼此在某一段时间内独立有序运行。

     

    实现:

    最初,程序员们用所掌握的有关机器底层的知识来编写中断服务程序,主进程的挂起是通过硬件中断来触发的,但难度太大,而且不能移植。中断对于时间性强的任务是必须的,但对于大量的其他问题,我们只是想把问题切分成多个可独立运行的部分(任务),从而提高程序的响应能力。在程序中,这些彼此独立运行的部分称之为线程。

     

    通常,线程只是一种为单一处理器分配执行时间的手段,但是,如果操作系统支持多处理器,

    那么每一个任务都可以被指派给不同的处理器,并且它们是真正的并行执行(而不是某一时间段内)

     

    在语言级别上,多线程所带来的便利,便是程序员不用操心机器上是多个处理器还是一个处理器,

    由于程序在逻辑上被分为线程,所以如果机器有多个处理器,那么不需要特殊调整程序就能执行的更快。

     

    并发的隐患:共享资源

    多个并行任务都要访问同一个资源的时候,为某个任务锁定资源,完成后,释放资源,供其他任务使用。

     

     

     

     

     

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/hoanfir/p/9258921.html

    展开全文
  • 并行可以在计算机系统的多个抽象层次上运用。按照系统层次结构中由高到低分为:线程级并发,指令级并行, 单指令、多数据并行。 1.线程级并发 1)使用线程,我们能够在一个进程执行多个控制流。这种并发执行...

    并发:指一个同时具有多个活动的系统。

    并行:指用并发来使一个系统运行地更快


    并行可以在计算机系统的多个抽象层次上运用。按照系统层次结构中由高到低分为:线程级并发,指令级并行,

    单指令、多数据并行。


    1.线程级并发

    1)使用线程,我们能够在一个进程执行多个控制流。这种并发执行只是模拟出来的,是通过一台计算机在它正在执行的进程间快速切换来实现的。有一个处理器来完成多个任务间切换的配置称为单处理器系统。


    2)构建一个由单操作系统内核控制的多处理器组成的系统,称为多处理器系统。


    一.多核处理器

    多核处理器是将多个CPU集成到一个集成电路芯片上。典型多核处理器的组织结构—4核,其中微处理器芯片有4个CPU核,每个核都有自己的L1和L2高速缓存,其中L1高速缓存分为两个部分,一个保存最近取到的指令,另一个存放数据。这些核共享更高层次的高速缓存,以及到主存的接口。


    二.超线程处理器

    超线程,是一项允许一个CPU执行多个控制流的基数。它设计CPU某些硬件有多个备份,比如程序计数器和寄存器文件,而其他的硬件部分只有一份,比如执行浮点算术运算的单元。常规的处理器需要大约20000个时钟周期做不同线程间的转换,而超线程处理器可以在单个周期基础上决定要执行哪一个线程,这使得CPU能更好地利用它的处理资源。如今的4核处理器实际上可以并行地执行8个线程。


    2.指令级并行

    在较低的抽象层次上,现代处理器可以同时执行多条指令的属性称为指令级并行。最近的处理器可以保持每个时钟周期2~4条指令的执行速率。如果处理器可以达到比一个周期一条指令更快的执行速率,就称之为超标量。大多数现代处理器都支持超标量操作。我们可以通过这个模型理解程序的性能,写出更高程度的指令级并行性的程序代码,因此也运行的更快。


    3.单指令、多数据并行

    在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并发执行的操作,这种方式称为单指令、多数据,即SMID并行。

    提供这些SMID指令多是为了提高处理影像、声音和视频数据应用的执行速度。虽然有些编译器会试图从C程序中抽取SMID并行性,但是更可靠的办法是用编译器支持的特殊的向量数据类型来写程序,比如GCC就支持向量数据类型。


    抽象:

    常见的三个抽象:文件是对I/O设备的抽象,虚拟内存是对程序存储器的抽象,进程是对一个正在运行的程序的抽象。


    展开全文
  • 时间上的并行就是指流水线技术,而空间上的并行用多个处理器并发的执行计算。    并行计算科学中主要研究的空间上的并行问题。空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多...
  • 并行小叙 ...现在市场上覆盖率最大”win-tel联盟”的通用计算机,即操作系统windows,处理器是intel,在过去的半个多世纪,intel联合创始人戈登·摩尔提出的摩尔定律(预计18月会将芯片的性能提高
  • 并发与并行数字计算机的整个历史中,有两个需求是驱动进步的持续动力:一...而并行(parallelism)指的是用并发是一个系统运行的更快。并发可以在计算机系统的多个层次上运用。在此,我们按照系统层次结构中由高到低的
  • 并发(Concurrency)是一个通用的概念,指一个同时具有多个活动的系统,而并行(Parallelism)指的是用并发来使一个系统运行得更快。并行可以在计算机系统的多个抽象层次上运用。并发和并行的区别1、线程级并发构建在...
  • 时间上的并行就是指流水线技术而空间上的并行用多个处理器并发的执行计算并行计算的目的就是提供单处理器无法提供的性能处理器能力或存储器使用多处理器求解单个问题 分布式计算分布式计算研究如何把一个需要...
  • 并行计算

    千次阅读 2012-04-15 09:23:22
    时间上的并行就是指流水线技术,而空间上的并行则用多个处理器并发的执行计算。 目录 定义 特征 基本体系结构 访存模型 计算模型 网络设置 静态连接 动态连接 基本术语 并行计算机...
  • 为了提高并行体绘制算法在处理连续多个绘制请求时计算资源的利用率,提出了一种面向多请求的并行体绘制算法。该算法从两个层次并行处理多绘制请求,首先不同请求之间的并行计算,其次对单个请求的并行绘制。根据...
  • 基于matlab并行计算

    2015-12-21 17:22:27
    它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连...
  • 并行计算并行计算相对于串行计算来说的可分为时间上的并行和空间上的 并行 时间上的并行就是指流水线技术而空间上的并行用多个处理器并 发的执行计算并行计算的目的就是提供单处理器无法提供的性能处理器...
  • Python并行运算模块Parallel Python简介

    万次阅读 2016-11-17 09:59:22
    一、概览PP一个python模块,提供在SMP(具有多个处理器或多核的系统)和集群(通过网络连接的计算机)上并行执行python代码的机制。它轻巧,易于安装和与其他python软件集成。PP一个纯Python编写的开源和跨...
  • 并行计算之基础概念

    2014-10-29 10:38:00
    它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连...
  • 一、概览Parallel Python一个python模块,提供在SMP(具有多个处理器或多核的系统)和集群(通过网络连接的计算机)上并行执行python代码的机制。它轻巧,易于安装和与其他python软件集成。Parallel Python一个纯...
  • 时间上的并行就是指流水线技术,而空间上的并行用多个处理器并发的执行计算。并行计算的目的就是提供单处理器无法提供的性能(处理器能力或存储器),使用多处理器求解单个问题。分布式计算:分布式计算研究...
  • 并行计算与分布式处理的区别?

    千次阅读 2015-04-30 13:27:17
    时间上的并行就是指流水线技术,而空间上的并行用多个处理器并发的执行计算。 并行计算(Parallel Computing)指同时使用多种计算资源解决计算问题的过程。 为执行并行计算,计算资源应包括一台配有多...
  • #1楼并发性:具有共享资源潜力的多个执行流例如:两个线程争一个I / O端口。平行主义:将问题分成多个相似的块。例如:通过在文件的每半部分上运行两个进程来解析大文件。#2楼并发指两个或多个任务可以在重叠的...
  • 一种现代架构,具有集合关联L1和L2缓存,细粒度硬件多线程,流水线SIMD浮点和整数执行单元,并支持多个缓存一致性内核。它包括基于LLVM的C/C 编译器。GPU已经被证明对于具有大量内在并行性的应用程序有用的,...
  • 我们在编写程序的时候有一编写代码的顺序,那么计算机执行的时候就是按照我们编写代码的顺序来执行的吗?答案:不一定。如果两代码之间没有依赖关系的...指令级并行重排序:现代处理器采用了指令级并行技术来将

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 210
精华内容 84
关键字:

并行计算机是用多个处理器