云服务器 分区基于云计算与多语言的电磁算法动态嵌入系统设计
天津云主机云服务器
为方便您进行讨论和分享,阅读前请辛苦点下关注。我将每日更新优质内容,感谢您的支持~
进入21世纪以来,随着我国向地球深部进军、绿水青山也是金山银山等战略的提出,电法勘探迎来了前所未有的发展机遇。
不论是在传统的石油勘探、地下水和地热资源勘探、工程地质勘查等领域,还是在近年热点研究的地质灾害监测、海洋探测、环境保护等领域,电磁方法勘探都在其中起到重要作用。
多语言混合编程技术
随着计算机技术的不断发展,编程语言也从最早期的机器语言、汇编语言等,发展到了今天的C、C++、Java、C、Fortran等高级程序语言,它们各有特点也存在许多的区别。
自 20 世纪开始到现在,计算机技术的发展也极大得带动了整个地球物理领域计算方法的发展,许多复杂的计算程序依托各种编程语言被研究实现出来,在电磁勘探领域中同样如此。
由于电磁勘探语言对科学运算的各种需要,早期的电磁算法程序是由汇编语言甚至是机器语言开发而成,但是远远不能满足实际科学研究和生产的需要。
随着高级程序语言的出现,这一情况开始发生改变,各种各样的电磁数据处理解释算法使用高级程序语言进行编写,并且具有良好的计算性能,例如大量的电磁数据计算程序就是由第一个高级编程语言Fortran 语言编写。
但是使用单独的计算程序操作太过繁琐,对电磁数据的处理时间长、效率低,实际的生产环境应用中是需要软件平台来对算法程序进行集成。
并且还需要软件平台在集成算法程序的同时具有良好的人机交互能力和可视化能力来方便对电磁数据进行地质解释。
随着各种高级语言的涌现,其自身的特点也不尽相同,对于电磁数据处理解释软件平台而言,有最重要的三个问题需要解决:一是保证计算性能,选择最适用于科学运算的高级编程语言编写程序能够大大提升数据处理运算的速度。
二是软件集成化,要在软件平台中对数据模型、数据管理机制、用户管理等进行统一,在具有良好的用户交互界面下集成所需的各种数据处理算法和基本功能。
三是对不同编程语言编写的电磁算法的统一集成,在不同的时间阶段,不同的研究团队实现电磁数据处理算法使用的编程语言都有所不同,使用广泛的有 Fortran、Matlab、C++等等,并且很多算法都已经十分成熟。
在各种实测数据的处理上都有着很理想的效果,但在适合科学运算的编程语言在设计之初可能就牺牲了建立集成化软件系统的便利性,最典型的就是在电磁数据处理领域广泛使用的Fortran语言。
同时适合于开发软件平台的编程语言在科学运算方面却没有充足的函数库支撑和较快的执行速度。
综合以上三点问题,本章研究了能够同时发挥各种编程语言优点的多语言混合编程技术,并且提出了两种适合于电磁数据计算方面的多语言编程模式。
根据实际应用的需要,机器语言、汇编语言等低级编程语言以及 DBMS(数据库查询语言) 一类的专用编程语言不在讨论范围之内,只讨论高级语言。
高级语言不是二进制代码,不能由计算机所理解,所以高级语言在计算机执行的时候必须通过翻译变成二进制代码。
这种翻译的方式包括编译和解释两种。在翻译方式上高级语言可以分为编译型语言、解释型语言、同时具有二者特点的混合型编程语言。
多语言的电磁云计算模式
总体的设计目标为高度集成现有的电磁数据处理与反演算法,在保证软件系统健壮性、模块稳定性的同时,能够具备良好的人机交互体验、计算速度、结果可视化对比分析能力,并且满足后续的计算组件融合扩展需求。
系统以本地服务器和商业云服务器为底层基础,创建虚拟环境,建立数据管理机制,部罗操作系统和多语言开发编译环境,封装电磁数据处理算法,并发布云计算服务,开发计算机本地客户端访问云资源。
多语言电磁云计算的概念模型主要由几个部分组成,分别是硬件资源、数据资源、计算资源、数据服务、计算服务、多语言电磁云计算中心以及终端。
通过将硬件资源进行多种粒度划分为多个虚拟空间,虚拟空间承载了由硬件资源划分出来的存储、算力等资源,这些虚拟空间按照需要权衡存储性能和计算性能并以此为依据进行划分,存储性能强的作为数据服务器。
采取本地文件存储、或者数据库表等方式存储电磁计算所需的各种数据,部署数据管理系统并开发数据服务计算性能强的作为计算服务器,部署各种语言开发的计算程序,并开发计算服务。
数据服务和计算服务一起构成了多语言云计算中心,向用户终端提供云服务,而用户终端是可以获取云服务的多种形式的终端。
云计算的最终目标是向用户提供云服务,将电磁数据处理搬上云端,发布多元化、多粒度、多耦合性的电磁云计算服务。
镇江云免服务器
通过融合建立分布在多台不同服务器的虚拟化资源或者购买商业云服务,搭建基于公有云和私有云为各个层次的电磁数据处理解释专业从事人员提供服务以满足多种需求。
传统的安装在本地的电磁数据处理软件都是在本地存储电磁数据文件,这种本地存储的方式在电磁数据文件大小不是很大的情况下能够满足一般的需求,用户通过软件提供的文件选择功能进行电磁文件的查找和存取工作。
一旦数据量很大,达到 GB 甚至 TB 的情况时,受限于硬盘的存储空间大小和数据传输性能,造成数据操作速度慢、效率低下,而且还会占用本地的存储资源,影响整个计算机的工作状态。
系统实现及效果分析
C/S 架构下的客户端在多语言电磁云计算总体技术架构的基础之上,结合大型软件结构的要求和特点,采用模块化的设计思路。首先搭建软件核心框架,然后在该核心框架的基础上开发各应用模块。
同时兼顾代码的复用性及高效性,降低互相之间的依赖性,某个模块的变化不会影响软件整体及其它模块,大大提高了系统的可维护性。
根据现代化的软件设计模式,将交互界面、业务模型、数据可视化和云服务调用等分离,遵循高内聚,低耦合的系统开发原则,采用自下而上的分层式开发策略,包括交互界面层、业务处理层、服务调用层。
基于HTTP、TCP/IP 等网络协议发送调用请求获取多语言电磁云服务中心的数据服务和计算服务(JSON),集成数据序列化和反序列化模块对消息数据进行解码和编码。
C/S 架构下的客户端在多语言电磁云计算总体技术架构的基础之上,结合大型软件结构的要求和特点,采用模块化的设计思路。首先搭建软件核心框架,然后在该核心框架的基础上开发各应用模块。
同时兼顾代码的复用性及高效性,降低互相之间的依赖性,某个模块的变化不会影响软件整体及其它模块,大大提高了系统的可维护性。
根据现代化的软件设计模式,将交互界面、业务模型、数据可视化和云服务调用等分离,遵循高内聚,低耦合的系统开发原则,采用自下而上的分层式开发策略,包括交互界面层、业务处理层、服务调用层。
基于HTTP、TCP/IP 等网络协议发送调用请求获取多语言电磁云服务中心的数据服务和计算服务(JSON),集成数据序列化和反序列化模块对消息数据进行解码和编码。
交互界面层充分考虑软件的人机交互需求,为用户提供模块选择、数据操作,参数设置、地电模型建模、等功能,将多源多维异构的电磁数据集成进行一、二维可视化展示。
业务处理层封装软件核心的业务处理模块,协调软件总体框架集成管理各子模块,发出云服务调用请求交由服务访问层进行处理,接收来自服务访问层的解码后数据交由数据整理模块对不同种电磁数据进行转换整理。
采用重载思想实现电磁数据的多维度多角度的可视化业务功能。此外,在能够实现通过云服务调用进行电磁数据处理和反演的同时,客户端本身保留了在本地进行电磁数据处理计算的业务功能。
服务访问层为业务处理层提供支撑,负责接收来自业务处理层的调用请求和电磁数据,将调用请求消息和某处理功能的电磁数据进行序列化/反序列化。
实现上层业务处理层和多语言电磁云服务中心的通信。同时对服务调用过程进行安全检查,建立容错机制,保证云计算服务调用平稳进行。
基于多语言和云计算的电磁数据处理客户端核心功能包括数据预处理、数据处理、成像与反演的整套电磁数据处理过程、多源异构的电磁数据的一、二维可视化、电磁云计算服务的管理调用、子模块集成管理、交互建模、数据整理转换等功能。
金山云高端服务器
根据电磁数据处理系统的整体需求,将对电磁数据的计算处理业务从客户端分离开,包括航空电磁数据预处理、数据处理与成像与反演的各个计算模块。
为了对硬件资源进行充分的利用,使用虚拟化技术进行资源的合理化分配。不同的计算模块的计算复杂度不同,数据预处理和数据处理部分所涉及的处理算法相对来讲比较简单。
而成像与反演需要进行地电模型正演、拟合差计算、迭代收敛等具有相当大的时间复杂度和空间复杂度的计算过程。所以在进行资源分配的时候,根据不同的算力需要分配不同的硬件资源。
按照虚拟实例和多种语言的计算资源一对一(一个虚拟实例对应一种语言) 或者一对多(一个虚拟实例对应多种语言) 的多粒度划分思路,实现电磁计算资源的整合。
在调用多语言电磁云计算服务时,为了实现云端和客户端之间稳定高效的数据传输,需要对数据序列化传输的格式进行规定,进而统一计算服务接口。
结合电磁数据处理的服务化分离需求,采用面向对象的思想,建立一个电磁数据父类,其中包含计算模块名称和输入/输出类型两个父类成员,在对各种电磁数据进行抽象化处理时,均继承自该父类,这样以JSON 传输协议进行数据序列化传输时,就实现了对传输格式的规定。
即每一个电磁数据在进行序列化传输时都分为计算模块名称、输入/输出类型、参数三部分。在进行电磁数据计算服务的开发的时候,就可以按照这种传输格式实现服务接口的统一。
专有云服务器软件

扫码关注
微信好友
关注抖音