基于消息传递的跨编程语言异构数据计算架构研究.docxVIP

基于消息传递的跨编程语言异构数据计算架构研究.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

26

26 2023/06/DTPT

基于消息传递的跨编程语言

异构数据计算架构研究

1概述

随着信息技术和互联网产业的蓬勃发展,传统的单机计算很难满足逐渐增大的计算能力,在这种背景下,无数的计算机从业者投身其中,提出了许多优秀的并行计算和分布式计算体系架构,在实际应用中最为灵活的一种便是基于消息传递的分布式计算架构。采用消息传递技术[1],使用标准输入输出流进行

——————————

收稿日期:2023-04-07

信息收发,可提供稳定、可靠的跨编程语言的分布式计算服务。消息传递架构主要以通信为核心,各个计算节点大多相互独立,拥有独立的内存地址空间,各节点之间通过网络收发数据进行数据共享[2]。最常见的是基于消息传递接口(MPI)的并发编程模型框架[3]。消息传递架构主要依赖网络通信(暂时不讨论单机的进程通信式并行计算),可连通同一网络内大量的计算节点,非常适用于大规模集群式的分布式计算。

目前的分布式计算框架过于依赖编程语言。虽然MPI在设计之初考虑到了跨编程语言、跨平台,但是

从目前已有的成熟框架来看,不同的框架均有自己特定的编程语言。以MPICH为例,只可使用C/C++或Fortran进行编程[4]。对于交叉学科的研究人员来说,一旦选定了框架,即选定了编程语言,无形中增加了他们的学习成本。针对一些专业性强的小众编程语言而言,以NCL(TheNCARCommandLanguage,是一种专门为科学数据处理以及数据可视化设计的高级语言,很适合用在气象数据的处理和可视化上[5])为例,它在气象学和地理学中有着非凡的意义,但是其并不支持分布式计算,也没有相关的分布式计算框架。因此,想要加速一个NCL程序只有2种解决方案,一是使用其他支持分布式计算的语言重构代码,二是增强单机的性能。这在一定程度上增加了科研人员改进的难度。所以,一个能实现真正跨编程语言的分布式并行计算框架显得非常重要。

2技术架构设计

采用Go语言作为核心的开发语言,提供了松耦合的分布式计算服务[6],各节点之间通过KCP协议(一种

可靠的UDP协议)进行协作通信,软件架构的拓扑如图1所示。该架构的核心计算部分为所有的计算节点,控制节点原则上不参与计算,只负责任务下发、结果收集、用户交互等工作。系统将代码编写、计算任务调度等相结合,使用户既可以充分利用所有节点的计算资源,又不用参与繁复的任务下发、调度节点等操作。

其中消息队列系统为整个系统的核心通信枢纽,负责系统内所有消息的识别和转发。

容器引擎[7]作为每个计算任务的运行载体,将各个计算任务之间进行隔离,做到跨编程语言,但语言环境间又互不影响。

控制节点采用前后端分离技术,使用Vue和Ajax技术与后端API接口对接,使用JSON格式进行数据交互。

3系统整体功能结构

针对本系统的功能需求,系统整体功能结构如图

2所示。系统功能模块主要包括控制模块、WebIDE管

用户侧 控制节点 计算节点

节点1

数据交互

计算任务

消息及数据收发

数据交互

数据交互

……

分控制核心

容器通行引擎

数据交互

数据交互

消息及数据收发

消息队列系统

消息及

节点n

计算任务

容器制作

数据收发

数据交互

用户终端

Web访问

控制核心用户交互

容器引擎

WebIDE

数据交互

容器通

数据交互

……

分控制核心

行引擎

数据交互

数据交互

图1技术架构拓扑图

基于消息传递的跨编程语言分布式计算平台

Web

IDE

图2系统整体功能结构

理模块、镜像管理模块、任务管理模块、用户管理模块、消息队列模块和容器引擎模块。

a)控制模块。控制模块作为本系统的核心模块,主要负责连接各个计算节点内的分控制模块,负责监控计算节点的健康状况及其内部任务的实际运行状态,同时负责计算任务下达以及计算结果的收集。

b)WebIDE管理模块。WebIDE模块主要由一个路由转发核心构成,负责将容器内启动的对应code-server(VSCode的Web版)工作端口转发映射给用户浏览器。同时负责WebIDE的新建、删除以及超时未使用回收的工作[8]。

c)镜像管理模块。镜像管理模块主要负责容器所运行的镜像的制作、删除、编辑等操作。

d)

您可能关注的文档

文档评论(0)

新思想与新技术 + 关注
实名认证
文档贡献者

新思想与新技术

1亿VIP精品文档

相关文档