zoukankan      html  css  js  c++  java
  • 第二个知识点:多核处理器和向量处理器的区别

    第二个知识点:多核处理器和向量处理器的区别

    原文地址:http://bristolcrypto.blogspot.com/2014/10/52-things-number-2-what-is-difference.html

    从表面看来,你可能很困惑着两个处理器到底有什么区别。如果你熟悉并行计算的话,那么你可能会碰见这两种处理器。因此它们到底有什么区别?这个就是这周的问题。在我们进入细节之前,为什么我们不看看这两个不同的处理器在作为并行计算一部分的概念呢。

    什么是并行计算

    在回答这个问题之前,我们首先需要考虑传统的线性的处理模型。让我们开始通过想象一些我们需要去解决的问题。线性计算解决问题就像把处理器把一些用于解决问题的指令放在一个队列中去处理它们。处理器解决每个指令,然后最后得出答案,问题被解决了。同时变成了一个非常好的解决问题的方式,但是也意味着一个解决问题速度上的障碍。换句话说,处理器的速度取决于每个指令的速度。但是如果我们要计算的问题规模很大呢?是否有一种方式来打破这个障碍来增加计算速度。

    答案你可能已经猜到了,是的,这就是并行计算的由来。并行计算就将问题转换成几个小问题,每一个同时的独立的运行。在这种情况下,问题分布的被多个执行元素执行子问题,提供了一个可能十分重要的速度上的增长。增长的速度取决于算法,同时速度能够被阿姆达定律(Amdahl's law) [1]确定。因此它是怎么工作的呢?怎么能以这种方式来处理呢。两个解决方案就是多核处理器和向量处理器。

    多核处理器是什么

    多核处理器就是一个简单的用多个线性的处理器同时执行并行计算。比之前讨论问题规模更大的问题被一个独立的处理器并行的去计算。就好像几个人同时做一个被给定的不同的任务,但是都是为了一个项目工作。这可能需要一些额外的组织工作,但是整体的性能将会更快。

    向量处理器是什么

    向量处理器就是一个可以把单一指令计算在多个被放在一维数组的数据集中。(标准的线性处理器只会操作单一的数据集)。如果你在不同的数据集上做相同的指令很多次,而不是为片数据执行单一的指令,为什么不把指令变成一次对所有的数据呢。这个acronym SIMD(single instruction multiple data)就是被用于这种工作方式的指令集。

    他们有什么区别

    这就是这个知识点,我们用一个例子来总结。我们想要滚着四个大石头穿过马路,每个要花费一分钟。线性处理器就是一个接一个的滚过去,总共要花费四分钟。有两个核心的多核处理器就是有两个人滚石头,每个人两个石头,总共花费两分钟。向量处理器就是找一个长的木板,从后面一起推这四个石头,同时滚过去,花费一分钟。多核处理器有多个员工,向量处理器有办法同时对不同的事情做同一件事。

    [1]http://en.wikipedia.org/wiki/Amdahl's_law

  • 相关阅读:
    10.2 查找同一组或分区中行之间的差
    8.7 确定当前记录和下一条记录之间相差的天数
    8.6 计算一年中周内各日期的次数
    8.5 确定两个日期之间的秒、分、小时数
    8.4 确定两个日期之间的月份数或年数
    8.2 计算两个日期之间的天数
    8.3 确定两个日期之间的工作日数目
    8.1 加减日、月、年
    7.13 计算不包含最大值和最小值的均值
    第3章 Python的数据类型 第3.1节 功能强大的 Python序列概述
  • 原文地址:https://www.cnblogs.com/zhuowangy2k/p/11058860.html
Copyright © 2011-2022 走看看