• 并行计算概念以及示例


    为什么会出现并行计算:
          从1986-2002年这期间,微处理器的速度平均每年增长50%。但是自从2003年以后,微处理器的速度跌落到了以每年20%的速度增长。而使用单核计算的话,速度是可以跟上去,但是单核产生的热量会越来越多,风扇技术不能处理产生热量的速度。这样处理大规模的任务的时候,不能依赖一个超强的单核,那么解决的办法是什么呢。就是采用多核。多核的话可以保证在原来的处理器技术至上,将大的任务分割,将分割成的小任务放在处理器上执行。每个处理器其实有很多核(Core)的,每个核每次只能执行一个任务。现在有些计算机的处理器是采用多核多线程,为了简单方便。我们在这里就采用多核,每个核是单线程。
     
    举例说明多线程的优势
     
    计算1,4,3,9,2,8,5,1,1,5,2,7,2,5,0,4,1,8,6,5,1,2,3,9 这24个数字相加的和。
     
    采用单核计算:
    1 + 4 + 3 + ...+3+9  = 95
    一共要进行23次加法
     
    采用八核:
    平均每个核计算24/8 = 3 个数字的和
    这24个数字被分为了8组:

    1,4,3,   9,2,8,    5,1,1,   5,2,7,   2,5,0,   4,1,8,   6,5,1,   2,3,9

    0
    1
    2
    3
    4
    5
    6
    7
    8
    19
    7
    15
    7
    13
    12
    14
    将每个核的结果分别放到master(即第0个核)进行计算:
    8 + 19 + 7 + 15 + 7 + 13 + 12 + 14 = 95
    这样所有的任务中,master核是执行时间最长的,要执行9次加法操作。其中执行的7次操作是将其他核的结果加起来。
     
    看到这里,八核计算应该还有更加快的算法。那么我们将上面的算法优化一下:
    第0个核计算第0核和第1核结果的和,第2核计算第3核和第2核结果的和...
    然后按照这个模式再计算剩下的步骤的结果。
    在这种算法中,master核还是执行的时间最长,一共是执行了6次加法。其中3次是计算和其他核的结果的和。比上面的又快了。
     
    分析:
    如果我们有1000个核的话,第一种算法(第一个八核算法)会要求master核接受999次结果,并且计算999次加法。
    而采用第二种算法,master核只需要10次结果,并且计算10次加法。
    这样就可以提升很多了。
  • 相关阅读:
    Maven项目的pom.xml中可以继承的属性
    LDAP常用属性及其描述
    Spring Boot 2 启动时加载properties文件
    Maven的阿里云镜像
    Windows下Node.js的安装与配置
    Windwos下Tomcat的安装与配置
    Windows下Java开发环境安装与配置
    Mysql踩过的坑
    数据库密码加密
    java集合遍历删除指定元素异常分析总结
  • 原文地址:https://www.cnblogs.com/SevenwindMa/p/4365999.html
Copyright © 2020-2023  润新知