摘 要
当前各大公司在数据采集、加工、分析领域仍有数据融合、数据拉通的安全保障要求,通常采用分布式计算的方式来解决,但仍然面临多方数据规范不统一、技术栈差异较大等问题。聚焦异构数据分布式计算框架研究,提出了一种基于消息传递的跨编程语言的异构数据计算架构,并在实际的数据环境中进行模拟测试,对实际应用效果进行验证,为后续再生产环境中的推广应用提供了全面的研究论述。
0 1
概 述
随着信息技术和互联网产业的蓬勃发展,传统的单机计算很难满足逐渐增大的计算能力,在这种背景下,无数的计算机从业者投身其中,提出了许多优秀的并行计算和分布式计算体系架构,在实际应用中最为灵活的一种便是基于消息传递的分布式计算架构。
采用消息传递技术[1],使用标准输入输出流进行信息收发,可提供稳定、可靠的跨编程语言的分布式计算服务。消息传递架构主要以通信为核心,各个计算节点大多相互独立,拥有独立的内存地址空间,各节点之间通过网络收发数据进行数据共享[2]。最常见的是基于消息传递接口(MPI)的并发编程模型框架[3]。消息传递架构主要依赖网络通信(暂时不讨论单机的进程通信式并行计算),可连通同一网络内大量的计算节点,非常适用于大规模集群式的分布式计算。
目前的分布式计算框架过于依赖编程语言。虽然MPI在设计之初考虑到了跨编程语言、跨平台,但是从目前已有的成熟框架来看,不同的框架均有自己特定的编程语言。以MPICH为例,只可使用C/C++或Fortran进行编程[4]。对于交叉学科的研究人员来说,一旦选定了框架,即选定了编程语言,无形中增加了他们的学习成本。针对一些专业性强的小众编程语言而言,以NCL(The NCAR Command Language,是一种专门为科学数据处理以及数据可视化设计的高级语言,很适合用在气象数据的处理和可视化上[5])为例,它在气象学和地理学中有着非凡的意义,但是其并不支持分布式计算,也没有相关的分布式计算框架。因此,想要加速一个NCL程序只有2种解决方案,一是使用其他支持分布式计算的语言重构代码,二是增强单机的性能。这在一定程度上增加了科研人员改进的难度。所以,一个能实现真正跨编程语言的分布式并行计算框架显得非常重要。
0 2