CN113227965B - 分布式处理辅助装置、分布式处理辅助方法以及存储介质 - Google Patents
分布式处理辅助装置、分布式处理辅助方法以及存储介质 Download PDFInfo
- Publication number
- CN113227965B CN113227965B CN201980085250.0A CN201980085250A CN113227965B CN 113227965 B CN113227965 B CN 113227965B CN 201980085250 A CN201980085250 A CN 201980085250A CN 113227965 B CN113227965 B CN 113227965B
- Authority
- CN
- China
- Prior art keywords
- application
- logics
- pattern
- source code
- distributed
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000010365 information processing Effects 0.000 claims abstract description 54
- 238000000605 extraction Methods 0.000 claims abstract description 19
- 239000000284 extract Substances 0.000 claims abstract description 13
- 238000005259 measurement Methods 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 239000006057 Non-nutritive feed additive Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 56
- 238000004422 calculation algorithm Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000002922 simulated annealing Methods 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/01—Detecting movement of traffic to be counted or controlled
- G08G1/0104—Measuring and analyzing of parameters relative to traffic conditions
- G08G1/0125—Traffic data processing
- G08G1/0133—Traffic data processing for classifying traffic situation
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/01—Detecting movement of traffic to be counted or controlled
- G08G1/0104—Measuring and analyzing of parameters relative to traffic conditions
- G08G1/0137—Measuring and analyzing of parameters relative to traffic conditions for specific applications
- G08G1/0141—Measuring and analyzing of parameters relative to traffic conditions for specific applications for traffic information dissemination
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/01—Detecting movement of traffic to be counted or controlled
- G08G1/0104—Measuring and analyzing of parameters relative to traffic conditions
- G08G1/0137—Measuring and analyzing of parameters relative to traffic conditions for specific applications
- G08G1/0145—Measuring and analyzing of parameters relative to traffic conditions for specific applications for active traffic flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Analytical Chemistry (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
提供用于高效地决定用于应用的分布式处理的最佳的配置的技术。分布式处理辅助装置辅助基于多个信息处理装置的应用的分布式处理,该分布式处理辅助装置具备:源代码取得部,取得应用的源代码;源代码分割部,将上述源代码分割为多个逻辑;候选提取部,基于上述应用中的上述多个逻辑的处理顺序、和与上述多个信息处理装置的工作环境有关的信息,来提取在上述多个信息处理装置的任意一个中分散配置上述多个逻辑时的该多个逻辑的配置模式的候选;以及最佳模式决定部,从被提取出的上述配置模式的候选中决定最佳的配置模式。
Description
技术领域
本发明的一个方式涉及辅助基于多个信息处理装置的应用的分布式处理的分布式处理辅助装置(DISTRIBUTED PROCESSING ASSISTANCE APPARATUS)、分布式处理辅助方法以及程序。
背景技术
近年来,随着IoT(物联网(Internet-of-Things))的普及,身边的各种机器连接到因特网,从而收集这些机器取得的信息并灵活运用变得容易起来。
基于这样的背景,为了实现信息收集的高效化和响应时间的高速化,对将函数或类等多个应用逻辑(logic)(指对输入数据进行某种处理并输出数据的逻辑,以下简称为“逻辑”)配置在地理上分散的机器上执行的分布式应用(Distributed application)的期待正在提高。
例如,通过将聚合IoT机器发送了的信息的逻辑配置在中继服务器中,可以削减信息收集所需要的通信量。另外,通过在地理上接近应用的使用者的服务器上配置与使用者的终端频繁通信的逻辑,可以缩短应用的响应时间。
这里,为了使应用在多个机器上分散地工作,需要将应用分割为多个逻辑,分散配置在各机器中(例如,参照非专利文献1)。
这里,根据如何分割应用、如何分散配置,应用的性能有很大变化。这是因为,通过机器间的通信进行逻辑间通信、逻辑的处理时间强烈依赖于使其工作的机器的性能。因此,为了使应用性能最大化,需要决定最佳的应用分割以及配置的技术。
关于后者的最佳的配置的决定,一般来说是变换为将应用性能(机器间的通信量、吞吐量、处理时间等)的最大化设为目标函数的线性计划问题,通过计算其最佳解来得到最佳的配置。可是,存在在分割对象的应用或其工作环境巨大的情况下,配置的模式数变为庞大的数,无法在实际时间内计算最佳解的课题。例如,在分割后的处理为100个,配置目的地候选的机器为三个的情况下,其配置模式数存在5.2×1047种。
已知通过使用模拟退火算法(Simulated Annealing)或遗传算法等近似解法来解决这样的课题的技术(例如,参照非专利文献2)。在近似解法中,由于限定进行探索的配置模式,所以与探索全部配置模式的单纯的方法相比可以在短时间内得到应用配置的解。在这样的以往的应用分割以及配置中,首先,将应用的源代码内被定义的函数分割作为一个逻辑,之后,计算配置目的地候选的机器和各函数的配置模式,在其中选出应用性能最高的配置模式的近似解(准最佳解)。
更具体地说,在现有技术中,首先从输入的源代码中识别逻辑(例如,函数或类等),对每个该逻辑,源代码被分割。由此,产生多个逻辑和配置目的地候选机器的组合模式。接着,这些各配置模式中的应用性能被测量。例如,对于各配置模式,将被分割的各逻辑安装在各机器中而使其工作多次,将直至全体处理结束所需要的平均时间设为该函数的处理时间,即该配置模式下的性能值。根据这样处理得到的性能值,通过模拟退火算法或遗传算法等近似解法解线性计划问题(例如,参照非专利文献3)等最优化问题,计算被要求的性能变高的逻辑的配置。例如,根据各配置模式下的通信通信量、全体的处理时间、机器间的网络延迟,将“500毫秒以内的处理时间的配置中,机器间的通信量最小的配置”作为最佳解,计算其近似解。
现有技术文献
非专利文献
非专利文献1:Alex Reznik,et al.,“Developing Software for Multi-AccessEdge Computing,”ETSI White Paper,No.20,Sept.2017.
非专利文献2:Jieyao Liu,et al.,“Application Partitioning Algorithms inMobile Cloud Computing:Taxonomy,Review and Future Directions,”Journal ofNetwork and Computer Applications,vol.48,2015.
非专利文献3:IBM ILOG CPLEX,[online],因特网<URL:http://www.ilog.com/products/cplex/>
发明内容
发明要解决的课题
如上所述,通过使用现有技术,可以高速地计算应用性能变得最高的配置模式的近似解。可是,在现有技术中,由于使用近似解法,所以解的最佳性不被保证。
为了解决该课题,需要不遗漏最佳解并高效地计算应用的配置的方式。
本发明是着眼于上述情况而完成的,其目的在于,提供用于高效地决定用于应用的分布式处理的最佳的配置的技术。
用于解决课题的方案
为了解决上述课题,本发明的第1方式是辅助基于多个信息处理装置的应用的分布式处理的分布式处理辅助装置,其具备:源代码取得部,取得上述应用的源代码;源代码分割部,将上述源代码分割为多个逻辑;候选提取部,基于上述应用中的上述多个逻辑的处理顺序、和与上述多个信息处理装置的工作环境有关的信息,来提取在上述多个信息处理装置的任意一个中分散配置上述多个逻辑时的该多个逻辑的配置模式的候选;以及最佳模式决定部,从被提取出的上述配置模式的候选中决定最佳的配置模式。
发明的效果
按照上述第1方式,在辅助基于多个信息处理装置的应用的分布式处理的分布式处理辅助装置中,应用的源代码被分割为多个逻辑,基于被分割后的逻辑的处理顺序和与信息处理装置的工作环境的信息,来提取对于信息处理装置的逻辑的配置模式的候选,从该候选中决定最佳的配置模式。这样,由于在提取被分割后的逻辑的配置模式的候选后,决定最佳的配置模式,所以与从全部组合相关的配置模式决定最佳解的情况相比,可以高效地决定最佳的配置模式。
即按照本发明,可以提供用于高效地决定用于应用的分布式处理的最佳的配置的技术。
附图说明
图1是表示包含本发明的一个实施方式的分布式处理辅助装置的系统的一个例子的概略结构图。
图2是表示本发明的一个实施方式的分布式处理辅助装置的功能结构的方框图。
图3是表示图2所示的分布式处理辅助装置进行的处理步骤和处理内容的流程图。
图4是表示图2所示的分布式处理辅助装置进行的处理流程的图像的略图。
图5是表示在图2所示的分布式处理辅助装置进行的配置模式的候选的提取中被使用的有向图的图像的图。
图6是表示非最佳的配置模式的一个例子的图。
图7是表示有为最佳解的可能性的配置模式的一个例子的图。
图8是表示在图2所示的分布式处理辅助装置中使用的、用于提取配置模式的候选的算法的一个例子的图。
图9是表示在图8所示的算法内被使用的记号的说明的图。
图10是表示用于说明图8所示的算法的数据流程图的一个例子的图。
图11是表示用于说明图8所示的算法的分组的一个例子的图。
图12是表示图2所示的分布式处理辅助装置的各功能部进行的处理流程的方框图。
图13是表示基于使用了现有技术以及一个实施方式的分布式处理辅助装置的实验的、成为最佳探索的对象的配置模式数的比较结果的图。
图14是表示基于使用了现有技术以及一个实施方式的分布式处理辅助装置的实验的、最佳探索的精度的比较结果的图。
图15是表示将本发明的一个实施方式的分布式处理辅助装置适用于包含回路的数据流程图的例子的图。
具体实施方式
以下,参照附图说明本发明的实施方式。
[一个实施方式]
(结构)
(系统的结构)
图1是表示包含本发明的一个实施方式的分布式处理辅助装置的系统的一个例子的概略结构图。
该系统具备:作为数据的收集元或者输入元装置的终端设备群TD1~TDi(以下,也统称为“终端设备”)以及传感器群SS1~SSj(以下,也统称为“传感器SS”);可从这些装置经由网络NW取得数据的多个云服务器CSV1~CSVn(以下,也统称为“云服务器CSV”);被配置在终端设备TD以及传感器SS和云服务器CSV之间的多个边缘服务器ESV1~ESVm(以下,也统称为“边缘服务器ESV”);以及可经由网络NW与这些各种装置通信的一个实施方式的分布式处理辅助装置1。
在网络NW中,例如包含因特网等公共网、以及用于接入该公共网的接入网。在接入网中还包含连接边缘服务器ESV之间的边缘网络ENW。边缘网络ENW例如由LAN(Local AreaNetwork,局域网)或者无线LAN构成。但是,边缘服务器ESV也可以不经由边缘网络ENW而直接与因特网连接。
终端设备TD是具有通信功能、且可经由1个或者多个边缘服务器ESV来利用云上的应用的信息处理装置,例如为智能手机或个人计算机。在传感器SS中包含汽车、其它的IoT机器。通过传感器SS测量或者检测到的传感数据经由LAN或无线LAN、Bluetooth(注册商标)等采用了省电无线数据通信标准的无线接口,或者经由终端设备TD,被发送至被预先设定作为发送目的地的边缘服务器ESV。图示的终端设备TD以及传感器SS只不过是一例,可以是固定式装置也可以是移动式装置,能够包含任意个数的多种多样的装置。另外,终端设备TD以及传感器SS不一定需要经由边缘服务器ESV或者边缘网络ENW,也可以经由网络NW直接接入到云服务器CSV。
边缘服务器ESV对于在大规模数据中心上展开的云环境,构成更靠近用户配置的小规模数据中心,例如包含服务器计算机或个人计算机等各种信息处理装置。
云服务器CSV由云计算机等信息处理装置构成,并经由网络NW接收并累积从边缘服务器ESV发送的传感数据。
云服务器CSV还提供可在云环境中利用的应用。在云服务器CSV所提供的应用中包含分布式应用。分布式应用除了能够基于该云服务器CSV之外,还能够进行基于任意数量的边缘服务器ESV以及终端设备TD的分布式处理。
分布式处理辅助装置1是通过决定那样的分布式应用的配置目的地来辅助应用的分布式处理的装置,是系统管理者等能够操作的服务器计算机或个人计算机。
图2表示图1所示的一个实施方式的分布式处理辅助装置1的功能结构。
分布式处理辅助装置1具有通信接口单元10、处理单元20、存储单元30。
通信接口单元10例如具有有线或者无线接口,能够经由网络NW,在云服务器CSV、边缘服务器ESV、或者终端设备TD之间进行信息的发送接收。
存储单元30是作为存储介质而使用了例如HDD(Hard Disk Drive,硬盘驱动器)或者SSD(Solid State Drive,固态驱动器)等能够随时写入以及读出的非易失性存储器的单元,作为为了实现本实施方式所需要的存储区域,除了程序存储部之外,还具有应用信息存储部31、分割规则存储部32、工作环境信息存储部33。
应用信息存储部31被用于存储与成为分布式处理的对象的应用有关的信息。作为与应用有关的信息,例如包含在应用的源代码中包含的函数的处理顺序、和与该应用的输入输出有关的信息。
分割规则存储部32被用于存储与应用的分割有关的规则。与应用的分割有关的规则,例如是基于应用的开发者定义的函数等信息,来用于识别可分割的逻辑而被使用的规则。与应用的分割有关的规则可以预先通过系统管理者等存储在分割规则存储部32中,也可以经由网络NW与分割对象的应用信息一起取得。
工作环境信息存储部33用于存储与可参与分布式处理的信息处理装置(以下,也称为“机器”)的工作环境有关的信息。工作环境信息存储部33例如存储由系统管理者等预先输入的、对于多个机器的每一个机器的与计算能力、存储区域、当前位置等有关的信息。这些信息也可以被经由网络NW取得的最新的信息更新。
但是,上述存储部31~33也可以不必是被内置于分布式处理辅助装置1的存储部,例如也可以是USB存储器等外置存储介质、或是被设置在云中所配置的数据库服务器等的存储装置中的存储部。分布式处理辅助装置1例如可以通过经由通信网络NW接入到上述云的数据库服务器,取得并使用需要的数据。
处理单元20具有未图示的CPU(Central Processing Unit,中央处理单元)或MPU(Micro Processing Unit,微处理单元)等硬件处理器、DRAM(Dynamic Random AccessMemory,动态随机存取存储器)或SRAM(Static Random Access Memory,静态随机存取存储器)等存储器,作为用于实施本实施方式所需要的处理功能,具备源代码取得部21、源代码分割部22、配置模式候选提取部23、最佳模式决定部24。这些处理功能都通过使上述处理器执行上述存储单元30中存储的程序来实现。处理单元20另外也可以通过包含ASIC(Application Specific Integrated Circuit,专用集成电路)或FPGA(field-programmable gate array,现场可编程门阵列)等集成电路的、其它多种形式来实现。
源代码取得部21进行如下处理:经由通信接口单元10,取得应成为分布式处理的对象的应用的源代码。源代码取得部21例如可以构成为,从管理在云上配置的应用的管理服务器(未图示),经由网络NW来接收源代码,也可以构成为经由未图示的输入设备取得由系统管理者等输入的源代码。源代码取得部21另外还进行根据取得的源代码,提取与对象应用有关的信息,存储在应用信息存储部31中的处理。
源代码分割部22进行根据分割规则存储部32中存储的分割规则,从源代码取得部21取得的源代码中识别可分割的逻辑(函数或类等),对于识别出的每个逻辑分割源代码的处理。
配置模式候选提取部23进行如下处理:在由源代码分割部22分割的逻辑和配置目的地机器的配置模式中,提取有可能为最佳解的配置模式的候选。
最佳模式决定部24在由配置模式候选提取部23提取出的配置模式的候选中决定最佳的配置模式,并具备应用性能测量部241和最佳模式选出部242。
应用性能测量部241进行如下处理:对于由配置模式候选提取部23提取出的配置模式的候选的每一个,测量或者计算应用(app)的性能。
最佳模式选出部242进行基于上述测量或者计算出的应用性能,选出得到最佳的性能的配置模式作为最佳的配置模式的处理。
(工作)
接着,说明以上那样构成的分布式处理辅助装置1进行的信息处理工作。图3是表示其处理步骤和处理内容的流程图。
(1)开始触发的接收
通过步骤S1,分布式处理辅助装置1监视有无用于开始决定应用的分散配置的处理的触发。在该状态下,例如应用开发者或者系统管理者等通过管理用终端(未图示)输入分散配置决定的开始请求,若接受该开始请求作为触发,则分布式处理辅助装置1执行以下处理。
(2)源代码的取得
在步骤S2中,分布式处理辅助装置1在处理单元20的控制下,通过源代码取得部21,例如经由网络NW从应用管理服务器(未图示)取得作为分布式处理的对象的应用的源代码。源代码取得部21将取得的源代码传递给源代码分割部22,并且可以使该源代码或者与该应用有关的信息存储在应用信息存储部31中。在与应用有关的信息中,包含应用的源代码中含有的函数的处理顺序、或与至应用的输入数据以及输入源机器、来自应用的输出数据以及输出目的地机器有关的信息。另外,也可以从应用开发者或者系统管理者使用的管理用终端取得应用的源代码。
(3)源代码的分割
接着,在步骤S3中,分布式处理辅助装置1在处理单元20的控制下,通过源代码分割部22,根据分割规则存储部32中预先存储的分割规则,识别所取得的源代码中的可分割的逻辑(例如,函数、类等),将源代码分割为多个逻辑。
(4)配置模式的候选的提取
接着,在步骤S4中,分布式处理辅助装置1进行如下处理:在处理单元20的控制下,通过配置模式候选提取部23,提取有可能为最佳的配置模式作为配置模式的候选。以下,详细地对该处理进行说明。
(4-1)提取处理的概要
在对象应用中的逻辑的处理顺序或数据的输入输出目的地机器的信息已确定,并且以应用的处理时间缩短和机器间的通信量的削减为目的的情况下,存在明显不是最佳的配置模式。
一个实施方式的分布式处理辅助装置1在提取配置模式的候选时,基于应用中的逻辑的处理顺序、以及将数据输入至分割对象的应用的输入源机器及来自该应用的数据的输出目的地机器的信息,预先将明显不是最佳的配置模式除外,仅从重要的模式计算最佳的解。通过这样的提取处理,可以削减配置模式的候选的数量而不遗漏最佳解。
(4-2)基于有向图的非最佳的配置模式的除外
图4是表示一个实施方式的分布式处理辅助装置1进行的处理流程的图像的略图。这里,以逻辑(函数)的处理顺序以及数据的输入用的机器和输出用的机器已确定,并且计算能力以机器Z、机器Y、机器X的顺序依次降低(即,在机器X、Y、Z中,机器Z计算能力最高,机器X计算能力最低)为前提进行说明。
在图4中,应用P的源代码SCp被分割为函数main、函数A、函数B、函数C。这些函数的处理顺序为main、A、B、C的顺序。另外,函数main是输入数据的函数,数据的输入源机器为机器X(例如,智能手机TD),数据的输出目的地机器为机器Z(例如,云服务器CSV)。机器Y是输入输出用的机器X以及机器Z以外的配置目的地候选机器,例如是边缘服务器ESV。
在分割后的函数被分配给机器的配置模式中,考虑多个模式P1~Pn,从这些配置模式中选择最佳解(在图4所示的例子中为模式P59)。
可是,已知在上述前提中,在不希望提高应用全体的处理时间的情况下,在图4所示的配置模式中,配置模式P3不是最佳的配置模式。这是因为,与配置模式P1或者P2相比,成为函数A的下一个应被处理的函数B从计算能力高的机器Z被卸载至计算能力低的机器X那样的配置模式,配置模式P3的处理时间明显比配置模式P1或者P2长。对于模式P4或模式Pn,也由于与上述同样的理由,可以作为不是最佳的配置模式除外(修剪)。
如果将该不是最佳的配置模式(以下,称为“非最佳的配置模式”)一般化,则可以如以下那样表现。
<非最佳的配置模式>
在某个配置模式中,在按照函数的处理顺序以有向边连接了机器间的图(以下,称为“处理流程图”)与以下的图G1或者G2的任何一个都不一致的情况下,该配置模式不是最佳的配置。
(G1)在被配置有输入数据的函数的机器(数据输入源机器)、与被配置有输出数据的函数的机器(数据输出目的地机器)不同的情况下:以数据输入源机器作为始点,并以数据输出目的地机器作为终点,将配置目的地候选机器按照计算能力从低到高的顺序通过1次以下的最短有向通路(directed path)群。
(G2)在数据输入源机器和数据输出目的地机器相同的情况下:将配置目的地候选机器按照计算能力从低到高的顺序通过1次以下的最短有向回路(directed cycle)群。
图5是表示是否为非最佳的配置模式的判断例的略图,示出图4的例子中的配置目的地候选机器的最短有向通路群(有向通路1以及2(任何一个都相当于上述G1))以及配置模式P3的处理流程图。从图5,因为配置模式P3的处理流程图与最短有向通路1和最短有向通路2都不一致(此外,因为也不相当于上述G2),所以被判定为非最佳的配置模式。
(4-3)为非最佳的配置模式的证明
这里,以下在逻辑的处理顺序以及数据输入源机器以及数据输出目的地机器已确定,并且以应用的处理时间缩短或通信量削减为目的的环境中,对与上述图G1或者G2的任何一个都不一致的配置模式不为最佳的证明进行说明。
[假定]
假定配置模式A为最佳解,配置模式A具有与将数据输入源机器作为始点,将数据输出目的地机器作为终点,将配置目的地候选机器按照计算能力从低到高的顺序通过1次以下的最短有向通路群或者最短有向回路群的任何一个都不一致的处理流程图。图6表示这样的配置模式A的一个例子。
[证明]
在图6所示的配置模式A中,将实际地配置有逻辑的机器的集合设为M。由于配置模式A的处理流程图与最短有向通路、回路群的任何一个都不一致,所以配置模式A的处理流程图具有一个以上的、与将集合M中包含的机器设为节点的最短有向通路、回路群相反方向的有向边e。将沿着该有向边e发送数据的逻辑设为la,接收数据的逻辑设为lb。另外,将配置有la的机器(即相当于e的始点的机器)设为ma,将配置有lb的机器(即相当于e的终点的机器)设为mb。
这里,将使逻辑lb从机器mb移动至ma的配置模式设为A’,使得配置模式A中的反向的有向边e消失。图7表示这样的配置模式A’的一个例子。
在最短有向通路、回路群中,各机器按照处理顺序以有向边连接,ma的计算能力比mb高。因此,与配置模式A相比,配置模式A’的逻辑lb的处理时间短,并且沿着有向边e流动的相当于数据量的通信量少。即,配置模式A’成为比配置模式A的处理时间短、通信量也少的配置模式,所以与配置模式A为最佳解这样的假定相矛盾。
由以上可知,可以说具有将数据输入源机器设为始点,将数据输出目的地机器设为终点,将配置目的地候选机器按照计算能力从低到高的顺序通过1次以下的最短有向通路群或者最短有向回路群的任意一个都不一致的处理流程图的配置模式不是最佳的配置模式(为非最佳的配置模式)。
(4-4)算法例
图8表示算法1,作为在一个实施方式的分布式处理辅助装置1中被使用的、用于提取有可能是最佳解的配置模式的算法的一个例子。
图9表示在图8示出的算法1内使用的记号的说明。
图8中示出的算法1的第5、7行的“comb(A,i)”表示从集合A选出了i个时的组合的计算。即,在图8的算法中,在以下的步骤中进行配置模式的提取。
(i)确认输入源机器、输出目的地机器以外的配置目的地候选机器数(第2行)。
(ii)从配置目的地候选机器中,选出i台配置LIO(包含数据的输入输出处理的逻辑群)以外的逻辑的机器(第4行)。将在该各组合中加上了输入输出机器的结果设为MCi(第5、6行)。例如,在配置目的地候选机器X、Y、Z的3台中除去作为输入输出机器的X、Z而选择0台的情况下,成为MC0={(X,Z)},在选择1台的情况下,成为MC1={(X,Y,Z)}。
(iii)与步骤(ii)同样地,从数据流程图(按照函数的处理顺序以有向边连接了函数间的图)的边中,选出i+1个边(第7行)。该边成为被提取的配置模式的处理流程图的边。图10是表示数据流程图的一个例子的图。在从图10所示的数据流程图选出2个边的情况下,成为EC2={(e1,e2),(e2,e3),(e1,e3)}。
(iv)将相当于数据流程图的节点的各逻辑,分成在步骤(iii)中选出的数据流程图的边的始点侧的逻辑群和终点侧的逻辑群(第8行)。图11表示在e2、e3被选出的情况下的数据流程图的一个例子。在图11中,将各逻辑(函数)群分为e2的始点侧的组1和终点侧(e3的始点侧)的组2、e3的终点侧的组3。对在步骤(iii)中计算出的边的每个组合进行该处理。
(v)在LIO中包含的逻辑只能配置在各个输入源机器、输出目的地机器中的前提下,通过计算在步骤(ii)中得到的机器的组合与在步骤(iv)中得到的逻辑的组的组合的直积,计算配置模式。例如,在机器的组合为(X,Z)、(X,Y,Z)2种,逻辑的组的组合为以下6种的情况下:
(g1):(main),(A,B,C)
(g2):(main,A),(B,C)
(g3):(main,A,B),(C)
(g4):(main),(A),(B,C)
(g5):(main,A),(B),(C)
(g6):(main),(A,B),(C)
作为配置模式,得到以下6种。
(p1):(X,Z),((main),(A,B,C))
···将main配置在机器X中,将A、B、C配置在机器Z中
(p2):(X,Z),((main,A),(B,C))
···将main、A配置在机器X中,将B、C配置在机器Z中
(p3):(X,Z),((main,A,B),(C))
···将main、A、B配置在机器X中,将C配置在机器Z中
(p4):(X,Y,Z),((main),(A),(B,C))
将main配置在机器X中,将A配置在机器Y中,将B、C配置在机器Z中
(p5):(X,Y,Z),((main,A),(B),(C))
将main、A配置在机器X中,将B配置在机器Y中,将C配置在机器Z中
(p6):(X,Y,Z),((main),(A,B),(C))
将main配置在机器X中,将A、B配置在机器Y中,将C配置在机器Z中
(5)最佳配置模式的决定
在如以上那样提取了配置模式的候选后,接着在图3的步骤S5中,分布式处理辅助装置1在处理单元20的控制下,通过最佳模式决定部24的应用性能测量部241,对被提取出的配置模式的候选的每一个测量或者计算使分布式应用工作时的应用性能。在一个实施方式中,应用性能测量部241测量或者计算直至该应用的全部处理结束为止所需要的时间、机器(信息处理装置)间的通信量、以及机器间的网络延迟中的至少1个作为应用性能。
接着,在步骤S6中,分布式处理辅助装置1通过最佳模式决定部24的最佳模式选出部242,并基于测量或者算出的应用性能,来决定得到最佳的性能的配置模式作为最佳的配置模式。例如,最佳模式选出部242被构成为,基于由应用性能测量部241算出的、直至全部处理结束所需要的时间,来选出该时间最短的配置模式作为最佳的配置模式。或者,最佳模式选出部242被构成为,选出机器间的通信量最少的配置模式、或者机器间的网络延迟最少的配置模式作为最佳模式。这样,通过系统管理者等任意地设定最佳模式决定部24的结构,能够决定与分布式处理系统的目的相应的最佳的配置模式。
图12表示使应用的性能提高的配置模式被决定之前的各功能部的处理流程的一个例子。
首先在步骤S101中,一个实施方式的分布式处理辅助装置1在源代码分割部22的控制下,从输入的应用P的源代码中识别逻辑(例如,函数或类等),对每个该逻辑分割源代码。
接着,在步骤S102中,分布式处理辅助装置1在配置模式候选提取部23的控制下,根据被分割的各逻辑和应用的工作环境的信息(配置目的地候选机器及其计算能力),仅提取有可能为最佳解的配置模式作为候选。这里,例如通过使用图8所示的算法1提取有可能为最佳解的配置模式,可以修剪非最佳的配置模式。
接着,在步骤S103中,分布式处理辅助装置1在应用性能测量部241的控制下,测量在提取出的配置模式的每一个中执行了分布式应用的情况下的应用性能值。
接着,在步骤S104中,分布式处理辅助装置1通过在最佳模式选出部242的控制下,基于测量出的应用性能值,仅全部探索被提取出的配置模式,可以选出被要求的性能最高的逻辑的配置模式。
在图12所示的例子中,如图4所示的最佳模式P59那样,对机器X配置main函数以及函数A,对机器Y配置函数B,对机器Z配置函数C的配置模式被决定作为最佳解。
(有效性的验证)
为了确认在以上说明的技术的有效性,进行了设想以下的环境的模拟实验。
·配置目的地候选机器为5台,输入源机器设为计算能力最低的机器,输出目的地机器设为计算能力最高的机器。
·分割、配置对象的应用是具有2~10个函数的应用,各函数设为被依次调用的函数。包含输入处理的函数是相当于数据流程图的根的函数,包含输出处理的函数是相当于数据流程图的叶的函数。
·各函数的处理时间随机设定,使得被配置在计算能力越高的机器上,时间越短。函数间的通信量随机设定,使得通信量越多,机器间的通信延迟变得越大。
在以上的环境中,一边每次改变随机数一边进行100次的试行,计算出以下的指标的平均值。
(指标1)配置模式数:各函数和配置目的地候选机器的组合数
(指标2)精度:配置模式中包含最佳解的比例。将包含的情况设为1,将不包含的情况下设为0。
另外,作为比较方法,适用了探索全部配置模式的单纯方式(naive)、和模拟退火算法(SA)(Verbelen,Tim,et al.,“Graph partitioning algorithms for optimizingsoftware deployment in mobile cloud computing,”Future Generation ComputerSystems,vol.29,No.2,pp.451-459,2013.参照)。模拟退火算法是从随机选择的初始解,向得到其性能变好的解的方向进行探索,将探索了一定次数时得到的解作为近似解输出的方式。在本实验中,将模拟退火算法中的探索次数设定为与在发明技术中得到的配置模式数相同的值而进行了评价。
图13是表示使用了单纯方式(naive)、和基于一个实施方式的分布式处理辅助装置1的提案方式(proposed)时的、指标1的比较结果的图。横轴表示函数的数量,纵轴表示成为最佳探索的对象的配置模式的数量。如图13所示,可知与探索全部配置模式的单纯方式(naive)比较,在提案方式(proposed)中可以大幅度地削减配置模式数量。特别是,在配置模式数多的10个函数的情况下,基于单纯方式(naive)的全部的配置模式数为390种、625种,相对于此,使用提案方式(proposed)提取出的配置模式数为495种,可以将配置模式数削减99%以上。
图14是表示使用了模拟退火算法(SA)、基于一个实施方式的分布式处理辅助装置1的提案方式(proposed)时的、指标2的比较结果的图。横轴表示函数的数量,纵轴表示最佳探索的精度。如图14所示,在模拟退火算法(SA)中,在函数的数量为2个时得到了高的精度(1.0),但是若函数的数量变为3个,则精度下降至0.2,在函数的数量变为4个以上时精度显著降低。这样,可知在模拟退火算法(SA)中,函数的数量变得越多,最佳解的取得变得越困难。另一方面,在提案方式(proposed)的情况下,即使在函数的数量增加了的情况下,精度维持1,如在上述(4-3)中证明了的那样,可以在全部的试行中取得最佳解。
另外,即使在数据流程图内存在回路的情况下,也可以适用上述实施方式。例如,通过将数据流程图分割为多个有向通路,对该各个有向通路适用上述实施方式,可以削减配置模式数量。
图15表示那样的、对存在回路的数据流程图适用上述实施方式的步骤的一个例子。在该例中,在将A设为始点,将F设为终点的数据流程图FG1内,存在在B分支并在E汇流的回路。首先,将数据流程图FG1分割,如FG2所示那样,得到两个有向通路(有向通路1’以及2’)。然后,首先对有向通路1’适用上述实施方式。
适用了实施方式的结果,假设如FG3所示那样,决定了有向通路1’的最佳的配置模式P1’。在该例中,A、B被配置在机器X中,C、D、E被配置在机器Y中,F被配置在机器Z中。若有向通路1’的最佳的配置模式P1’被决定,则有向通路2’的数据输入源机器(处理B的机器)以及数据输出目的地机器(处理E的机器)也同时决定。因此,以这些输入源机器以及输出目的地机器为前提,可以接着对有向通路2’适用实施方式。在图15的例子中,对有向通路2’,B被配置在机器X中,E被配置在机器Y中。有向通路2’中包含的G、H、I还没有被决定配置,所以用虚线进行图示。
这样,即使在数据流程图内存在回路的情况下,也可以容易地适用上述实施方式。
(效果)
如以上详细叙述的那样,在本发明的一个实施方式中,取得应用的源代码,该源代码被分割至多个逻辑,并基于应用中的这些多个逻辑的处理顺序和与多个信息处理装置的工作环境有关的信息,来提取在信息处理装置的任意一个中分散配置多个逻辑时的配置模式的候选。然后,从该被提取出的候选中,决定用于配置分布式应用的各逻辑的最佳的配置模式。
在将为了使分布式应用的性能提高所需要的应用的各逻辑的配置问题作为最优化问题来解的情况下,通常,在解的最佳性与进行探索的配置模式数量之间存在权衡。在要使用以往的近似解法计算最佳的配置模式的情况下,虽然能够进行高速计算,但是无法保证解的最佳性,难以取得最佳的配置模式。
对于该课题,在一个实施方式中,通过着眼于应用内的逻辑的处理顺序、配置目的地候选机器的计算能力、以及应用的配置问题中的目标函数的关系性,在保留最佳解,同时大幅度地削减进行探索的配置模式数量上取得了成功。即,仅提取有可能为最佳的配置模式(反过来说,将没有可能性的配置模式除外(修剪)),使得大幅度地削减进行探索的配置模式数量,所以可以不遗漏最佳解地、高效并且高速地计算最佳的应用的分散配置。
另外,如上所述,即使在数据流程图内存在回路的情况下,也可以适用实施方式,可以不遗漏最佳解地削减配置模式数量。
[其它实施方式]
另外,本发明不限于上述实施方式。
例如,在上述实施方式中,作为分布式应用的配置目的地,举出机器X、机器Y、机器Z进行了说明。特别是在上述实施方式中,举出机器X为智能手机等终端设备TD,机器Y为边缘服务器ESV,机器Z为云服务器CSV的例子进行了说明,但是不限于此。例如,能够将分布式应用的配置目的地的机器X、机器Y、机器Z全部设为云服务器CSV、边缘服务器ESV、或者智能手机,进而也能够将分布式应用的配置目的地的机器X、机器Y、机器Z设为云服务器CSV、边缘服务器ESV、以及智能手机中的2个。
配置目的地机器的数量不限于2个或者3个,可以根据希望的应用性能设定任意的数量。
同样,对于源代码的分割规则,不限于应用的开发者定义的函数单位下的分割,也可以设定任意的基准,使得被分割为更大的单位或者更小的单位。
或者,也可以将分布式处理辅助装置1具有的各部21~24分散配置到云计算机、边缘路由器等,通过这些装置相互合作进行上述处理。
此外,对用于提取有可能为最佳解的配置模式的候选的算法的细节等,也能够在不脱离本发明的要旨的范围内进行各种变形而实施。
例如,作为上述实施方式的第1方式,能够使得辅助多个信息处理装置的应用的分布式处理的分布式处理辅助装置1具有:源代码取得部21,取得上述应用的源代码;源代码分割部22,将上述源代码分割为多个逻辑;候选提取部23,基于上述应用中的上述多个逻辑的处理顺序和与上述多个信息处理装置的工作环境有关的信息,来提取在对上述多个信息处理装置的任意一个分散配置上述多个逻辑时的该多个逻辑的配置模式的候选;以及最佳模式决定部24,从上述提取出的配置模式的候选中决定最佳的配置模式。
作为第2方式,能够在上述第1方式中,上述候选提取部23使用有向图,将非最短路径的配置模式除外,由此来提取上述配置模式的候选,所述有向图将上述多个信息处理装置设为节点,并将确定上述应用中的上述多个逻辑的处理顺序的有向边设为路径。
作为第3方式,能够在上述第1方式中,上述候选提取部23使用有向图提取最短路径的配置模式作为上述配置模式的候选,上述有向图将上述多个信息处理装置按照计算能力从低到高的顺序排列,并将排列后的装置设为节点,将确定上述应用中的上述多个逻辑的处理顺序的有向边设为路径。
作为第4方式,能够在上述第1方式中,上述最佳模式决定部24具有:性能测量部241,对于上述提取出的配置模式的候选的每一个候选,测量使上述应用工作时的全部处理所相关的应用性能;以及最佳模式选出部242,基于上述应用的性能的测量结果,从上述配置模式的候选中选出带来最好的性能的配置模式。
作为第5方式,能够在上述第4方式中,上述性能测量部241进一步测量直至全部处理结束所需要的时间、上述信息处理装置间的通信量、以及上述信息处理装置间的网络延迟中的至少1个,作为上述应用性能。
按照上述实施方式,在辅助基于多个信息处理装置的应用的分布式处理的分布式处理辅助装置中,应用的源代码被分割为多个逻辑,基于被分割后的逻辑的处理顺序和与信息处理装置的工作环境有关的信息,来提取对于信息处理装置的逻辑的配置模式的候选,从该候选中决定最佳的配置模式。这样,在提取被分割后的逻辑的配置模式的候选后,决定最佳的配置模式,所以与从全部的组合的配置模式决定最佳解的情况相比,可以高效地决定最佳的配置模式。
此外,按照上述实施方式,使用将作为被分割后的逻辑的配置目的地的信息处理装置设为节点,并以有向边表示逻辑的处理顺序的有向图,通过将非最短路径除外来提取配置模式的候选。这样,通过将没有可能是最佳解的非最短路径除外(修剪),能够将有可能是最佳解的配置模式维持作为候选,同时削减探索对象的数量,可以执行高效的最佳探索。
此外,按照上述实施方式,使用将信息处理装置按照计算能力从低到高的顺序排列,并将排列后的装置设为节点,以有向边表示逻辑的处理顺序的有向图,将取得最短路径的配置模式提取作为配置模式的候选。这样,作为有向图的节点,使用将信息处理装置按照计算能力变高的顺序排列的节点来提取最短路径作为候选,所以可以将随着逻辑的处理推进,从计算能力高的信息处理装置卸载至计算能力低的信息处理装置那样的非最佳解除外,可以执行高效的最佳探索。
此外,按照上述实施方式,对于提取出的配置模式的候选的每一个测量使应用工作时的应用性能,基于该测量结果来选出最佳的配置模式。这样,由于从被提取出的配置模式的候选中,基于应用的性能来选出最佳的配置模式,所以可以进行可靠性高的最佳解的探索。
此外,按照上述实施方式,作为应用性能,测量对于全部处理所需要的时间、信息处理装置间的通信量、以及网络延迟中的至少1个。这样,由于从被提取出的配置模式的候选中,基于作为应用全体的处理时间、通信量、或者网络延迟来决定最佳的配置模式,所以带来与分布式处理的目的相应的最佳的性能,可以进行可靠性高的最佳解的探索。
以上对特定的实施方式进行了说明,但是这些实施方式只不过是以例示的目的而提示的,没有限定发明的范围的意图。实际上,本说明书中记载的新的实施方式能够以其他各种方式进行具体化。进而,在不脱离发明的范围的情况下,对于本说明书中记载的实施方式的方式也可以施加各种省略、置换以及变更。添加的权利要求以及与它们等效的内容意图是涉及本发明的主旨以及范围内中包含的那样的方式以及变形方式。
标号说明
1…分布式处理辅助装置
10…通信接口单元
20…处理单元
30…存储单元
21…源代码取得部
22…源代码分割部
23…配置模式候选提取部
24…最佳模式决定部
241…应用性能测量部
242…最佳模式选出部
31…应用信息存储部
32…分割规则存储部
33…工作环境信息存储部
Claims (7)
1.一种分布式处理辅助装置,辅助基于多个信息处理装置的应用的分布式处理,
所述分布式处理辅助装置具备:
源代码取得部,取得所述应用的源代码;
源代码分割部,将所述源代码分割为多个逻辑;
候选提取部,基于所述应用中的所述多个逻辑的处理顺序、和与所述多个信息处理装置的工作环境有关的信息,来提取在所述多个信息处理装置的任意一个中分散配置所述多个逻辑时的该多个逻辑的配置模式的候选;以及
最佳模式决定部,从被提取出的所述配置模式的候选中决定最佳的配置模式,
所述候选提取部使用有向图,将非最短路径的配置模式除外,由此来提取所述配置模式的候选,所述有向图将所述多个信息处理装置设为节点,并将确定所述应用中的所述多个逻辑的处理顺序的有向边设为路径。
2.一种分布式处理辅助装置,辅助基于多个信息处理装置的应用的分布式处理,
所述分布式处理辅助装置具备:
源代码取得部,取得所述应用的源代码;
源代码分割部,将所述源代码分割为多个逻辑;
候选提取部,基于所述应用中的所述多个逻辑的处理顺序、和与所述多个信息处理装置的工作环境有关的信息,来提取在所述多个信息处理装置的任意一个中分散配置所述多个逻辑时的该多个逻辑的配置模式的候选;以及
最佳模式决定部,从被提取出的所述配置模式的候选中决定最佳的配置模式,
所述候选提取部使用有向图提取最短路径的配置模式作为所述配置模式的候选,所述有向图将所述多个信息处理装置按照计算能力从低到高的顺序排列,并将排列后的信息处理装置设为节点,将确定所述应用中的所述多个逻辑的处理顺序的有向边设为路径。
3.如权利要求1或2所述的分布式处理辅助装置,其中,
所述最佳模式决定部具备:
性能测量部,对于被提取出的所述配置模式的候选的每一个,测量使所述应用工作时的全部处理所相关的应用性能;以及
最佳模式选出部,基于所述应用的性能的测量结果,从所述配置模式的候选中选出带来最好的性能的配置模式。
4.如权利要求3所述的分布式处理辅助装置,其中,
作为所述应用性能,所述性能测量部测量直至全部处理结束为止所需要的时间、所述信息处理装置间的通信量、以及所述信息处理装置间的网络延迟中的至少1个。
5.一种分布式处理辅助方法,是辅助基于多个信息处理装置的应用的分布式处理的分布式处理辅助装置执行的方法,
所述分布式处理辅助方法具备:
取得所述应用的源代码的过程;
将所述源代码分割为多个逻辑的过程;
基于所述应用中的所述多个逻辑的处理顺序、和与所述多个信息处理装置的工作环境有关的信息,来提取在所述多个信息处理装置的任意一个中分散配置所述多个逻辑时的该多个逻辑的配置模式的候选的过程;以及
从被提取出的所述配置模式的候选中决定最佳的配置模式的过程,
所述提取的过程使用有向图,将非最短路径的配置模式除外,由此来提取所述配置模式的候选,所述有向图将所述多个信息处理装置设为节点,并将确定所述应用中的所述多个逻辑的处理顺序的有向边设为路径。
6.一种分布式处理辅助方法,是辅助基于多个信息处理装置的应用的分布式处理的分布式处理辅助装置执行的方法,
所述分布式处理辅助方法具备:
取得所述应用的源代码的过程;
将所述源代码分割为多个逻辑的过程;
基于所述应用中的所述多个逻辑的处理顺序、和与所述多个信息处理装置的工作环境有关的信息,来提取在所述多个信息处理装置的任意一个中分散配置所述多个逻辑时的该多个逻辑的配置模式的候选的过程;以及
从被提取出的所述配置模式的候选中决定最佳的配置模式的过程,
所述提取的过程使用有向图提取最短路径的配置模式作为所述配置模式的候选,所述有向图将所述多个信息处理装置按照计算能力从低到高的顺序排列,并将排列后的信息处理装置设为节点,将确定所述应用中的所述多个逻辑的处理顺序的有向边设为路径。
7.一种存储介质,存储了使处理器执行权利要求1至权利要求4的任意一项所述的装置的各部的处理的程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018240059 | 2018-12-21 | ||
JP2018-240059 | 2018-12-21 | ||
PCT/JP2019/043067 WO2020129432A1 (ja) | 2018-12-21 | 2019-11-01 | 分散処理支援装置、分散処理支援方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113227965A CN113227965A (zh) | 2021-08-06 |
CN113227965B true CN113227965B (zh) | 2024-04-02 |
Family
ID=71101193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980085250.0A Active CN113227965B (zh) | 2018-12-21 | 2019-11-01 | 分布式处理辅助装置、分布式处理辅助方法以及存储介质 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3901762B1 (zh) |
JP (1) | JP7070710B2 (zh) |
CN (1) | CN113227965B (zh) |
WO (1) | WO2020129432A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022138232A1 (zh) * | 2020-12-23 | 2022-06-30 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0675786A (ja) * | 1992-08-26 | 1994-03-18 | Hitachi Ltd | タスクスケジュリング方法 |
JP2005173788A (ja) * | 2003-12-09 | 2005-06-30 | Ibm Japan Ltd | オートノミック・コンピューティングシステム、実行環境制御方法及びプログラム |
CN106575225A (zh) * | 2014-12-11 | 2017-04-19 | 株式会社日立制作所 | 模块划分辅助装置、方法和程序 |
JP2017143365A (ja) * | 2016-02-09 | 2017-08-17 | 日本電信電話株式会社 | アプリケーション配備システム及び方法 |
-
2019
- 2019-11-01 WO PCT/JP2019/043067 patent/WO2020129432A1/ja unknown
- 2019-11-01 JP JP2020561200A patent/JP7070710B2/ja active Active
- 2019-11-01 EP EP19899991.4A patent/EP3901762B1/en active Active
- 2019-11-01 CN CN201980085250.0A patent/CN113227965B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0675786A (ja) * | 1992-08-26 | 1994-03-18 | Hitachi Ltd | タスクスケジュリング方法 |
JP2005173788A (ja) * | 2003-12-09 | 2005-06-30 | Ibm Japan Ltd | オートノミック・コンピューティングシステム、実行環境制御方法及びプログラム |
CN106575225A (zh) * | 2014-12-11 | 2017-04-19 | 株式会社日立制作所 | 模块划分辅助装置、方法和程序 |
JP2017143365A (ja) * | 2016-02-09 | 2017-08-17 | 日本電信電話株式会社 | アプリケーション配備システム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3901762A1 (en) | 2021-10-27 |
WO2020129432A1 (ja) | 2020-06-25 |
CN113227965A (zh) | 2021-08-06 |
JP7070710B2 (ja) | 2022-05-18 |
JPWO2020129432A1 (ja) | 2021-09-09 |
EP3901762B1 (en) | 2023-08-09 |
US20220068126A1 (en) | 2022-03-03 |
EP3901762A4 (en) | 2022-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112352234B (zh) | 用于处理并发属性图查询的系统 | |
Zhao et al. | Efficient shortest paths on massive social graphs | |
Demir et al. | Multiobjective evolutionary clustering of web user sessions: a case study in web page recommendation | |
US20150095351A1 (en) | Dynamic Shuffle Reconfiguration | |
Song et al. | Proxy-guided load balancing of graph processing workloads on heterogeneous clusters | |
Pechlivanidou et al. | MapReduce-based distributed k-shell decomposition for online social networks | |
Kratzke et al. | About automatic benchmarking of iaas cloud service providers for a world of container clusters | |
CN113227965B (zh) | 分布式处理辅助装置、分布式处理辅助方法以及存储介质 | |
Aljawarneh et al. | Efficient spark-based framework for big geospatial data query processing and analysis | |
Cai et al. | Indoor positioning by distributed machine-learning based data analytics on smart gateway network | |
CN102339303B (zh) | 分布式系统 | |
CN110309948A (zh) | 整车物流订单预测方法及装置、物流系统以及计算机可读介质 | |
Zhao et al. | Fast and scalable analysis of massive social graphs | |
Chai et al. | A node-priority based large-scale overlapping community detection using evolutionary multi-objective optimization | |
da Silva et al. | Efficient and distributed dbscan algorithm using mapreduce to detect density areas on traffic data | |
Aksoy et al. | Optimization of real-time wireless sensor based big data with deep autoencoder network: a tourism sector application with distributed computing | |
WO2012051757A1 (en) | Method and tool suite device for identifying modular structure in complex network | |
Sebaa et al. | Multiobjective Optimization Using Cross‐Entropy Approach | |
Liu et al. | Data mining-based model for motion target trajectory prediction | |
Kumar et al. | Classification in a Distributed System-A Study of Random Forest in the Hadoop MapReduce Framework | |
Geng et al. | Research of construction and application of cloud storage in the environment of industry 4.0 | |
Li et al. | Research on large data intelligent search engine based on multilayer perceptive botnet algorithm | |
Alasmari | Optimising Cloud-Based Hadoop 2. x Applications | |
Ji et al. | Scalable multi‐dimensional RNN query processing | |
WO2022199261A1 (zh) | 一种模型推荐的方法、装置和计算机设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |