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

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

    并行计算

    并行计算的方法

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

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

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

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

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

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

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

    这样外部排序就可以


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

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

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

    这种在库中一般叫做priorityqueue

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

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


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

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

    给出缓冲区第一个元素

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

    感谢观看,文笔有限,博客不出彩,还请多多见谅
  • 相关阅读:
    VMware设置共享文件夹
    非奇异阵
    ICP算法使用遇到的问题
    osgEarth编译的一些问题
    [OpenCV](1)安装与测试
    [PCL]1 PCL点云库安装
    【转载】:【C++跨平台系列】解决STL的max()与numeric_limits::max()和VC6 min/max 宏冲突问题
    matlab将多条曲线绘制在一起
    C++问题
    SLAM学习笔记(3)相关概念
  • 原文地址:https://www.cnblogs.com/jokingremarks/p/14474106.html
Copyright © 2011-2022 走看看