zoukankan      html  css  js  c++  java
  • 高级知识点:并行计算【笔记】

    高级知识点:并行计算【笔记】

    并行计算

    并行计算的方法

    将数据拆分到每个节点上,对应的问题就是如何拆分

    每个节点并行的计算出结果,对应的问题是每一个节点算出来的是什么结果

    将结果汇总,问题就是如何汇总结果

    例如,如何排序10G个元素?

    外部排序一般会使用扩展的归并排序

    归并排序操作:将数据分为左右两半,分别归并排序,再将两个有序数据归并,那么如何归并?

    简单来说就是先比较数的大小,然后将小的数提出来,当两边一样大的时候,放左边的数

    这样外部排序就可以


    整个算法的实现重点部分在归并的方法

    归并结点的实现(k路归并)

    需要使用堆的结构来优化,因为堆是二叉树,树根就是最小点,然后一点一点将树根取出来,一路比较变换,最后结束

    这种在库中一般叫做priorityqueue

    只要每个数据源最小的元素放到内存中就可以,但是这样就会很慢,效率比较低,所以可以设置一个缓冲区,一点一点的输出

    在归并中使用iterable接口,可以不断地获取下一个元素,同时元素的存储/获取方式被抽象,与归并结点无关,因此就变成了


    归并数据源来自iterable.next()

    如果缓冲区为空,读取下一批元素放入缓冲区

    给出缓冲区第一个元素

    可配置项:缓冲区大小,如何读取下一批元素

    感谢观看,文笔有限,博客不出彩,还请多多见谅
  • 相关阅读:
    Jeecg代码搬砖圣地第五篇(页面布局)
    Jeecg代码搬砖圣地第四篇(页面标签规则)
    Jeecg代码搬砖圣地第三篇(Excel导入导出)
    小程序前端
    javascript 新版本的语法(ECS6)
    nginx下用getallheaders
    wampser 配置debug需要的参数
    Suhosin(php的保护工具)
    php中empty使用的情况
    写出健壮的代码
  • 原文地址:https://www.cnblogs.com/jokingremarks/p/14474106.html
Copyright © 2011-2022 走看看