生活中难以察觉的高科技:海量数据实时处理靠的是什么数学?( 二 )


图1 优化方法在人工智能中的应用和体现
2
传统最优化方法受到数据爆炸的冲击
在这个大数据时代 , 一方面 , 数据的产生由手动方式转变为自动化 , 各种类型的传感器被人们应用到生产、生活以及科学研究中来获取信息 , 数据的收集变得更加便捷经济;另一方面 , 拥有庞大数量用户的互联网无时无刻不在产生规模巨大的数据 。 以上因素的联合作用,导致了数据集规模的爆炸式增长 , 图2[1]展示了全球数据量的增长趋势(1PB=1024TB , 1EB=1024PB) 。
图2 IDC预测的2020年全球数据量
单个的存储单元数据的分布式采集以及数据量不断扩张进一步催生数据分布式存储结构的出现 。 然而 , 数据爆炸给传统最优化方法带来了巨大的挑战 。 但是 , 传统优化方法所处理的数据集规模较小 , 而且往往是串行算法 。 所以 , 对于求解目前大规模和分布式存储的数据问题 , 一方面,对小规模数据集的传统优化方法并不见得对大数据问题有效;另一方面 , 以目前单核处理器的计算能力,数据规模的爆炸使得串行算法难以在可忍受的时间内进行求解 。
3
现代计算机的并行架构推动分布式优化方法的发展
图3 CPU发展历史
幸运的是 , 现代计算机的并行架构为我们由传统优化方法转到发展分布式优化以求解上述问题带来了机遇 。 从图3[2]中可以发现 , 随着晶体管电路逐渐接近性能极限 , 处理器(CPU)由单核逐渐过渡到多核 。 例如 , 图4[3]中展示的Intel Xeon系列处理器中的一款CPU具有6个核心单元 。
图4 Intel Xeon系列处理器架构
不仅仅是CPU , 近年来快速发展的图形处理器(GPU)也具有众多的计算单元 , 从而产生很强大的浮点运算、并行计算性能 。 例如 , NVIDIA公司的TURING TU102 GPU内建4608颗CUDA核心 , 576颗Tensor核心,如图5[4]所示 。
图5 Turing TU102 GPU 架构简图
当然 , 单个CPU或者GPU的计算能力依然十分有限 。 于是 , 利用多个CPU、GPU构建的大规模集群/超级计算机 , 成为目前主流的计算硬件资源 , 比如2015年百度利用36个服务节点搭建了深度学习专用服务器Minwa[5]参加当年的计算机视觉挑战赛(ILSVRC) 。 更多的全球超级计算机介绍及排名可见[6] 。 无论是多核CPU、GPU , 还是超级计算机 , 都是并行的硬件架构 。 为充分有效利用计算资源的并行架构 , 我们需要结合这一架构特点进行并行程序的设计开发 。
4
分布式优化与并行计算
分布式优化方法属于并行计算中的一类方法 。 与将一个问题分解成一系列离散的指令 , 由单个核心依次逐一执行这些指令的串行计算不同 , 并行计算是同时使用多个核心来求解一个计算问题 , 如图6[3] 。 具体地说 , 并行计算要首先把一个问题分解成若干个可以同时计算的子问题(部分) , 并将每个子问题进一步细分为一系列离散的指令;然后 , 采用全面控制/协调机制 , 利用多个核心同时执行每个部分的指令 。
图6-1 串行计算示意图
图6-2 并行计算示意图
而分布式优化 , 就是考虑如何把大任务分解成若干子任务 , 安排给多个核心、利用多个核心来实现对一个大问题的并行快速求解 。 目前 , 在算法设计上 , 分布式优化可以分成代数层面的分布式优化和模型层面的分布式优化两类 。 相比于并行计算 , 分布式计算的概念要更加宽泛 , 用在事务处理和科学计算中;而并行计算一般出现在科学计算中 。 不过两者之间并没有明确的分界线,我们利用“分布式”来强调数据的分布式存储以及分布式内存 。
01)

推荐阅读