CN112685150A - 一种多语言程序执行方法、装置及存储介质 - Google Patents
一种多语言程序执行方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112685150A CN112685150A CN202011515868.7A CN202011515868A CN112685150A CN 112685150 A CN112685150 A CN 112685150A CN 202011515868 A CN202011515868 A CN 202011515868A CN 112685150 A CN112685150 A CN 112685150A
- Authority
- CN
- China
- Prior art keywords
- mechanism model
- model
- executor
- task
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 230000007246 mechanism Effects 0.000 claims abstract description 361
- 238000004364 calculation method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 10
- 238000010946 mechanistic model Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种多语言程序执行方法、装置及存储介质。该方法具体包括:首先,获取涉及多个不同语言机理模型的计算任务和相应数据;然后,获取计算任务所涉及的机理模型;之后,根据计算任务和机理模型创建执行计划并根据执行计划执行相应的运算或操作,其中,当运算或操作需要执行机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果。如此,不同计算机编程语言所实现的机理模型通过执行计划的编排和与不同计算机编程语言对应的机理模型执行器可共同协作完成一项计算任务。
Description
技术领域
本发明涉及计算机信息处理领域,尤其涉及一种多语言程序执行方法、装置及存储介质。
背景技术
物联网应用程序的开发过程中,沉淀了大量的机理模型。这些机理模型根据边缘端硬件采集到的数据,使用特定的算法可以获得当前***的运行指标,而这些运行指标则可以成为下一步进行控制或者优化的决策依据。因此,机理模型也成为物联网运行的核心软件组件,或运行于物联网边缘端、或运行于云端。
与此同时,由于物联网应用程序的开发存在多语言程序开发共存的情况,这些机理模型也可以通过各种不同的开发语言来实现,例如,C/java、嵌入式lua语言和云端的python实现的各种机器学习算法等。
在物联网整合性应用中,不同计算机编程语言开发的机理模型之间也可能需要进行互操作。但目前多语言机理模型之间的协作调用机制还很欠缺,即使是Spark这样的大规模分布式数据计算平台,仍然做不到多语言整合性调用,仅能通过pySpark的环境提供基于Python语言的应用,无法实现在python与java/scala语言编写模型互相调用。
因此,多语言机理模型之间往往只能通过消息队列、远程过程调用(PRC)等松耦合方式来实现数据传输和程序调用,这就大大增加了用于协调和处理机理模型之间通信和同步的开发成本和维护成本。
由此可见,如何针对多语言机理模型的之间的数据传输和程序调用,提供一种统一的协作和调用机制和执行方法,仍是物联网整合***中尚待解决的一个技术问题。
发明内容
针对以上问题,本发明实施例提供了一种多语言程序执行方法、装置及存储介质。
根据本发明实施例第一方面,一种多语言程序执行方法,该方法包括:获取计算任务和待计算的数据,其中计算任务涉及至少一个机理模型,机理模型由相同或不同的计算机编程语言实现;获取计算任务所涉及的机理模型;根据计算任务和机理模型创建执行计划;根据执行计划执行相应的运算或操作,其中,当运算或操作需要执行机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,在获取计算任务所涉及的机理模型之前,该方法还包括:接收用于注册机理模型的注册请求,注册请求中携带有机理模型;解析注册请求并从中获取机理模型;获取机理模型的机理模型标识,并将机理模型存储为与机理模型标识对应的机理模型;返回注册结果。
根据本发明实施例一实施方式,注册请求中所携带的机理模型为序列化处理后的机理模型。
根据本发明实施例一实施方式,计算任务中携带有机理模型标识,相应地,获取计算任务所涉及的机理模型,包括:从计算任务中获取机理模型标识;从预先存储的机理模型中,获取与机理模型标识对应的机理模型。
根据本发明实施例一实施方式,执行计划包括并发执行计划,相应地,根据执行计划执行相应的运算或操作,包括:根据并发执行计划,将可并发执行的机理模型发送到对应的机理模型执行器进行并发执行。
根据本发明实施例一实施方式,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果,包括:通过套接字socket向机理模型执行器发送相应的机理模型和待计算的数据,并通过套接字socket接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,任一机理模型是被其它机理模型调用的机理模型,相应地,在接收机理模型执行器返回的计算结果之后,该方法还包括:将计算结果返回给调用任一机理模型的其它机理模型。
根据本发明实施例一实施方式,该方法运行在Spark平台上。
根据本发明实施例第二方面,一种多语言程序执行装置,该装置包括:任务和数据获取模块,用于获取计算任务和待计算的数据,其中计算任务涉及至少一个机理模型,机理模型由相同或不同的计算机编程语言实现;机理模型获取模块,用于获取计算任务所涉及的机理模型;执行计划创建模块,用于根据计算任务和机理模型创建执行计划;执行计划执行模块,用于根据执行计划执行相应的运算或操作,其中,当运算或操作需要执行机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,该装置还包括:注册请求接收模块,用于接收用于注册机理模型的注册请求,注册请求中携带有机理模型;注册请求解析模块,用于从解析注册请求并从中获取机理模型;机理模型存储模块,用于获取机理模型的机理模型标识,并将机理模型存储为与机理模型标识对应的机理模型;注册结果返回模块,用于返回注册结果。
根据本发明实施例一实施方式,机理模型获取模块包括:机理模型标识获取子模块,用于从计算任务中获取机理模型标识;机理模型获取子模块,用于从预先存储的机理模型中,获取与机理模型标识对应的机理模型。
根据本发明实施例一实施方式,执行计划包括并发执行计划,相应地,执行计划执行模块具体用于根据并发执行计划,将可并发执行的机理模型发送到对应的机理模型执行器进行并发执行。
根据本发明实施例一实施方式,执行计划执行模块具体用于通过套接字socket向机理模型执行器发送相应的机理模型和待计算的数据,并通过套接字socket接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,该装置还包结果返回模块,用于将计算结果返回给调用任一机理模型的其它机理模型。
根据本发明实施例第三方面,一种计算机存储介质,在计算机存储介质上存储了程序指令,程序指令在运行时用于执行上述任一项的多语言程序执行方法。
本发明实施例提供一种多语言程序执行方法、装置及存储介质,该方法包括:首先,获取涉及多个不同语言机理模型的计算任务和相应数据;然后,获取计算任务所涉及的机理模型;之后,根据计算任务和机理模型创建执行计划并根据执行计划执行相应的运算或操作,其中,当运算或操作需要执行机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果。如此,不同计算机编程语言所实现的机理模型通过执行计划的编排和与不同计算机编程语言对应的机理模型执行器共同协作完成一项计算任务,大大简化了不同计算机编程语言实现的机理模型之间的协同方式和调用过程。
需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1为本发明实施例多语言程序执行方法的实现流程示意图;
图2为本发明实施例多语言程序执行方法一应用的具体实现流程示意图;
图3为本发明实施例多语言程序执行装置的组成结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
图1示出了本发明实施例一种多语言程序执行方法的实现流程。参考图1,该方法包括:操作110,获取计算任务和待计算的数据,其中计算任务涉及至少一个机理模型,机理模型由相同或不同的计算机编程语言实现;操作120,获取计算任务所涉及的机理模型;操作130,根据计算任务和机理模型创建执行计划;操作140,根据执行计划执行相应的运算或操作,其中,当运算或操作需要执行机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果。
其中,多语言程序指由多个由不同计算机编程语言实现的计算机程序,例如,有些程序是由Java实现的,有些程序是由C实现的,还有些程序是由嵌入式lua语言实现的等。
这些多语言程序的执行通常是为了完成一项共同的计算任务,并且在执行过程中,需要多个不同计算机编程语言实现的计算机程序相互调用或交换数据。
本文中提到的计算主要指计算机中广义的计算,即由计算机完成的各种运算或操作等。
在本发明实施例一种多语言程序执行方法中,不同计算机编程语言开发的机理模型之间的互操作和数据传输并不是通过程序之间的直接调用(例如,PRC)或消息队列来实现的,而是借助于可通过程序调度和执行平台,例如,Spark,通过指定的执行计划来实现各个程序之间的执行顺序和数据交换的。
例如,当用Java实现的机理模型C需要调用Python实现的机理模型A计算某一数据时,并不需要在机理模型C中编写代码来直接调用机理模型A,而只需要指定机理模型A和待计算的数据,交由程序执行和调用平台调用机理模型A来执行即可;而程序执行和调用平台在运行时,会将待计算的数据发送给机理模型A的执行器,并接收机理模型A的执行器所返回的计算结果;之后,机理模型C就可以通过程序执行和调用平台获取到该计算结果。如此,就通过程序执行和调用平台实现了多语言程序的执行和调用。
本发明实施例多语言程序执行方法就是在上述过程中,在程序执行和调用平台上执行的方法。
在操作110中,计算任务主要指按照一定顺序和依赖关系组织和调度各种运算或操作的一系列指令,以得到一个计算结果。具体地,计算任务可以是一个应用程序,也可能是一段执行脚本,甚至可能是用于描述各个程序之间调用关系的一个描述文件等。
机理模型主要指根据对象、生产过程的内部机制或者物质流的传递机理建立起来的白箱模型,相对一般的算法模型,参数较多,但易于调整,具有很强的适应性。
具体到物联网领域,这些机理模型往往是经过长期实际应用不断沉淀得到的。利用这些机理模型可从边缘网络端硬件设备所采集到的数据中得到当前***的各个运行指标,为下一步的***控制或者优化提供决策依据。
具体地,机理模型可以作为计算任务中被调用的另一个应用、函数或服务等。
由于这些机理模型最初往往是为了各自不同的应用而独立开发和运行的,因此常由相同或不同的计算机编程语言来实现。
在上述计算任务中,通常都不会包含实现机理模型的具体代码或运行程序,而仅包含机理模型的标识。
在操作120中,除了机理模型的标识,还需要进一步获取这些机理模型的具体内容,例如,实现机理模型的源程序或可执行程序,或是可以下载机理模型的源程序或可执行程序的网络地址等,这样才能在后续的操作中执行该机理模块。
机理模型的具体内容可以预先存储在某个信息存储***中,例如,数据库等。
在操作130中,执行计划主要指对计算任务中的各个运算或操作进行拆解,得到各个运算或操作的执行顺序或依赖关系,然后根据现有的计算资源,将上述各个运算或操作分配到各个计算资源上以特定的顺序进行并行计算以快速高效获取计算结果的一种方案。
例如,某个计算任务包含有5个运算或操作:A、B、C、D、E。其中,C依赖A;D依赖B;E没有任何依赖;且C、D和E可并发执行,现在正好有三个计算机内核,则可以将A和C分配到第一个计算机内核上运行,并以先运行A再运行C的顺序执行;将B和D分配到第二个计算机内核上运行,并以先运行B再运行D的顺序执行;将E分配到第三个计算机内核上运行。
与此同时,执行计划还需要指定每个程序所接收的数据来源以及计算结果的存放地址等与数据交换相关的各种信息。
在创建执行计划时,机理模型的具体内容也会而作为某一运算或操作加入到执行计划中。
在操作140中,当需要执行这些由相同或不同的计算机编程语言来实现的机理模型时,并不在当前的执行环境中去执行,而是通信接口将机理模型的具体内容发送给运行有机理模型执行器的另一台服务器或可运行程序的容器,由另一台服务器或可运行程序的容器来运行机理模型并将结果返回回来。
其中,机理模型与机理模型执行器的对应关系,可以在通过查找预先建立的对应关系表来获取的;也可以通过识别机理模型具体的实现语言,再获取与该语言对应的机理模型执行器来获取。
如此,在执行包含有多语言程序的执行计划时,程序调度和执行平台,例如Spark,也并不需要具备运行多种不同的计算机编程语言所实现的程序的条件,而只需要具备基本的通信能力和任务调度能力即可通过执行计划的编排和与不同计算机编程语言对应的机理模型执行器共同协作完成一项计算任务,从而大大简化了不同计算机编程语言实现的机理模型之间的协同方式和调用过程。
根据本发明实施例一实施方式,在获取计算任务所涉及的机理模型之前,该方法还包括:接收用于注册机理模型的注册请求,注册请求中携带有机理模型;解析注册请求并从中获取机理模型;获取机理模型的机理模型标识,并将机理模型存储为与机理模型标识对应的机理模型;返回注册结果。
如前所述,计算任务请求本身并不携带机理模型的具体内容,而往往通过机理模型标识号来作为调用或调度的一种指代符号。因此,还需对机理模型的具体内容进行存储和管理。
在本实施方式中,是通过机理模型的注册来实现对机理模型具体内容的存储和管理的。具体包括,由客户端发送注册请求,并在注册请求中提供机理模型的具体内容;服务器端则接收机理模型的注册请求,并将机理模型的具体内容存储在某个信息存储***中,例如数据库、数据文件、LDAP服务器或配置服务器等。
机理模型标识,可以是在注册请求中携带的由客户端指定的,也可以是服务器端自动生成的,如果是后者,则需要在注册结果中返回该机理模型的标识,以便客户端知晓和使用。
根据本发明实施例一实施方式,注册请求中所携带的机理模型为序列化处理后的机理模型。
在本实施方式中,客户端在注册机理模型时,对机理模型的源程序或可执行程序进行了序列化处理,即将机理模型转换为有序字节流,以在传递和保存对象时保证对象的完整性和可传递性。此外,将机理模型转换为有序字节流,还可以更方便地在网络上传输或者保存在本地文件中。
相应地,机理模型执行器获取到的也是序列化处理后的机理模型,因此,机理模型执行器还需要先执行反序列化处理,将有序字节流转换为原始内容,然后才能执行机理模型。
根据本发明实施例一实施方式,计算任务中携带有机理模型标识,相应地,获取计算任务所涉及的机理模型,包括:从计算任务中获取机理模型标识;从预先存储的机理模型中,获取与机理模型标识对应的机理模型。
在本实施方式中,计算任务中会指定机理模型标识,而服务器会从预先存储的机理模型中,找到与之对应的机理模型,而无须在计算任务中携带不同计算机编程语言所实现的机理模型的具体内容。如此,计算任务本身就无须考虑多种计算机编程语言的兼容性。
根据本发明实施例一实施方式,执行计划包括并发执行计划,相应地,根据执行计划执行相应的运算或操作,包括:根据并发执行计划,将可并发执行的机理模型发送到对应的机理模型执行器进行并发执行。
在本实施方式中,将可以并发执行的机理模型发送到对应的机理模型执行器进行并发执行,可进一步提高机理模型的执行效率和运算速度。
根据本发明实施例一实施方式,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果,包括:通过套接字socket向机理模型执行器发送相应的机理模型和待计算的数据,并通过套接字接收机理模型执行器返回的计算结果。
其中,套接字是计算机之间进行通信的一种约定或一种方式,通过这种约定可以实现计算机之间的通信和数据传输。套接字还适用于不同主机上的应用进程之间的双向通信,因此,特别适合本发明实施例多语言程序执行方法中向机理模型执行器发送相应的机理模型和待计算的数据,以及接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,任一机理模型是被其它机理模型调用的机理模型,相应地,在接收机理模型执行器返回的计算结果之后,该方法还包括:将计算结果返回给调用任一机理模型的其它机理模型。
例如,假设计算任务中使用F(G(data))表示机理模型F要使用机理模型G处理数据data后返回的结果,其中,G是Java实现的,F是Python实现的。则在运行时,可先将机理模型F阻塞,然后把机理模型G和data发送给支持Java程序运行的机理模型执行器,得到结果result;然后将机理模型F唤醒,并将机理模型F和result发给支持Python程序运行的机理模型执行器。如此,就实现了不同计算机编程语言实现的机理模型之间的相互调用和数据交换。
根据本发明实施例一实施方式,该方法运行在Spark平台上。
Spark是专为大规模数据处理而设计的快速通用的计算引擎,可用它来完成各种各样的运算,包括SQL查询、文本处理、机器学习等,并剥离了对集群等底层的管理,并自动实现任务拆解和最佳调度,特别适合用来实现本发明实施例一种多语言程序执行方法。
图3就示出了本发明实施例一应用利用Spark平台实现多语言程序执行方法的具体实现流程。
如图3所示,在该应用中,多语言机理模型的执行过程大致可分为语言注册层、Spark驱动、Spark执行和语言执行层四个部分。其中:
在语言注册层,主要通过机理模型输入201和机理模型的注册客户端202预先将机理模型存储到机理模型库中;在提交计算命令时,通过数据输入204和计算提交205对机理模型进行调用。这一部分描述的主要是提供机理模型和调用本发明实施例多语言程序执行方法的客户端的操作。
Spark驱动和Spark执行中的操作是在Spark平台上执行的,其中Spark驱动是实现本发明实施例多语言程序执行方法的一个应用程序,Spark执行是Spark平台对该应用程序的具体执行过程,是运行时的主控程序。
语言执行层,主要负责执行机理模型,不同计算机编程语言实现的机理模型对应不同的机理模型执行器。该机理模型执行器是位于另一台服务器中程序运行容器中的一个应用程序,是通过连接器程序(connector)连接到Spark平台上。在注册机理模型时,本应用会给出实现机理模型所使用的具体的计算机编程语言,如此,在执行机理模型时,即可确定与之对应的机理模型执行器,并将机理模型发送给相应的机理模型执行器。
具体地,多语言机理模型的执行过程包括:
步骤S2010,由机理模型201输入由各种计算机编程语言实现的机理模型;
步骤S2020,由机理模型注册客户端202使用机理模型语言编写的机理模型注册程序进行机理模型注册,将机理模型程序序列化方式,通过socket通信连接将机理模型程序上传到服务端;
步骤S2030,机理模型注册服务端203则接收客户端的机理模型注册请求,并将机理模型存储到机理模型数据库中;
步骤S2040,通过数据输入204进行批数据读取、流数据读取,获取计算数据;
步骤S2050,通过计算提交205提交基于机理模型的计算任务;
步骤S2060,通过模型注册服务206将计算任务提交中涉及到的机理模型从机理模型数据库中提取出来;
步骤S2070,由创建执行计划207将计算任务转换为执行计划,将计算任务中的机理模型计算为步骤S2060中获取的机理模型;
步骤S2080,由执行计划程序208执行计划;
步骤S2090,模型计算服务209将组织执行计划数据与机理模型,将数据与机理模型发送到机理模型执行器210;
步骤S2100,机理模型执行器210接收到机理模型后执行反序列化;
步骤S2110,机理模型执行程序211执行机理模型并将计算结果发送给机理模型数据服务212;
步骤S2120,机理模型数据服务212将计算结果存储在特定的地址或返回给调用程序。
需要说明的是上述本发明实施例一应用实现多语言程序执行方法的具体实现流程仅为示例性说明,并非对本发明实施例实施方式或应用场景的限定,实施者可采用任何适用的实施方式应用于任何适用的应用场景。
进一步地,本发明实施例还提供一种多语言程序执行装置,如图3所示,该装置30包括:任务和数据获取模块301,用于获取计算任务和待计算的数据,其中计算任务涉及至少一个机理模型,机理模型由相同或不同的计算机编程语言实现;机理模型获取模块302,用于获取计算任务所涉及的机理模型;执行计划创建模块303,用于根据计算任务和机理模型创建执行计划;执行计划执行模块304,用于根据执行计划执行相应的运算或操作,其中,当运算或操作需要执行机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向机理模型执行器发送相应的机理模型和待计算的数据,并接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,该装置30还包括:注册请求接收模块,用于接收用于注册机理模型的注册请求,注册请求中携带有机理模型;注册请求解析模块,用于从解析注册请求并从中获取机理模型;机理模型存储模块,用于获取机理模型的机理模型标识,并将机理模型存储为与机理模型标识对应的机理模型;注册结果返回模块,用于返回注册结果。
根据本发明实施例一实施方式,机理模型获取模块302包括:机理模型标识获取子模块,用于从计算任务中获取机理模型标识;机理模型获取子模块,用于从预先存储的机理模型中,获取与机理模型标识对应的机理模型。
根据本发明实施例一实施方式,执行计划包括并发执行计划,相应地,执行计划执行模块304具体用于根据并发执行计划,将可并发执行的机理模型发送到对应的机理模型执行器进行并发执行。
根据本发明实施例一实施方式,执行计划执行模块304具体用于通过套接字socket向机理模型执行器发送相应的机理模型和待计算的数据,并通过套接字socket接收机理模型执行器返回的计算结果。
根据本发明实施例一实施方式,该装置30还包结果返回模块,用于将计算结果返回给调用任一机理模型的其它机理模型。
根据本发明实施例第三方面,一种计算机存储介质,在计算机存储介质上存储了程序指令,程序指令在运行时用于执行上述任一项的多语言程序执行方法。
这里需要指出的是:以上针对多语言程序执行装置实施例的描述和以上针对计算机存储介质实施例的描述,与前述方法实施例的描述是类似的,具有同前述方法实施例相似的有益效果,因此不做赘述。对于本发明对多语言程序执行装置实施例的描述和对计算机存储介质实施例的描述尚未披露的技术细节,请参照本发明前述方法实施例的描述而理解,为节约篇幅,因此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以利用硬件的形式实现,也可以利用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储介质、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储介质、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种多语言程序执行方法,所述方法包括:
获取计算任务和待计算的数据,其中所述计算任务涉及至少一个机理模型,所述机理模型由相同或不同的计算机编程语言实现;
获取所述计算任务所涉及的机理模型;
根据所述计算任务和所述机理模型创建执行计划;
根据所述执行计划执行相应的运算或操作,其中,当所述运算或操作需要执行所述机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向所述机理模型执行器发送相应的机理模型和所述待计算的数据,并接收所述机理模型执行器返回的计算结果。
2.根据权利要求1所述的方法,所述在获取所述计算任务所涉及的机理模型之前,所述方法还包括:
接收用于注册所述机理模型的注册请求,所述注册请求中携带有机理模型;
解析所述注册请求并从中获取所述机理模型;
获取所述机理模型的机理模型标识,并将所述机理模型存储为与所述机理模型标识对应的机理模型;
返回注册结果。
3.根据权利要求2所述的方法,所述注册请求中所携带的机理模型为序列化处理后的机理模型。
4.根据权利要求2所述的方法,所述计算任务中携带有机理模型标识,相应地,所述获取所述计算任务所涉及的机理模型,包括:
从所述计算任务中获取机理模型标识;
从预先存储的机理模型中,获取与所述机理模型标识对应的机理模型。
5.根据权利要求1所述的方法,所述执行计划包括并发执行计划,相应地,根据所述执行计划执行相应的运算或操作,包括:根据所述并发执行计划,将可并发执行的机理模型发送到对应的机理模型执行器进行并发执行。
6.根据权利要求1所述的方法,所述向所述机理模型执行器发送相应的机理模型和所述待计算的数据,并接收所述机理模型执行器返回的计算结果,包括:
通过套接字socket向所述机理模型执行器发送相应的机理模型和所述待计算的数据,并通过套接字socket接收所述机理模型执行器返回的计算结果。
7.根据权利要求1所述的方法,所述任一机理模型是被其它机理模型调用的机理模型,相应地,在接收所述机理模型执行器返回的计算结果之后,所述方法还包括:
将所述计算结果返回给调用所述任一机理模型的其它机理模型。
8.根据权利要求1所述的方法,所述方法运行在Spark平台上。
9.一种多语言程序执行装置,所述装置包括:
任务和数据获取模块,用于获取计算任务和待计算的数据,其中所述计算任务涉及至少一个机理模型,所述机理模型由相同或不同的计算机编程语言实现;
机理模型获取模块,用于获取所述计算任务所涉及的机理模型;
执行计划创建模块,用于根据所述计算任务和所述机理模型创建执行计划;
执行计划执行模块,用于根据所述执行计划执行相应的运算或操作,其中,当所述运算或操作需要执行所述机理模型中的任一机理模型时,获取与实现相应的机理模型的计算机编程语言所对应的机理模型执行器,向所述机理模型执行器发送相应的机理模型和所述待计算的数据,并接收所述机理模型执行器返回的计算结果。
10.一种计算机存储介质,在所述计算机存储介质上存储了程序指令,所述程序指令在运行时用于执行如权利要求1至8任一项所述的多语言程序执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011515868.7A CN112685150A (zh) | 2020-12-21 | 2020-12-21 | 一种多语言程序执行方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011515868.7A CN112685150A (zh) | 2020-12-21 | 2020-12-21 | 一种多语言程序执行方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685150A true CN112685150A (zh) | 2021-04-20 |
Family
ID=75449516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011515868.7A Pending CN112685150A (zh) | 2020-12-21 | 2020-12-21 | 一种多语言程序执行方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685150A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342329A (zh) * | 2021-05-31 | 2021-09-03 | 北京顶象技术有限公司 | 一种多语言融合建模*** |
CN113672402A (zh) * | 2021-07-22 | 2021-11-19 | 杭州未名信科科技有限公司 | 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端 |
CN115826935A (zh) * | 2023-02-14 | 2023-03-21 | 中国航空油料集团有限公司 | 基于统一语言中间件的数字孪生模型集成***及方法 |
CN115981610A (zh) * | 2023-03-17 | 2023-04-18 | 科大国创软件股份有限公司 | 一种基于Lua脚本实现的光伏储能***的综合运算平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158512B1 (en) * | 2013-03-08 | 2015-10-13 | Ca, Inc. | Systems, processes and computer program products for communicating among different programming languages that are hosted on a Java Virtual Machine (JVM) |
CN110633163A (zh) * | 2019-09-26 | 2019-12-31 | 深圳市七星石科技有限公司 | 一种基于多进程服务器的预防应用程序崩溃的开发方法 |
CN110717992A (zh) * | 2019-09-30 | 2020-01-21 | 奇安信科技集团股份有限公司 | 调度模型的方法、装置、计算机***和可读存储介质 |
WO2020233584A1 (zh) * | 2019-05-21 | 2020-11-26 | 星环信息科技(上海)有限公司 | 混合语言任务执行方法、装置及集群 |
-
2020
- 2020-12-21 CN CN202011515868.7A patent/CN112685150A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9158512B1 (en) * | 2013-03-08 | 2015-10-13 | Ca, Inc. | Systems, processes and computer program products for communicating among different programming languages that are hosted on a Java Virtual Machine (JVM) |
WO2020233584A1 (zh) * | 2019-05-21 | 2020-11-26 | 星环信息科技(上海)有限公司 | 混合语言任务执行方法、装置及集群 |
CN110633163A (zh) * | 2019-09-26 | 2019-12-31 | 深圳市七星石科技有限公司 | 一种基于多进程服务器的预防应用程序崩溃的开发方法 |
CN110717992A (zh) * | 2019-09-30 | 2020-01-21 | 奇安信科技集团股份有限公司 | 调度模型的方法、装置、计算机***和可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342329A (zh) * | 2021-05-31 | 2021-09-03 | 北京顶象技术有限公司 | 一种多语言融合建模*** |
CN113672402A (zh) * | 2021-07-22 | 2021-11-19 | 杭州未名信科科技有限公司 | 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端 |
CN113672402B (zh) * | 2021-07-22 | 2024-06-04 | 杭州未名信科科技有限公司 | 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端 |
CN115826935A (zh) * | 2023-02-14 | 2023-03-21 | 中国航空油料集团有限公司 | 基于统一语言中间件的数字孪生模型集成***及方法 |
CN115826935B (zh) * | 2023-02-14 | 2023-04-28 | 中国航空油料集团有限公司 | 基于统一语言中间件的数字孪生模型集成***及方法 |
CN115981610A (zh) * | 2023-03-17 | 2023-04-18 | 科大国创软件股份有限公司 | 一种基于Lua脚本实现的光伏储能***的综合运算平台 |
CN115981610B (zh) * | 2023-03-17 | 2023-06-02 | 科大国创软件股份有限公司 | 一种基于Lua脚本实现的光伏储能***的综合运算平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112685150A (zh) | 一种多语言程序执行方法、装置及存储介质 | |
CN108920259B (zh) | 深度学习作业调度方法、***和相关设备 | |
CN108510082B (zh) | 对机器学习模型进行处理的方法及装置 | |
US10776170B2 (en) | Software service execution apparatus, system, and method | |
US8832130B2 (en) | System and method for implementing on demand cloud database | |
US20120047239A1 (en) | System and Method for Installation and Management of Cloud-Independent Multi-Tenant Applications | |
US9400700B2 (en) | Optimized system for analytics (graphs and sparse matrices) operations | |
US20160188391A1 (en) | Sophisticated run-time system for graph processing | |
US20140181817A1 (en) | Methods and apparatus to manage execution of virtual machine workflows | |
WO2019090993A1 (zh) | 监控***的部署方法、装置、计算机设备及存储介质 | |
CN111901294A (zh) | 一种构建在线机器学习项目的方法及机器学习*** | |
CN105830049A (zh) | 自动化实验平台 | |
CN110851237A (zh) | 一种面向国产平台的容器跨异构集群重构方法 | |
CN112307122B (zh) | 一种基于数据湖的数据管理***及方法 | |
US20240111586A1 (en) | Multi-policy intelligent scheduling method and apparatus oriented to heterogeneous computing power | |
CN111949856B (zh) | 基于web的对象存储查询方法及装置 | |
CN112835714A (zh) | 云边环境中面向cpu异构集群的容器编排方法、***及介质 | |
Blythe et al. | Transparent Grid Computing: A Knowledge-Based Approach. | |
Cai et al. | Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing | |
US11789774B2 (en) | Optimization of workload scheduling in a distributed shared resource environment | |
CN114090242A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN103631635A (zh) | 用于使用预调配的变异模板来创建虚拟机的方法和*** | |
CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
Ali et al. | Supporting bioinformatics applications with hybrid multi-cloud services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |