WO2018235124A1 - 分散配置装置、分散配置システム、および、分散配置方法 - Google Patents

分散配置装置、分散配置システム、および、分散配置方法 Download PDF

Info

Publication number
WO2018235124A1
WO2018235124A1 PCT/JP2017/022465 JP2017022465W WO2018235124A1 WO 2018235124 A1 WO2018235124 A1 WO 2018235124A1 JP 2017022465 W JP2017022465 W JP 2017022465W WO 2018235124 A1 WO2018235124 A1 WO 2018235124A1
Authority
WO
WIPO (PCT)
Prior art keywords
constraint
nodes
execution
arithmetic processing
processing
Prior art date
Application number
PCT/JP2017/022465
Other languages
English (en)
French (fr)
Inventor
真吾 追立
Original Assignee
三菱電機株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201780090971.1A priority Critical patent/CN110770704B/zh
Priority to PCT/JP2017/022465 priority patent/WO2018235124A1/ja
Priority to JP2019524715A priority patent/JP6707198B2/ja
Priority to DE112017007655.2T priority patent/DE112017007655T5/de
Priority to US16/604,803 priority patent/US10747546B2/en
Publication of WO2018235124A1 publication Critical patent/WO2018235124A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Definitions

  • the technology disclosed in the specification relates to, for example, a technology for allocating operation processing to a plurality of operation nodes.
  • FA factory automation
  • aggregating data to a single server increases the processing load on the server and increases the access load on the server, resulting in a tight network around the server.
  • Network stress around the server may cause problems with data analysis not completing within a desired time, ie, within a deadline.
  • arithmetic processing relating to data processing and analysis may be distributed and allocated to a plurality of operation nodes included in the network, that is, distributed.
  • a deadline which is a required time from the start to the end of the computing process
  • a cycle in which the computing process is executed a computing amount or a communication amount are set in advance.
  • There is a method of executing assignment that satisfies a deadline by querying each operation node see, for example, Patent Document 1).
  • Patent Document 1 does not take into consideration the operation processing group related by the leading constraint. Therefore, it is necessary to set an appropriate deadline for each operation process. The setting of the deadline must take into consideration the prior constraints, the amount of data communication, and the execution time of the process, and is difficult to implement manually.
  • an application is used to perform data analysis such as failure prediction by periodically collecting data.
  • the output of data analysis results such as such a failure prediction may often take longer than the data collection cycle.
  • Patent Document 1 it is not possible to set a deadline longer than a cycle or the like because only either the cycle or the deadline is set for each operation process. Therefore, there is a case in which a deadline more than necessary may be provided to the arithmetic processing that may be executed taking longer time than the data collection cycle as in the above processing.
  • the technology disclosed in the present specification is made to solve the problems as described above, and even when the deadline is longer than the period of the arithmetic processing, it is possible to perform the processing between the plurality of arithmetic processing. It is an object of the present invention to provide a technique for allocating operation processing to a plurality of operation nodes while taking into consideration the prior constraints of the above.
  • a plurality of operation nodes performing operation processing on data collected in a production line are connected via a network, and the operation to the plurality of operation nodes is performed
  • a distributed allocation apparatus to which a process is allocated, a network configuration among a plurality of operation nodes, names of operation operations assigned to each operation node, an execution cycle in which each operation process is executed, and a plurality of the above Deadline which is a required time from the start to the end of the arithmetic processing, a leading constraint which defines an execution order among the plurality of the arithmetic processing, an amount of data communication between the plurality of the arithmetic processing, and each of the arithmetic processing
  • the constraint condition equation satisfying the deadline is created based on the execution time of each of the computing processes to be performed and the data communication amount between the plurality of computing processes, and the creating unit is based on the precedence constraint. Calculating an overall cycle based on the execution cycle of each of the operation processes ordered, and If IN is long, the computing node to which the excess computation process to be executed over the entire cycle is assigned is not assigned another said computation process during the execution of the excess computation process in the next entire cycle Create the constraint condition expression.
  • a plurality of operation nodes performing operation processing on data collected in a production line are connected via a network, and a plurality of operation nodes are connected to the plurality of operation nodes
  • the distributed allocation apparatus for allocating the arithmetic processing, and a network configuration connected to the distributed allocation apparatus includes a network configuration between a plurality of the processing nodes, and an operation assigned to each of the processing nodes Name of process, execution cycle in which each operation process is executed, deadline which is a required time from start to end of a plurality of operation processes, and a precedence defining an execution order among the plurality of operation processes
  • the order in which each operation process is performed is determined, and the execution time of each operation process executed based on the order and the data communication amount among the plurality of operation processes are further determined.
  • the constraint condition expression satisfying the deadline is created, and the creation unit is configured to order each of the ordered components based on the leading constraint.
  • An overall period based on the execution period of the arithmetic processing is calculated, and when the deadline is longer than the overall period, the operation node to which an excess operation process to be executed exceeding the entire period is assigned is:
  • the constraint condition expression to which no other arithmetic processing is to be assigned is created during execution of the excess arithmetic processing
  • the network configuration includes a plurality of the arithmetic nodes performing the arithmetic processing, and a plurality of the arithmetic operations.
  • a network switch that connects the nodes.
  • arithmetic processing is allocated to a plurality of arithmetic nodes connected via a network and performing arithmetic processing on data collected in a production line.
  • the method is from the network configuration among the plurality of operation nodes, the name of the operation process assigned to each operation node, the execution cycle in which each operation process is executed, and the start of the plurality of operation processes Input a deadline which is a required time until the end, a leading constraint which defines an execution order among a plurality of the arithmetic processes, an amount of data communication between the plurality of the arithmetic processes, and an execution time of each arithmetic process And creating a constraint condition expression based on each input information, and referring to the network configuration among the plurality of operation nodes, Assignment and schedule of the computing process to each of the computing nodes satisfying the conditions, allocation of the computing process and distributing the schedule to each of the computing nodes, and creation of the constraint condition equation includes a plurality of the computations
  • the order in which each operation process is performed is determined based on the precedence constraint between processes, and further, the execution time of each operation process and the plurality of the operation processes performed based on the order are determined.
  • the deadline is satisfied based on the amount of data communication, and creation of the constraint condition formula calculates an overall period based on the execution period of each of the arithmetic processing ordered based on the leading constraint; If the deadline is longer than the entire cycle, an excess operation process to be executed exceeding the entire cycle is assigned. The said operation node to be, in the next the entire period, be made so as not to assign other of said arithmetic processing during the execution of the excess processing.
  • a plurality of operation nodes performing operation processing on data collected in a production line are connected via a network, and the operation to the plurality of operation nodes is performed
  • a distributed allocation apparatus to which a process is allocated, a network configuration among a plurality of operation nodes, names of operation operations assigned to each operation node, an execution cycle in which each operation process is executed, and a plurality of the above Deadline which is a required time from the start to the end of the arithmetic processing, a leading constraint which defines an execution order among the plurality of the arithmetic processing, an amount of data communication between the plurality of the arithmetic processing, and each of the arithmetic processing
  • the constraint condition equation satisfying the deadline is created based on the execution time of each of the computing processes to be performed and the data communication amount between the plurality of computing processes, and the creating unit is based on the precedence constraint. Calculating an overall cycle based on the execution cycle of each of the operation processes ordered, and If IN is long, the computing node to which the excess computation process to be executed over the entire cycle is assigned is not assigned another said computation process during the execution of the excess computation process in the next entire cycle
  • the constraint condition expression is created. According to such a configuration, the order in which each operation process is performed is determined based on the leading constraint among the plurality of operation processes, and the plurality of operation processes executed based on the order satisfy the deadline as a whole. Thus, a constraint expression is created.
  • a plurality of operation nodes performing operation processing on data collected in a production line are connected via a network, and a plurality of operation nodes are connected to the plurality of operation nodes
  • the distributed allocation apparatus for allocating the arithmetic processing, and a network configuration connected to the distributed allocation apparatus includes a network configuration between a plurality of the processing nodes, and an operation assigned to each of the processing nodes Name of process, execution cycle in which each operation process is executed, deadline which is a required time from start to end of a plurality of operation processes, and a precedence defining an execution order among the plurality of operation processes
  • the order in which each operation process is performed is determined, and the execution time of each operation process executed based on the order and the data communication amount among the plurality of operation processes are further determined.
  • the constraint condition expression satisfying the deadline is created, and the creation unit is configured to order each of the ordered components based on the leading constraint.
  • An overall period based on the execution period of the arithmetic processing is calculated, and when the deadline is longer than the overall period, the operation node to which an excess operation process to be executed exceeding the entire period is assigned is:
  • the constraint condition expression to which no other arithmetic processing is to be assigned is created during execution of the excess arithmetic processing
  • the network configuration includes a plurality of the arithmetic nodes performing the arithmetic processing, and a plurality of the arithmetic operations.
  • a network switch that connects the nodes.
  • the order in which each operation process is performed is determined based on the leading constraint among the plurality of operation processes, and the plurality of operation processes executed based on the order satisfy the deadline as a whole.
  • a constraint expression is created. Therefore, it is not necessary to set an appropriate deadline for each operation process.
  • the deadline is longer than the entire cycle of the plurality of arithmetic processes ordered based on the leading constraint, the operation node to which the excess arithmetic process is allocated is subjected to the excess arithmetic process in the next whole cycle.
  • Constraint expressions are created so that no other arithmetic processing is assigned during execution. Therefore, the deadline is not set shorter than necessary in relation to the execution cycle.
  • arithmetic processing is allocated to a plurality of arithmetic nodes connected via a network and performing arithmetic processing on data collected in a production line.
  • the method is from the network configuration among the plurality of operation nodes, the name of the operation process assigned to each operation node, the execution cycle in which each operation process is executed, and the start of the plurality of operation processes Input a deadline which is a required time until the end, a leading constraint which defines an execution order among a plurality of the arithmetic processes, an amount of data communication between the plurality of the arithmetic processes, and an execution time of each arithmetic process And creating a constraint condition expression based on each input information, and referring to the network configuration among the plurality of operation nodes, Assignment and schedule of the computing process to each of the computing nodes satisfying the conditions, allocation of the computing process and distributing the schedule to each of the computing nodes, and creation of the constraint condition equation includes a plurality of the computations
  • the order in which each operation process is performed is determined based on the precedence constraint between processes, and further, the execution time of each operation process and the plurality of the operation processes performed based on the order are determined.
  • the deadline is satisfied based on the amount of data communication, and creation of the constraint condition formula calculates an overall period based on the execution period of each of the arithmetic processing ordered based on the leading constraint; If the deadline is longer than the entire cycle, an excess operation process to be executed exceeding the entire cycle is assigned. The said operation node to be, in the next the entire period, be made so as not to assign other of said arithmetic processing during the execution of the excess processing.
  • the constraint condition expression is created such that the plurality of arithmetic processing executed based on the leading constraint satisfy the deadline as a whole.
  • the operation node to which the excess arithmetic process is assigned has another arithmetic process during execution of the excess arithmetic process in the next overall cycle. Constraint expressions are created not to be assigned. Therefore, it is not necessary to set an appropriate deadline for each arithmetic processing, and the deadline is not set shorter than necessary in relation to the execution cycle.
  • FIG. 13 is a diagram illustrating the result of assigning the arithmetic processing illustrated in FIG. 5 to the network configuration illustrated in FIG. 12;
  • FIG. 14 is a diagram in which the start time and the end time of data communication between each arithmetic processing are added to the allocation result illustrated in FIG. 13 based on the leading constraint.
  • FIG. 1 is a diagram functionally illustrating the configuration of the distributed arrangement system according to the present embodiment.
  • the distributed arrangement device 100 in the distributed arrangement system is connected to the plurality of operation nodes 200 and the plurality of network switches 300 via the communication path 400.
  • the operation node 200 mainly performs operation processing on data collected on a production line.
  • the distributed arrangement apparatus 100 includes a model input unit 101, a formulation unit 102, a solution derivation unit 103, and a distribution unit 104.
  • the network switch 300 is connected to the distributed device 100, the computing node 200 and other network switches 300 via the communication path 400.
  • the network switch 300 also includes means for relaying data and transferring data.
  • the model input unit 101 includes means for the user to input a model description including the network configuration of the operation node 200 and the operation processing to be executed by the operation node 200.
  • the formulation unit 102 is provided with means for performing formulation from the model description input to the model input unit 101 into a constraint expression, that is, creating a constraint expression.
  • the solution derivation unit 103 refers to the network configuration among the plurality of operation nodes 200, and assigns each operation process satisfying the constraint condition expression to the operation node 200, and a schedule indicating the timing at which each operation process is performed. It comprises means for deriving as a solution.
  • the solution derivation unit 103 includes means for selecting an optimal solution from among a plurality of derived solutions using an objective function specified by the user. When there is one derived solution, the solution derivation unit 103 selects the solution as an optimal solution.
  • the distribution unit 104 includes means for distributing the assignment of the operation processing derived by the solution derivation unit 103 and the schedule to the operation node 200.
  • FIG. 2 is a diagram schematically illustrating the internal configuration of the distribution apparatus 100.
  • the distributed allocation apparatus 100 includes an output unit 111, an input unit 112, a central processing unit (CPU) 113, a memory 114, and a communication device 115.
  • CPU central processing unit
  • the output unit 111 displays the assignment of operation processing and the schedule result that satisfy the constraint condition expression based on the model description input by the user.
  • the input unit 112 includes means for the user to input a model description.
  • the CPU 113 executes formulation of the model description to the constraint condition expression, and performs assignment of operation processing satisfying the constraint condition expression to the operation node 200 and execution of scheduling. Furthermore, the CPU 113 selects an optimal solution from among the derived solutions using an objective function specified by the user.
  • the memory 114 stores an execution program of the distributed allocation apparatus 100.
  • the communication device 115 distributes the assignment of operation processing and the schedule to the operation node 200.
  • FIG. 3 is a diagram schematically illustrating the internal configuration of operation node 200.
  • the computing node 200 includes a CPU 211, a memory 212, and a communication device 213.
  • the CPU 211 executes the arithmetic processing distributed from the distributed allocation apparatus 100.
  • the memory 212 stores the arithmetic processing and the schedule distributed from the distributed allocation apparatus 100.
  • the communication device 213 transmits data generated as a result of arithmetic processing to another arithmetic node 200 connected via a network.
  • model input unit 101 First, the model input unit 101 will be described.
  • the model input unit 101 has a network configuration indicating the relationship between the computing node 200, the network switch 300, and the communication path 400, the communication speed TS of the communication path 400, names of computing processes assigned to each computing node 200, and a plurality of them. Between the preceding constraints that define the execution order among the arithmetic processing, the execution cycle in which each arithmetic processing is executed, the deadline that is the required time from the start to the end of the plurality of arithmetic processing, and the plurality of arithmetic processing A means is provided for inputting an amount of data communication and an execution time of each arithmetic processing.
  • the model input unit 101 may also receive the content of the arithmetic processing, for example, a program that describes the processing operation.
  • FIG. 4 is a diagram exemplifying a network configuration showing the relationship between the processing node 200, the network switch 300, and the communication path 400.
  • FIG. 5 is a view exemplifying a model description regarding the operation processing 500 and the leading constraint 600 between the operation processing 500.
  • FIG. 6 is a diagram conceptually illustrating deadlines of a plurality of arithmetic processing 500.
  • FIG. 7 is a diagram illustrating the amount of data communication between arithmetic processing 500.
  • FIG. 8 is a diagram illustrating an execution time of the arithmetic processing 500.
  • the execution cycle 700 describes that the computation process J1 of the computation process 500 is periodically executed at 30 msec.
  • leading constraint 600 between the operation processing J1 and the operation processing J2 in the operation processing 500 is the data generated after the completion of the operation processing J1 is received after the operation node 200 to which the operation processing J2 is assigned has received. It describes that the arithmetic processing J2 is started.
  • the amount of data transmitted from the operation node 200 to which the operation process J1 is assigned to the operation node 200 to which the operation process J2 is assigned is described as “50 Mbyte” in the “J1 ⁇ J2” line.
  • the name of the arithmetic processing is described in the top row, and the arithmetic node name is described in the leftmost column. Then, “-” is described in the operation node 200 to which the operation processing 500 can not be assigned, and the execution time of the operation processing is described in the operation node 200 to which the operation processing 500 can be assigned.
  • the “execution time of arithmetic processing” is described in the minimum unit set by the distributed allocation apparatus. However, when the execution time of the arithmetic processing 500 actually has a variation, the longest execution time of the variation execution time is described.
  • the name of the operation process is a name for identifying the content of the operation process, and is indicated by, for example, a number or a symbol.
  • the distributed allocation apparatus 100 may automatically measure the execution time of the arithmetic processing 500.
  • the formulation unit 102 derives a constraint condition expression from the model description input to the model input unit 101.
  • the constraint condition equation is an equation that uses the operation nodes 200 assigned by each operation process 500 and the execution start time of each operation process 500 as input parameters, and determines whether the constraints are satisfied or not.
  • the communication speed TS is a parameter directly described in the model description.
  • the completion time Jx_E is a parameter derived from the input parameters of the operation node Jx_N and the start time Jx_S using FIG.
  • the data transmission start time Jx_to_Jy_S is the same as the completion time Jx_E.
  • the data transmission completion time Jx_to_Jy_E since the data transmission completion time Jx_to_Jy_E may be earlier than the start time Jy_S, the data transmission completion time Jx_to_Jy_E is the same as the start time Jy_S.
  • the entire cycle P is one operation process 500 periodically executed, or if a plurality of operation processes 500 having the same cycle are periodically executed, the execution cycle of the operation process It shows. The case where there are two or more types of arithmetic processing 500 periodically executed will be described in the second embodiment described later.
  • the constraint condition expression is an expression that determines whether or not all of the preceding constraints, assignable operation nodes and their execution time constraints, operation node resource constraints, communication path resource constraints, and deadline constraints are satisfied. .
  • constraint expressions derived from all the constraints are called all constraint expressions, and constraint expressions derived from each constraint are simply called constraint expressions.
  • the constraint condition equation regarding the leading constraint 600 is a constraint condition equation in which the start time of the periodically executed operation process 500 is 0, and a constraint condition regarding the execution order between the two operation processes 500 in which the leading constraint 600 is described. It is a formula.
  • the start time J1_S of the operation processing J1 is set to zero.
  • ⁇ constraint expression 1> an expression in which the start time Jx_S of the arithmetic processing Jx periodically executed is 0.
  • Equation 2-1 (Equation 2-2), (Equation 2-3) and (Equation 2-4) are the operation processing J1 and the operation processing J3, the operation processing J2 and the operation processing J4, and the operation
  • the process J3 and the operation process J4 are similarly generated, and those obtained by connecting all these expressions by the logical product AND are taken as the constraint condition expression of the leading constraint, and taken as ⁇ constraint expression 2>.
  • a constraint condition equation for determining the execution time of the operation process 500 is derived.
  • Equation 3-1 corresponds to operation node N1, operation node N2 and operation node N3. In order to satisfy any constraint condition with either, it is set as the connection by logical sum OR.
  • the execution time when the operation process Jx is assigned to the operation node N1 is Tx1
  • the execution time when the operation process Jx is assigned to the operation node N2 is Tx2
  • the execution time when the operation process Jx is assigned to the operation node N3 is Tx3
  • the above constraint condition equation is derived for a plurality of operation processes 500, and a combination of logical product AND is taken as a constraint condition equation of the operation node 200 that can be assigned to the operation process 500 and is ⁇ constraint condition equation 3>. .
  • ⁇ constraint expression 3> is as follows.
  • the resource constraint of the operation node 200 is whether or not the operation node 200 to be assigned is different between the two operation processes 500, and when two operation processes 500 are assigned to the same operation node 200, the execution time Restrict that they do not overlap.
  • the resource constraints of the operation node 200 between the operation processing Jx and the operation processing Jy are as follows.
  • Equation (4-1) described above is derived for all the combinations of the arithmetic processing 500, and connected by the logical product AND is a constraint condition expression for the resource constraint of the operation node 200.
  • a constraint condition expression including the case where the execution of the arithmetic processing 500 exceeds the entire cycle P is derived. Therefore, it is necessary to determine that the calculation process that exceeds the entire cycle P, that is, the excess calculation process does not violate the calculation process and the resource constraints in the next whole cycle P.
  • FIG. 9 is a diagram illustrating a schedule in the case where operation processing J1 and operation processing J2 are assigned to operation node N5, and operation processing J3 and operation processing J4 are assigned to operation node N1.
  • the execution cycle of the operation process J1 is 30 msec, and since the operation process 500 periodically executed is one of the operation processes J1, the entire cycle P is 30 msec.
  • the deadline from the start of the operation processing J1 to the completion of the operation processing J4 is 50 msec as illustrated in FIG.
  • the resource constraint of the operation node 200 is as follows with respect to such an operation process 500 that exceeds the entire cycle P.
  • the communication path 400 can execute data transmission from a plurality of arithmetic processing 500 simultaneously for one communication path 400, and the communication speed TS of the communication path 400 indicates the number of the arithmetic processing 500 performing data transmission simultaneously. Shall be divided equally. Further, when the transmission source and the transmission destination are the same operation node 200, communication does not occur, so there is no resource restriction of the communication path 400.
  • the simultaneous transmission of data by a plurality of arithmetic processes 500 on one communication path 400 is called contention on the communication path 400.
  • contention The simultaneous transmission of data by a plurality of arithmetic processes 500 on one communication path 400.
  • the shortest communication path between the two operation nodes 200 is derived.
  • the shortest communication route is a route in which the sum of the number of operation nodes 200 passing through and the number of network switches 300 in the communication route 400 from the source operation node 200 to the destination operation node 200 is the smallest.
  • FIG. 10 is a diagram exemplifying a network configuration showing the relationship between the processing node 200, the network switch 300, and the communication path 400.
  • the network configuration illustrated in FIG. 10 there are a plurality of routes as exemplified below as candidate routes from the operation node N11 to the operation node N15.
  • the route 1 is the shortest communication route.
  • the shortest communication path is calculated from the model description input by the user, and a table of the shortest communication path between the two operation nodes 200 is generated.
  • FIG. 11 is a diagram illustrating the shortest communication path relating to the network configuration illustrated in FIG. In FIG. 11, when the transmission source and the transmission destination are the same operation node 200, the shortest path is described as "-". The contention of the communication path 400 is determined using FIG.
  • the communication path from operation node N1 to operation node N10 and the communication path from operation node N2 to operation node N10 are both (SW1 ⁇ N4), (N4 ⁇ SW3) and (SW3 ⁇ N10). Communication paths are included. Therefore, these communication paths can be determined to be in competition.
  • the start time and the completion time of all the arithmetic processing 500 are extracted respectively, and T1, T2, T3,.
  • the contention of the communication path 400 is detected within each time interval of T1 to T2, T2 to T3, T3 to T4, ..., and the communication speed is equally divided by the number of data communication in which the contention occurs.
  • FIG. 12 is a diagram illustrating a network configuration.
  • FIG. 13 is a diagram illustrating the result of assigning the arithmetic processing 500 illustrated in FIG. 5 to the network configuration illustrated in FIG. 12.
  • the start time and the end time of each calculation process 500 are indicated by T1, T2, T3,.
  • FIG. 14 is a diagram in which the start time and the end time of the data communication between the respective arithmetic processings 500 are added to the allocation result illustrated in FIG. 13 based on the preceding constraint 600.
  • data transmission from operation processing J1 to operation processing J2 must be completed within the range of “J1 ⁇ J2”. This restriction is taken as the resource restriction of the communication path.
  • the ⁇ constraint expression 5> is the following expression in FIG.
  • the deadline from the start time of the operation process J1 to the completion time of the operation process J4 is the execution time of each operation process 500 and the data communication between the operation processes 500, etc. It shows the constraint that it should be 50 msec or less in consideration.
  • the solution derivation unit 103 derives input parameters that satisfy the constraint condition using all constraint condition expressions derived by the formulation unit 102.
  • the possible range of the operation node Jx_N to which the operation process Jx is assigned, that is, the operation node Jx_N to which the operation process Jx can be assigned is illustrated in FIG.
  • the minimum value of the start time Jx_S is 0, and the maximum value is (overall period P + maximum DL).
  • the maximum DL is the largest value of the deadlines input in the model description.
  • the minimum unit of the start time Jx_S is set in the model input unit 101.
  • the solution derivation unit 103 inputs a combination of the range of values that can be taken by the operation node Jx_N and the range of values that can be taken by the start time Jx_S as input parameters into all the constraint conditions, and determines whether or not the constraints are satisfied. Input parameters that satisfy the constraints are called solutions.
  • the solution deriving unit 103 may exhaustively search for and derive a solution, or may derive a solution by local search.
  • the notification that the solution can not be found indicates that the user needs to add the number of operation nodes 200 or reduce the operation processing 500, or the like.
  • the solution derivation unit 103 uses the objective function O to select an optimal solution.
  • leading-out part 103 selects the said solution as an optimal solution, when the derived
  • the user inputs the objective function O from the input unit 112 in FIG. Then, the solution derivation unit 103 selects which of the solutions maximizing or minimizing the objective function O is to be the optimal solution.
  • the objective function O that minimizes the overall processing time is as follows.
  • the MAX function is a function that returns the largest value among the arguments.
  • the objective function O in the case of using the above equation is the completion time of the operation processing to be finally executed in all the operation processing.
  • the solution that minimizes this objective function O is the solution that minimizes the overall processing completion time.
  • an objective function that minimizes the amount of communication between specific operation nodes may be set.
  • Deliver to 200 The distributing unit 104 performs time synchronization with all the computing nodes 200, and notifies the respective computing nodes 200 of the leading time of the entire cycle P.
  • the execution program which is the content of the arithmetic processing 500 may refer to the one input to the model input unit 101 or may refer to the corresponding execution program stored in an external storage medium. .
  • the computation node 200 stores the distributed start time of the computation process 500 and the execution program of the computation process 500 in the memory 212. Then, based on the actual time, the computation node 200 calculates a time within the overall cycle P where the beginning of the overall cycle P is the time 0, and executes the computation process 500.
  • the time in the entire cycle P is calculated by the following equation.
  • % in the above equation is an operator that obtains the value of the remainder obtained by dividing the left term by the right term.
  • the execution cycle of the arithmetic processing 500 input to the model input unit 101 is one type. However, execution cycles of different lengths may be set for a plurality of arithmetic processes 500.
  • FIG. 15 is a diagram illustrating a model description regarding the leading constraint 600 between the arithmetic processing J11 executed in a cycle of 30 msec, the arithmetic processing J21 executed in a cycle of 20 msec, and the arithmetic processing 500.
  • FIGS. 16 and 17 are diagrams conceptually illustrating deadlines of the arithmetic processing 500 corresponding to the model description illustrated in FIG.
  • the entire cycle P is the least common multiple of each cycle.
  • the entire cycle P is 60 msec, which is the least common multiple of 30 msec and 20 msec.
  • the calculation process J11 is performed twice, and the calculation process J21 is performed three times. Then, in the entire cycle P, the operation processing J11 to be executed first is described as J11 [1], and the operation processing J11 to be executed second is described as J11 [2]. The same applies to the computation process J21.
  • a plurality of operations are similarly performed in the entire cycle P for all the operation processing related by the leading constraint 600 from the operation processing J11 and the operation processing J21, and is similarly referred to as the operation processing Jx [n].
  • ⁇ constraint expression 1> of the start time of the arithmetic processing Jx periodically executed is as follows.
  • Jx [1] is 0, but it may be freely set in the range from 0 to less than (the period of the arithmetic processing Jx).
  • the replacement may be performed across multiple embodiments. That is, the respective configurations illustrated in different embodiments may be combined to produce the same effect.
  • the distributed allocation apparatus 100 is connected to the plurality of operation nodes 200 via the network, and assigns the operation processing 500 to the plurality of operation nodes 200.
  • the operation node 200 performs the operation processing 500 on the data collected in the production line.
  • the distributed arrangement apparatus 100 includes an input unit, a creation unit, a derivation unit, and a distribution unit 104.
  • the input unit corresponds to, for example, the model input unit 101.
  • the creation unit corresponds to, for example, the formulation unit 102.
  • the derivation unit corresponds to, for example, the solution derivation unit 103.
  • the model input unit 101 has a network configuration among a plurality of operation nodes 200, names of operation processing 500 assigned to each operation node 200, an execution cycle 700 in which each operation processing 500 is executed, and a plurality of The deadline is the required time from the start to the end of the operation process 500, the leading constraint 600 that defines the execution order among the plurality of operation processes 500, the amount of data communication between the plurality of operation processes 500, and each operation The execution time of the process 500 is input. Further, the formulation unit 102 creates a constraint condition equation based on the respective information input to the model input unit 101.
  • the solution derivation unit 103 derives the assignment and operation schedule of the operation processing 500 to each operation node 200 that satisfies the constraint condition equation.
  • the distribution unit 104 distributes the assignment and the schedule of the arithmetic processing 500 to the respective arithmetic nodes 200.
  • the formulation unit 102 determines the order in which each operation process 500 is performed based on the leading constraint 600 among the plurality of operation processes 500, and further, in each operation process 500 executed based on the order. Based on the execution time and the amount of data communication between the plurality of arithmetic processing 500, a constraint condition expression that satisfies the deadline is created.
  • the formulation unit 102 calculates the entire cycle based on the execution cycle 700 of each of the arithmetic processing 500 ordered based on the leading constraint 600, and if the deadline is longer than the entire cycle, the entire cycle is exceeded.
  • the operation node 200 to which the excess operation process to be executed is assigned, in the next whole cycle, a constraint condition expression to which no other operation process 500 is assigned while the excess operation process is being executed is created.
  • the distribution apparatus 100 includes the output unit 111 and the input unit 112.
  • the distributed allocation apparatus 100 further includes a CPU 113 that is a processing circuit that executes a program, and a memory 114 that is a storage device that stores the program to be executed. The following operation is realized by the CPU 113 executing the program.
  • a constraint condition expression is created. Then, with reference to the network configuration among the plurality of operation nodes 200, the assignment and operation schedule of the operation processing 500 to each operation node 200 satisfying the constraint condition formula are derived. Then, the allocation and schedule of the operation processing 500 are distributed to the respective operation nodes 200 via the output unit 111.
  • the order of performing each operation process 500 is determined based on the leading constraint 600 among the plurality of operation processes 500, and the execution of each operation process 500 executed based on the order is further performed. The deadline is satisfied based on the time and the data communication amount between the plurality of arithmetic processing 500.
  • the entire cycle based on the execution cycle 700 of each operation process 500 ordered based on the leading constraint 600 is calculated, and when the deadline is longer than the entire cycle, the entire cycle is exceeded.
  • the operation node 200 to which the excess operation process to be executed is assigned is not assigned another operation process 500 during the execution of the excess operation process in the next whole cycle.
  • the order in which each operation process 500 is performed is determined based on the leading constraint 600 among the plurality of operation processes 500, and the plurality of operation processes 500 executed on the basis of the order as a whole Constraint expressions are created to meet deadlines. Therefore, it is not necessary to set an appropriate deadline for each operation process 500.
  • the deadline is longer than the entire cycle of the plurality of operation processes 500 ordered based on the leading constraint 600, the operation node 200 to which the excess operation process is assigned is exceeded in the next entire cycle.
  • a constraint condition expression is created so as not to assign another arithmetic process 500 during the execution of the arithmetic process. Therefore, the deadline is not set shorter than necessary in relation to the execution cycle.
  • the communication speed between the plurality of operation nodes 200 is further input to the model input unit 101. Then, when a plurality of data communications occur simultaneously among a plurality of computing nodes 200, the formulation unit 102 equally divides the communication speed among the plurality of computing nodes 200 by the number of the data communications that occur simultaneously, and generates a constraint condition equation. Create According to such a configuration, the constraint condition expression can be created in consideration of the resource constraint in the communication path 400.
  • the execution period 700 of each of the arithmetic processing 500 ordered based on the leading constraint 600 is different according to the embodiment described above, the least common multiple of the plurality of execution periods 700 Is a whole cycle, and a constraint condition expression that causes each operation process 500 to be repeatedly executed corresponding to each execution cycle 700 within the whole cycle is created. According to such a configuration, even if execution cycles of different lengths are set, the length of the entire cycle is restricted so that each operation process 500 is repeatedly executed within the entire cycle. It can be set appropriately in the formula.
  • the distributed system includes the distributed device 100 and a network configuration connected to the distributed device 100.
  • the network configuration includes a plurality of operation nodes 200 that perform operation processing 500, and a network switch 300 that connects the plurality of operation nodes 200.
  • the constraint condition expression is created such that the plurality of arithmetic processing 500 executed based on the leading constraint 600 satisfy the deadline as a whole.
  • the operation node 200 to which the excess operation process is assigned has another operation during execution of the excess operation process in the next entire cycle. Constraint expressions are created so as not to assign the process 500. Therefore, while setting appropriate deadlines for the plurality of operation processes 500, the plurality of operation processes 500 can be distributed and arranged to the plurality of operation nodes 200 in the network configuration.
  • the network configuration among the plurality of operation nodes 200, the name of the operation processing 500 assigned to each operation node 200, and each operation processing 500 are executed.
  • a deadline which is a required time from the start to the end of a plurality of operation processes 500, a leading constraint 600 defining an execution order among the plurality of operation processes 500, and a plurality of operation processes 500.
  • the data communication amount and the execution time of each arithmetic processing 500 are input. Then, a constraint condition expression is created based on the input information.
  • the assignment and operation schedule of the operation processing 500 to each operation node 200 satisfying the constraint condition formula are derived.
  • the assignment and schedule of the computing process 500 are distributed to each computing node 200.
  • the order in which each operation process 500 is performed is determined based on the leading constraint 600 among the plurality of operation processes 500, and each operation process executed further based on the order The deadline is satisfied based on the execution time 500 and the data communication amount between the plurality of arithmetic processing 500.
  • the entire cycle based on the execution cycle 700 of each operation process 500 ordered based on the leading constraint 600 is calculated, and when the deadline is longer than the entire cycle, the entire cycle is exceeded.
  • the operation node 200 to which the excess operation process to be executed is assigned is not assigned another operation process 500 during the execution of the excess operation process in the next whole cycle.
  • the constraint condition expression is created such that the plurality of arithmetic processing 500 executed based on the leading constraint 600 satisfy the deadline as a whole.
  • the operation node 200 to which the excess operation process is assigned has another operation during execution of the excess operation process in the next entire cycle.
  • Constraint expressions are created so as not to assign the process 500. Therefore, there is no need to set an appropriate deadline for each operation process 500, and the deadline is not set shorter than necessary in relation to the execution cycle.
  • each component in the embodiments described above is a conceptual unit, and within the scope of the technology disclosed in the present specification, one component is composed of a plurality of structures. , A case where one component corresponds to a part of a structure, and a case where a plurality of components are provided in one structure.
  • each component in the embodiment described above includes a structure having another structure or shape as long as the same function is exhibited.
  • each component described in the embodiment described above is assumed as software or firmware, or as hardware corresponding thereto, and in both concepts, each component is a “part”. Or “processing circuit” or the like.
  • the technology disclosed in this specification may be an aspect such as a system when each component is distributed and provided in a plurality of devices.
  • the memory 114 is shown in FIG. 2 as being installed in the distributed arrangement apparatus, it may be an external functional unit. In that case, the function of the distributed arrangement device may be achieved as a whole by the mutual interaction between the other functional units in the distributed arrangement device and the external functional unit.
  • DESCRIPTION OF SYMBOLS 100 distributed arrangement apparatus, 101 model input part, 102 formulation part, 103 solution derivation part, 104 distribution part, 111 output part, 112 input part, 113, 211 CPU, 114, 212 memory, 115, 213 communication device, 200 calculation Nodes, 300 network switches, 400 communication paths, 500 arithmetic processing, 600 leading constraints, 700 execution cycles.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • General Factory Administration (AREA)

Abstract

演算処理の周期よりもデッドラインが長い場合であっても、複数の演算処理間の先行制約を考慮しつつ、複数の演算ノードへ演算処理をそれぞれ割り当てる。分散配置装置は、作成部(102)は、先行制約(600)に基づいて演算処理を行う順序を決定し、当該順序に基づいて実行される演算処理の実行時間および演算処理間のデータ通信量に基づいて、デッドラインを満たす制約条件式を作成する。作成部は、順序づけられた演算処理の全体周期を算出し、全体周期よりもデッドラインが長い場合、超過演算処理を割り当てられる演算ノードには、次の全体周期において、超過演算処理の実行中に他の演算処理を割り当てない制約条件式を作成する。

Description

分散配置装置、分散配置システム、および、分散配置方法
 本願明細書に開示される技術は、たとえば、複数の演算ノードへ演算処理を割り当てる技術に関するものである。
 近年、factory automation(FA)分野などにおいて、センシングデータまたは稼働ログなどのデータを周期的に取得し、クラウドサーバーなどに当該データを集約した後、当該データの加工および分析を行うことによって、制御機器の故障予知または生産性の向上を図ることが行われている。なお、このデータの収集周期はデータごとに異なる場合がある。
 このように、データを単一のサーバーに集約すると、サーバーの処理負荷が増大するとともに、サーバーのアクセス負荷が増大してサーバー周辺のネットワークが逼迫してしまう。サーバー周辺のネットワークの逼迫によって、データ分析が所望の時間、すなわち、デッドライン内に完了しないという問題が生じる場合がある。
 このため、データの加工および分析に関する演算処理を、ネットワークに含まれる複数の演算ノードに分散して割り当てる、すなわち、分散配置する場合がある。
 演算処理を演算ノードに割り当てる方法として、たとえば、事前に演算処理の開始から終了までの要求時間であるデッドライン、演算処理が実行される周期、演算量または通信量などを設定し、割り当て前にそれぞれの演算ノードへ問い合わせを行うことによって、デッドラインを満たす割り当てを実行する方法がある(たとえば、特許文献1を参照)。
特開2010-27062号公報
 複数の演算処理間では、ある演算処理によって加工されたデータに対して他の演算処理がデータ分析を行うなどの、先行制約の関係を有する場合がある。
 しかしながら、たとえば、特許文献1は、先行制約で関係づけられた演算処理群に対する考慮はなされていない。そのため、個々の演算処理に対して、適切なデッドラインをそれぞれ設定する必要がある。このデッドラインの設定は、先行制約、データ通信量および処理の実行時間を考慮しなければならず、人手で実施することは困難である。
 また、FA分野においては、周期的にデータを収集することによって、故障予知などのデータ分析を行うアプリケーションが用いられている。このような故障予知などのデータ分析結果の出力には、データ収集の周期よりも長い時間をかけてもよい場合が多い。
 しかしながら、たとえば、特許文献1は、演算処理ごとに周期またはデッドラインのいずれかのみを設定するため、デッドラインを周期以上の長さに設定することなどは想定することができない。そのため、上記の処理のようにデータ収集の周期よりも長い時間をかけて実行されてもよい演算処理に対して、必要以上のデッドラインを設けることとなってしまう場合があった。
 本願明細書に開示される技術は、以上に記載されたような問題を解決するためになされたものであり、演算処理の周期よりもデッドラインが長い場合であっても、複数の演算処理間の先行制約を考慮しつつ、複数の演算ノードへ演算処理をそれぞれ割り当てる技術を提供することを目的とするものである。
 本願明細書に開示される技術の第1の態様は、生産ラインで収集するデータに対して演算処理を行う複数の演算ノードとネットワークを介して接続され、かつ、複数の前記演算ノードへ前記演算処理を割り当てる分散配置装置であり、複数の前記演算ノード間のネットワーク構成と、それぞれの前記演算ノードに割り当てられる演算処理の名称と、それぞれの前記演算処理が実行される実行周期と、複数の前記演算処理の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理間の実行順序を規定する先行制約と、複数の前記演算処理間のデータ通信量と、それぞれの前記演算処理の実行時間とが入力される入力部と、前記入力部に入力されたそれぞれの情報に基づいて制約条件式を作成する作成部と、複数の前記演算ノード間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノードへの前記演算処理の割り当ておよびスケジュールを導出する導出部と、前記演算処理の割り当ておよび前記スケジュールをそれぞれの前記演算ノードへ分配する分配部とを備え、前記作成部は、複数の前記演算処理間の前記先行制約に基づいて、それぞれの前記演算処理を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理の前記実行時間および複数の前記演算処理間の前記データ通信量に基づいて、前記デッドラインを満たす前記制約条件式を作成し、前記作成部は、前記先行制約に基づいて順序づけられたそれぞれの前記演算処理の前記実行周期に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノードには、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理を割り当てない前記制約条件式を作成する。
 また、本願明細書に開示される技術の第2の態様は、生産ラインで収集するデータに対して演算処理を行う複数の演算ノードとネットワークを介して接続され、かつ、複数の前記演算ノードへ前記演算処理を割り当てる分散配置装置と、前記分散配置装置に接続されるネットワーク構成とを備え、前記分散配置装置は、複数の前記演算ノード間のネットワーク構成と、それぞれの前記演算ノードに割り当てられる演算処理の名称と、それぞれの前記演算処理が実行される実行周期と、複数の前記演算処理の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理間の実行順序を規定する先行制約と、複数の前記演算処理間のデータ通信量と、それぞれの前記演算処理の実行時間とが入力される入力部と、前記入力部に入力されたそれぞれの情報に基づいて制約条件式を作成する作成部と、複数の前記演算ノード間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノードへの前記演算処理の割り当ておよびスケジュールを導出する導出部と、前記演算処理の割り当ておよび前記スケジュールをそれぞれの前記演算ノードへ分配する分配部とを備え、前記作成部は、複数の前記演算処理間の前記先行制約に基づいて、それぞれの前記演算処理を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理の前記実行時間および複数の前記演算処理間の前記データ通信量に基づいて、前記デッドラインを満たす前記制約条件式を作成し、前記作成部は、前記先行制約に基づいて順序づけられたそれぞれの前記演算処理の前記実行周期に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノードには、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理を割り当てない前記制約条件式を作成し、前記ネットワーク構成は、前記演算処理を行う複数の前記演算ノードと、複数の前記演算ノード間を接続するネットワークスイッチとを備える。
 また、本願明細書に開示される技術の第3の態様は、ネットワークを介して接続され、生産ラインで収集するデータに対して演算処理を行う複数の演算ノードへ、前記演算処理を割り当てる分散配置方法であり、複数の前記演算ノード間のネットワーク構成と、それぞれの前記演算ノードに割り当てられる演算処理の名称と、それぞれの前記演算処理が実行される実行周期と、複数の前記演算処理の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理間の実行順序を規定する先行制約と、複数の前記演算処理間のデータ通信量と、それぞれの前記演算処理の実行時間とを入力し、入力されたそれぞれの情報に基づいて制約条件式を作成し、複数の前記演算ノード間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノードへの前記演算処理の割り当ておよびスケジュールを導出し、前記演算処理の割り当ておよび前記スケジュールをそれぞれの前記演算ノードへ分配し、前記制約条件式の作成は、複数の前記演算処理間の前記先行制約に基づいて、それぞれの前記演算処理を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理の前記実行時間および複数の前記演算処理間の前記データ通信量に基づいて、前記デッドラインを満たすようになされ、前記制約条件式の作成は、前記先行制約に基づいて順序づけられたそれぞれの前記演算処理の前記実行周期に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノードには、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理を割り当てないようになされる。
 本願明細書に開示される技術の第1の態様は、生産ラインで収集するデータに対して演算処理を行う複数の演算ノードとネットワークを介して接続され、かつ、複数の前記演算ノードへ前記演算処理を割り当てる分散配置装置であり、複数の前記演算ノード間のネットワーク構成と、それぞれの前記演算ノードに割り当てられる演算処理の名称と、それぞれの前記演算処理が実行される実行周期と、複数の前記演算処理の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理間の実行順序を規定する先行制約と、複数の前記演算処理間のデータ通信量と、それぞれの前記演算処理の実行時間とが入力される入力部と、前記入力部に入力されたそれぞれの情報に基づいて制約条件式を作成する作成部と、複数の前記演算ノード間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノードへの前記演算処理の割り当ておよびスケジュールを導出する導出部と、前記演算処理の割り当ておよび前記スケジュールをそれぞれの前記演算ノードへ分配する分配部とを備え、前記作成部は、複数の前記演算処理間の前記先行制約に基づいて、それぞれの前記演算処理を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理の前記実行時間および複数の前記演算処理間の前記データ通信量に基づいて、前記デッドラインを満たす前記制約条件式を作成し、前記作成部は、前記先行制約に基づいて順序づけられたそれぞれの前記演算処理の前記実行周期に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノードには、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理を割り当てない前記制約条件式を作成するものである。このような構成によれば、複数の演算処理間の先行制約に基づいて、それぞれの演算処理を行う順序を決定され、当該順序に基づいて実行される複数の演算処理が全体としてデッドラインを満たすように、制約条件式が作成される。したがって、それぞれの演算処理に対して適切なデッドラインをそれぞれ設定する必要がない。また、先行制約に基づいて順序づけられた複数の演算処理の全体周期よりもデッドラインが長い場合であっても、超過演算処理を割り当てられる演算ノードには、次の全体周期において、超過演算処理の実行中に他の演算処理を割り当てないように制約条件式が作成される。したがって、実行周期に関連して必要以上にデッドラインを短く設定することがない。
 また、本願明細書に開示される技術の第2の態様は、生産ラインで収集するデータに対して演算処理を行う複数の演算ノードとネットワークを介して接続され、かつ、複数の前記演算ノードへ前記演算処理を割り当てる分散配置装置と、前記分散配置装置に接続されるネットワーク構成とを備え、前記分散配置装置は、複数の前記演算ノード間のネットワーク構成と、それぞれの前記演算ノードに割り当てられる演算処理の名称と、それぞれの前記演算処理が実行される実行周期と、複数の前記演算処理の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理間の実行順序を規定する先行制約と、複数の前記演算処理間のデータ通信量と、それぞれの前記演算処理の実行時間とが入力される入力部と、前記入力部に入力されたそれぞれの情報に基づいて制約条件式を作成する作成部と、複数の前記演算ノード間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノードへの前記演算処理の割り当ておよびスケジュールを導出する導出部と、前記演算処理の割り当ておよび前記スケジュールをそれぞれの前記演算ノードへ分配する分配部とを備え、前記作成部は、複数の前記演算処理間の前記先行制約に基づいて、それぞれの前記演算処理を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理の前記実行時間および複数の前記演算処理間の前記データ通信量に基づいて、前記デッドラインを満たす前記制約条件式を作成し、前記作成部は、前記先行制約に基づいて順序づけられたそれぞれの前記演算処理の前記実行周期に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノードには、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理を割り当てない前記制約条件式を作成し、前記ネットワーク構成は、前記演算処理を行う複数の前記演算ノードと、複数の前記演算ノード間を接続するネットワークスイッチとを備えるものである。このような構成によれば、複数の演算処理間の先行制約に基づいて、それぞれの演算処理を行う順序を決定され、当該順序に基づいて実行される複数の演算処理が全体としてデッドラインを満たすように、制約条件式が作成される。したがって、それぞれの演算処理に対して適切なデッドラインをそれぞれ設定する必要がない。また、先行制約に基づいて順序づけられた複数の演算処理の全体周期よりもデッドラインが長い場合であっても、超過演算処理を割り当てられる演算ノードには、次の全体周期において、超過演算処理の実行中に他の演算処理を割り当てないように制約条件式が作成される。したがって、実行周期に関連して必要以上にデッドラインを短く設定することがない。
 また、本願明細書に開示される技術の第3の態様は、ネットワークを介して接続され、生産ラインで収集するデータに対して演算処理を行う複数の演算ノードへ、前記演算処理を割り当てる分散配置方法であり、複数の前記演算ノード間のネットワーク構成と、それぞれの前記演算ノードに割り当てられる演算処理の名称と、それぞれの前記演算処理が実行される実行周期と、複数の前記演算処理の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理間の実行順序を規定する先行制約と、複数の前記演算処理間のデータ通信量と、それぞれの前記演算処理の実行時間とを入力し、入力されたそれぞれの情報に基づいて制約条件式を作成し、複数の前記演算ノード間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノードへの前記演算処理の割り当ておよびスケジュールを導出し、前記演算処理の割り当ておよび前記スケジュールをそれぞれの前記演算ノードへ分配し、前記制約条件式の作成は、複数の前記演算処理間の前記先行制約に基づいて、それぞれの前記演算処理を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理の前記実行時間および複数の前記演算処理間の前記データ通信量に基づいて、前記デッドラインを満たすようになされ、前記制約条件式の作成は、前記先行制約に基づいて順序づけられたそれぞれの前記演算処理の前記実行周期に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノードには、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理を割り当てないようになされる。このような構成によれば、先行制約に基づいて実行される複数の演算処理が全体としてデッドラインを満たすように、制約条件式が作成される。また、複数の演算処理の全体周期よりもデッドラインが長い場合であっても、超過演算処理を割り当てられる演算ノードには、次の全体周期において、超過演算処理の実行中に他の演算処理を割り当てないように制約条件式が作成される。したがって、それぞれの演算処理に対して適切なデッドラインをそれぞれ設定する必要がなく、また、実行周期に関連して必要以上にデッドラインを短く設定することがない。
 本願明細書に開示される技術に関する目的と、特徴と、局面と、利点とは、以下に示される詳細な説明と添付図面とによって、さらに明白となる。
実施の形態に関する、分散配置システムの構成を機能的に例示する図である。 実施の形態に関する、分散配置装置の内部構成を概略的に例示する図である。 実施の形態に関する、演算ノードの内部構成を概略的に例示する図である。 実施の形態に関する、演算ノードと、ネットワークスイッチと、通信経路との関係を示すネットワーク構成を例示する図である。 実施の形態に関する、演算処理間の先行制約に関するモデル記述に例示する図である。 実施の形態に関する、複数の演算処理のデッドラインを概念的に例示する図である。 実施の形態に関する、演算処理間のデータ通信量を例示する図である。 実施の形態に関する、演算処理の実行時間を例示する図である。 実施の形態に関する、演算処理を演算ノードに割り当てた場合の、スケジュールを例示する図である。 実施の形態に関する、演算ノードと、ネットワークスイッチと、通信経路との関係を示すネットワーク構成を例示する図である。 図4に例示されたネットワーク構成に関する最短通信経路を例示する図である。 実施の形態に関する、ネットワーク構成を例示する図である。 図12に例示されるネットワーク構成に対し、図5に例示された演算処理を割り当てた結果を例示する図である。 図13に例示された割り当て結果に、先行制約に基づいて、それぞれの演算処理間のデータ通信の開始時刻と終了時刻とが追記された図である。 周期30msecで実行される演算処理、周期20msecで実行される演算処理および演算処理間の先行制約に関するモデル記述に例示する図である。 図15に例示されたモデル記述に対応する、演算処理のデッドラインを概念的に例示する図である。 図15に例示されたモデル記述に対応する、演算処理のデッドラインを概念的に例示する図である。
 以下、添付される図面を参照しながら実施の形態について説明する。
 なお、図面は概略的に示されるものであり、説明の便宜のため、適宜、構成の省略、または、構成の簡略化がなされるものである。また、異なる図面にそれぞれ示される構成などの大きさおよび位置の相互関係は、必ずしも正確に記載されるものではなく、適宜変更され得るものである。
 また、以下に示される説明では、同様の構成要素には同じ符号を付して図示し、それらの名称と機能とについても同様のものとする。したがって、それらについての詳細な説明を、重複を避けるために省略する場合がある。
 <第1の実施の形態>
 以下、本実施の形態に関する分散配置装置、分散配置システム、および、分散配置方法について説明する。
 <分散配置装置の構成について>
 図1は、本実施の形態に関する分散配置システムの構成を機能的に例示する図である。図1に例示されるように、分散配置システムにおける分散配置装置100は、通信経路400を介して複数の演算ノード200および複数のネットワークスイッチ300と接続される。ここで、演算ノード200は、主に生産ラインで収集するデータに対して演算処理を行うものである。また、分散配置装置100は、モデル入力部101と、定式化部102と、解導出部103と、分配部104とを備える。
 ネットワークスイッチ300は、分散配置装置100、演算ノード200および他のネットワークスイッチ300と、通信経路400を介して接続される。また、ネットワークスイッチ300は、データの中継およびデータの転送を行う手段を備える。
 モデル入力部101は、演算ノード200のネットワーク構成と、演算ノード200で実行させる演算処理とを含むモデル記述を、ユーザーが入力する手段を備える。
 定式化部102は、モデル入力部101に入力されたモデル記述から制約条件式へ定式化を行う、すなわち、制約条件式を作成する手段を備える。
 解導出部103は、複数の演算ノード200間のネットワーク構成を参照しつつ、制約条件式を満たすそれぞれの演算処理の演算ノード200への割り当てと、それぞれの演算処理を行うタイミングを示すスケジュールとを解として導出する手段を備える。
 解導出部103は、導出された複数の解の中から、ユーザーが指定する目的関数を用いて最適な解を選択する手段を備える。解導出部103は、導出された解が1つである場合には、当該解を最適な解として選択する。
 分配部104は、解導出部103が導出した演算処理の割り当てとスケジュールとを演算ノード200へ配信する手段を備える。
 図2は、分散配置装置100の内部構成を概略的に例示する図である。図2に例示されるように、分散配置装置100は、出力部111と、入力部112と、中央演算処理装置(central processing unit、すなわち、CPU)113と、メモリ114と、通信デバイス115とを備える。
 出力部111は、ユーザーが入力したモデル記述に基づく制約条件式を満たす、演算処理の割り当ておよびスケジュール結果を表示する。入力部112は、ユーザーがモデル記述を入力する手段を備える。
 CPU113は、モデル記述から制約条件式への定式化の実行と、制約条件式を満たす演算処理の演算ノード200への割り当ておよびスケジューリングの実行とを行う。さらに、CPU113は、導出した解の中から、ユーザーが指定する目的関数を用いて最適な解を選択する。
 メモリ114は、分散配置装置100の実行プログラムを格納する。通信デバイス115は、演算ノード200へ、演算処理の割り当てとスケジュールとを配信する。
 図3は、演算ノード200の内部構成を概略的に例示する図である。図3に例示されるように、演算ノード200は、CPU211と、メモリ212と、通信デバイス213とを備える。
 CPU211は、分散配置装置100から配信された演算処理を実行する。メモリ212は、分散配置装置100から配信された演算処理とスケジュールとを格納する。通信デバイス213は、ネットワークを介して接続された他の演算ノード200に演算処理の結果として生成したデータを送信する。
 次に、分散配置装置100のそれぞれの機能部について詳細に説明する。
 まず、モデル入力部101について説明する。
 モデル入力部101は、演算ノード200とネットワークスイッチ300と通信経路400との関係を示すネットワーク構成と、通信経路400の通信速度TSと、それぞれの演算ノード200に割り当てられる演算処理の名称と、複数の演算処理間の実行順序を規定する先行制約と、それぞれの演算処理が実行される実行周期と、複数の演算処理の開始から終了までの要求時間であるデッドラインと、複数の演算処理間のデータ通信量と、それぞれの演算処理の実行時間とを入力する手段を備える。ここで、モデル入力部101には、演算処理の内容、たとえば、処理動作を記述するプログラムも入力されてもよい。
 図4は、演算ノード200と、ネットワークスイッチ300と、通信経路400との関係を示すネットワーク構成を例示する図である。図5は、演算処理500および演算処理500間の先行制約600に関するモデル記述に例示する図である。
 図6は、複数の演算処理500のデッドラインを概念的に例示する図である。図7は、演算処理500間のデータ通信量を例示する図である。図8は、演算処理500の実行時間を例示する図である。
 次に、モデル入力部101に入力するモデル記述の詳細を説明する。
 図5では、たとえば、演算処理500のうちの演算処理J1が30msecで周期的に実行することを、実行周期700によって記述している。
 また、演算処理500のうちの演算処理J1と演算処理J2との間の先行制約600は、演算処理J1の完了後に生成されるデータを演算処理J2が割り当てられる演算ノード200が受信完了した後に、演算処理J2が開始されることを記述している。
 また、図7では、演算処理J1が割り当てられる演算ノード200から演算処理J2が割り当てられる演算ノード200へ送信されるデータ量が、「J1→J2」の行に「50Mbyte」と記述されている。
 また、図8では、演算処理500が割り当て可能な演算ノード200の名称、および、当該演算ノード200における演算処理の実行時間が記述されている。
 図8においては、最上段に演算処理の名称を記述し、最左列に演算ノード名を記述する。そして、演算処理500が割り当て不可能な演算ノード200には「-」が、演算処理500が割り当て可能な演算ノード200には演算処理の実行時間がそれぞれ記述されている。この「演算処理の実行時間」は、分散配置装置が設定する最小単位で記述される。ただし、演算処理500の実行時間が実際にはバラつきがある場合は、バラつく実行時間のうちの最長の実行時間が記述される。ここで、演算処理の名称とは、演算処理の内容を識別するための名称であり、たとえば、番号または記号などによって示されるものである。
 演算処理500の実行時間の指定は、分散配置装置100へのモデル入力の前に、あらかじめそれぞれの演算ノード200に演算処理500を配置した上で実行時間を計測するか、演算処理プログラムから実行時間を推定するかによって行われてもよい。または、分散配置装置100が自動的に演算処理500の実行時間を計測してもよい。
 次に、定式化部102について説明する。
 定式化部102は、モデル入力部101に入力されたモデル記述から制約条件式を導出する。
 制約条件式は、それぞれの演算処理500が割り当てる演算ノード200と、それぞれの演算処理500の実行開始時刻とを入力パラメータとし、制約を満たすかどうかの真偽を判定する式である。
 以降、制約条件式の入力パラメータを下記で表す。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 制約条件式では、モデル記述と入力パラメータとから明らかとなるパラメータとして下記を用いる。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
 ここで、通信速度TSは、モデル記述で直接記述するパラメータである。完了時刻Jx_Eは、演算ノードJx_Nおよび開始時刻Jx_Sの入力パラメータから、図8を用いて導出されるパラメータである。
 また、データ送信開始時刻Jx_to_Jy_Sは完了時刻Jx_Eと同時刻とする。また、データ送信完了時刻Jx_to_Jy_Eは開始時刻Jy_S以前であればよいので、開始時刻Jy_Sと同時刻とする。
 全体周期Pは、周期的に実行される演算処理500が1つである場合、または、周期が同一である複数の演算処理500が周期的に実行される場合は、当該演算処理の実行周期を示している。周期的に実行される演算処理500が2種類以上である場合については、後述の第2の実施の形態において記載する。
 図5の演算処理500のモデル記述では、周期的に実行される演算処理500が演算処理J1の1つであるため、全体周期Pは30msecとなる。
 制約条件式は、先行制約、割り当て可能な演算ノードおよびその実行時間に関する制約、演算ノードの資源制約、通信経路の資源制約、および、デッドラインによる制約のすべてを満たすかどうかを判定する式である。
 以降、全制約から導出される制約条件式を全制約条件式と呼び、それぞれの制約から導出される制約条件式は単に、制約条件式と呼ぶ。
 次に、先行制約600から導出される制約条件式について説明する。
 先行制約600に関する制約条件式は、周期的に実行される演算処理500の開始時刻を0とする制約条件式と、先行制約600が記述された2つの演算処理500の間の実行順序に関する制約条件式である。図5に例示される先行制約600において、演算処理J1に先行する演算処理はないため、演算処理J1の開始時刻J1_Sを0とする。このように、周期的に実行される演算処理Jxの開始時刻Jx_Sを0とする式を<制約条件式1>とする。
Figure JPOXMLDOC01-appb-M000008
 さらに、演算処理J1と演算処理J2との間には先行制約が記述されているため、2つの演算処理500の間の制約条件式は下記となる。
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 上記の(式2-1)、(式2-2)、(式2-3)および(式2-4)は、演算処理J1と演算処理J3、演算処理J2と演算処理J4、および、演算処理J3と演算処理J4に対しても同様に生成され、これらの式をすべて論理積ANDで接続したものを、先行制約の制約条件式とし、<制約条件式2>とする。
Figure JPOXMLDOC01-appb-M000013
 次に、割り当て可能な演算ノード200と実行時間に関する制約とから導出される制約条件式について説明する。
 入力された演算処理500が割り当てられる演算ノード200に基づいて、演算処理500の実行時間を確定させる制約条件式を導出する。
 演算処理Jxを演算ノードNyに割り当てた場合の実行時間をTxyとすると下記が制約条件式となる。
Figure JPOXMLDOC01-appb-M000014
 ここで、演算ノードJx_Nに対して割り当て可能な演算ノード200を演算ノードN1、演算ノードN2および演算ノードN3とした場合、(式3-1)は演算ノードN1、演算ノードN2および演算ノードN3のいずれかとの制約条件式を満たせばよいため、論理和ORでの接続とする。
 演算処理Jxを演算ノードN1に割り当てた場合の実行時間をTx1、演算処理Jxを演算ノードN2に割り当てた場合の実行時間をTx2、演算処理Jxを演算ノードN3に割り当てた場合の実行時間をTx3とすると、下記の制約条件式となる。
Figure JPOXMLDOC01-appb-M000015
 上記の制約条件式を複数の演算処理500に対して導出し、論理積ANDで結合したものを、演算処理500と割り当て可能な演算ノード200の制約条件式とし、<制約条件式3>とする。
 図8では、<制約条件式3>は下記となる。
Figure JPOXMLDOC01-appb-M000016
 次に、演算ノード200の資源制約から導出される制約条件式について説明する。
 演算ノード200の資源制約としては、2つの演算処理500の間で、割り当てられる演算ノード200が異なるか否かであり、同じ演算ノード200に2つの演算処理500が割り当てられる場合には、実行時間が重複しないことを制約とする。
 演算処理Jxおよび演算処理Jyの間での演算ノード200の資源制約は下記となる。
Figure JPOXMLDOC01-appb-M000017
 上記の(式4-1)を演算処理500のすべての組み合わせに対して導出し、論理積ANDで接続したものが、演算ノード200の資源制約に対する制約条件式となる。
 ここで、本実施の形態では、演算処理500の実行が全体周期Pを超過する場合も含めた制約条件式を導出する。したがって、全体周期Pを超過した演算処理、すなわち、超過演算処理が、次の全体周期Pにおける演算処理と資源制約に違反しないことを判定する必要がある。
 図9は、演算処理J1および演算処理J2を演算ノードN5に、演算処理J3および演算処理J4を演算ノードN1にそれぞれ割り当てた場合の、スケジュールを例示する図である。
 演算処理J1は実行周期が30msecであり、かつ、周期的に実行される演算処理500が演算処理J1の1つであるため、全体周期Pは30msecである。ここで、演算処理J1の開始から演算処理J4の完了までのデッドラインは、図6で例示されたように50msecである。
 演算ノード200の資源制約から、全体周期Pにおける、演算処理J4の開始時刻(J4_S)と演算処理J4の終了時刻(J4_E)との間の時間帯を1周期分前にずらした時間帯には、演算処理J3が演算ノードN1において実行されないものとする。すなわち、全体周期Pを超過して実行される超過演算処理である演算処理J4が割り当てられる演算ノードN1には、次の全体周期Pにおいて、演算処理J4の実行中に他の演算処理、たとえば、演算処理J3などが割り当てられることがない。
 このような全体周期Pを超過する演算処理500に対して、演算ノード200の資源制約は下記となる。
Figure JPOXMLDOC01-appb-M000018
 これら、(式4-1)および(式4-2)を論理積ANDで接続したものが演算ノードの資源制約に対する制約条件式とし、<制約条件式4>とする。
 次に、通信経路400の資源制約から導出される制約条件式について説明する。
 通信経路400は、1つの通信経路400に対して同時に複数の演算処理500からデータ送信を実行することが可能であり、通信経路400の通信速度TSは、同時にデータ送信を行う演算処理500の数で等分されるものとする。また、送信元と送信先とが同じ演算ノード200である場合には通信が発生しないため、通信経路400の資源制約はない。
 1つの通信経路400で同時に複数の演算処理500がデータを送信することを、通信経路400の競合と呼ぶ。通信経路400の競合を判定するために、まず、2つの演算ノード200間の最短通信経路を導出する。
 最短通信経路は、送信元の演算ノード200から送信先の演算ノード200までの通信経路400の内、経由する演算ノード200の数とネットワークスイッチ300の数との和が最小となる経路である。
 図10は、演算ノード200と、ネットワークスイッチ300と、通信経路400との関係を示すネットワーク構成を例示する図である。図10に例示されるネットワーク構成では、演算ノードN11から演算ノードN15までの経路の候補としては、下記に例示されるような複数の経路が存在する。
Figure JPOXMLDOC01-appb-M000019
Figure JPOXMLDOC01-appb-M000020
Figure JPOXMLDOC01-appb-M000021
 上記では、経路1が最短通信経路となる。この最短通信経路をユーザーが入力したモデル記述から算出し、2つの演算ノード200間の最短通信経路の表を生成する。
 図11は、図4に例示されたネットワーク構成に関する最短通信経路を例示する図である。図11において、送信元と送信先とが同じ演算ノード200の場合、最短経路は「-」と記述されている。図11を用いて、通信経路400の競合を判定する。
 演算ノードNx1から演算ノードNy1へのデータ送信、および、演算ノードNx2から演算ノードNy2へのデータ送信に関しての通信経路400の競合の判定について説明する。
 演算ノードNx1から演算ノードNy1への最短通信経路と、演算ノードNx2から演算ノードNy2への最短通信経路との間で、同じ通信経路400が含まれていれば競合であると判定し、同じ通信経路400が含まれていなければ競合していないと判定する。
 図11において、演算ノードN1から演算ノードN10への通信経路、および、演算ノードN2から演算ノードN10への通信経路には、ともに(SW1→N4)、(N4→SW3)および(SW3→N10)の通信経路が含まれている。そのため、これらの通信経路は競合すると判定することができる。
 次に、通信経路の競合が発生する場合の制約条件式について説明する。
 すべての演算処理500の開始時刻と完了時刻とをそれぞれ抽出し、時刻の古い順にT1、T2、T3、…とする。T1からT2、T2からT3、T3からT4、…のそれぞれの時間間隔内で通信経路400の競合を検出し、競合が発生したデータ通信の数で通信速度を等分とする。
 図12は、ネットワーク構成を例示する図である。また、図13は、図12に例示されるネットワーク構成に対し、図5に例示された演算処理500を割り当てた結果を例示する図である。
 図13において、それぞれの演算処理500の開始時刻および終了時刻はT1、T2、T3、…、T8で示される。
 図14は、図13に例示された割り当て結果に、先行制約600に基づいて、それぞれの演算処理500間のデータ通信の開始時刻と終了時刻とが追記された図である。図14において、演算処理J1から演算処理J2へのデータ送信は、「J1→J2」の範囲内で完了しなければならない。この制約を通信経路の資源制約とする。
 演算処理Jxから演算処理Jyへのデータ送信が発生し、完了時刻Jx_E=Tn、開始時刻Jy_S=Tmとすると、下記の制約条件式となる。
Figure JPOXMLDOC01-appb-M000022
 上記式をすべてのデータ送信が発生する演算処理500に対して生成し、論理積ANDで接続したものを、<制約条件式5>とする。
 <制約条件式5>は図14において、下記式となる。
Figure JPOXMLDOC01-appb-M000023
 次に、デッドラインから導出される制約条件式について説明する。
 演算処理Jxの開始時刻Jx_S、演算処理Jyの完了時刻Jy_Eに対して、開始時刻Jx_Sから完了時刻Jy_EまでがデッドラインDL以下でなければならないという制約から、下記の<制約条件式6>を導出する。
Figure JPOXMLDOC01-appb-M000024
 図6に例示されたデッドラインのモデル記述は、演算処理J1の開始時刻から演算処理J4の完了時刻までのデッドラインが、それぞれの演算処理500の実行時間および演算処理500間のデータ通信などを考慮した上で、50msec以下でなければならないという制約を示している。
 この制約から、下記の制約条件式を導出する。
Figure JPOXMLDOC01-appb-M000025
 これまでに説明した<制約条件式1>、<制約条件式2>、<制約条件式3>、<制約条件式4>、<制約条件式5>および<制約条件式6>はすべて満たす必要があるため、これらを論理積ANDで接続したものを、<全制約条件式>とする。
Figure JPOXMLDOC01-appb-M000026
 次に、解導出部103の詳細を説明する。
 解導出部103では、定式化部102で導出された全制約条件式を用いて、制約条件を満たす入力パラメータを導出する。入力パラメータの内、演算処理Jxが割り当てられる演算ノードJx_Nの取りうる範囲、すなわち、演算処理Jxを割り当て可能な演算ノードJx_Nは、図8に例示されている。
 入力パラメータの内、開始時刻Jx_Sの最小値は0、最大値は(全体周期P+最大DL)である。ここで、最大DLとは、モデル記述で入力されたデッドラインの内で最も値の大きいものである。開始時刻Jx_Sの最小単位はモデル入力部101において設定しておく。
 解導出部103は、演算ノードJx_Nが取りうる値の範囲と、開始時刻Jx_Sが取りうる値の範囲との組み合わせを入力パラメータとして全制約条件式に入力し、制約を満たすかどうかを判定する。制約を満たす入力パラメータを解と呼ぶ。
 この時、解導出部103は網羅的に探索して解を導出してもよいし、局所探索によって解を導出してもよい。
 そして、解が見つからない場合は、ユーザーに通知を行う。解が見つからないという通知によって、ユーザーは、演算ノード200の数の追加または演算処理500の削減などを行う必要があることが分かる。
 上記の解が複数存在する場合、解導出部103は、目的関数Oを用いて最適解を選択する。なお、解導出部103は、導出された解が1つである場合には、当該解を最適な解として選択する。
 ユーザーは図2における入力部112から目的関数Oを入力する。そして解導出部103は、目的関数Oを最大化または最小化する解のいずれを最適解とするかを選択する。たとえば、全体処理時間を最小とする目的関数Oは下記となる。
Figure JPOXMLDOC01-appb-M000027
 上記の式において、MAX関数は引数の中で最大の値を返す関数である。上記の式を用いた場合の目的関数Oは、全演算処理において最後に実行する演算処理の完了時刻となる。
 この目的関数Oが最小となる解が、全体処理完了時間を最小とする解となる。この目的関数Oには、特定の演算ノード間の通信量を最小とする目的関数を設定してもよい。
 次に、分配部104の詳細を説明する。
 分配部104では、解導出部103において導出された解である演算処理500が割り当てられる演算ノード200と、割り当てられた演算処理500の開始時刻と、演算処理500の実行プログラムとをそれぞれの演算ノード200へ配信する。分配部104は、すべての演算ノード200と時刻同期を行い、全体周期Pの先頭時刻をそれぞれの演算ノード200に通知する。ここで、演算処理500の内容である実行プログラムは、モデル入力部101に入力されたものを参照してもよいし、外部の記憶媒体に記憶されている対応する実行プログラムを参照してもよい。
 演算ノード200は、配信された演算処理500の開始時刻と演算処理500の実行プログラムとをメモリ212に格納する。そして、演算ノード200は、実際の時刻に基づいて、全体周期Pの先頭を時刻0とする全体周期P内の時刻を算出し、演算処理500を実行する。
 全体周期P内の時刻は、下記式において算出する。
Figure JPOXMLDOC01-appb-M000028
 ここで、上記の式における「%」は、左項を右項で除算した剰余の値を求める演算子である。
 <第2の実施の形態>
 本実施の形態に関する分散配置装置、分散配置システム、および、分散配置方法について説明する。以下の説明においては、以上に記載された実施の形態で説明された構成と同様の構成については同じ符号を付して図示し、その詳細な説明については適宜省略するものとする。
 <分散配置装置の構成について>
 第1の実施の形態に関する分散配置装置100では、モデル入力部101へ入力される演算処理500の実行周期は1種類であった。しかしながら、複数の演算処理500に対して、異なる長さの実行周期が設定されてもよい。
 図15は、周期30msecで実行される演算処理J11、周期20msecで実行される演算処理J21および演算処理500間の先行制約600に関するモデル記述に例示する図である。
 図16および図17は、図15に例示されたモデル記述に対応する、演算処理500のデッドラインを概念的に例示する図である。
 複数の異なる周期を持つ演算処理500に対して、全体周期Pはそれぞれの周期の最小公倍数とする。図15に対しては、30msecと20msecとの最小公倍数である60msecを全体周期Pとする。
 全体周期Pにおいて、演算処理J11は2回、演算処理J21は3回実行される。そして、全体周期Pにおいて、1回目に実行する演算処理J11をJ11[1]、2回目に実行する演算処理J11をJ11[2]と記述する。演算処理J21についても同様である。演算処理J11および演算処理J21から先行制約600で関係づけられた全演算処理についても同様に複数回を全体周期P内で実行し、同様に演算処理Jx[n]とする。
 ここで、周期的に実行される演算処理Jxの開始時刻の<制約条件式1>は下記となる。
Figure JPOXMLDOC01-appb-M000029
 ここで、Jx[1]を0としているが、0から(演算処理Jxの周期)未満の範囲で自由に設定してもよい。
 上記の制約条件式1は、図15の場合には下記となる。
Figure JPOXMLDOC01-appb-M000030
 このようにして導出された<制約条件式1>と、[n]付きのすべての演算処理に対して<制約条件式2>、<制約条件式3>、<制約条件式4>、<制約条件式5>および<制約条件式6>を第1の実施の形態と同様に導出したものとによって、全制約条件式を導出する。解導出部103の動作および分配部104の動作は、第1の実施の形態と同様である。
 <以上に記載された実施の形態によって生じる効果について>
 次に、以上に記載された実施の形態によって生じる効果を例示する。なお、以下の説明においては、以上に記載された実施の形態に例示された具体的な構成に基づいて当該効果が記載されるが、同様の効果が生じる範囲で、本願明細書に例示される他の具体的な構成と置き換えられてもよい。
 また、当該置き換えは、複数の実施の形態に跨ってなされてもよい。すなわち、異なる実施の形態において例示されたそれぞれの構成が組み合わされて、同様の効果が生じる場合であってもよい。
 以上に記載された実施の形態によれば、分散配置装置100は、複数の演算ノード200とネットワークを介して接続され、かつ、複数の演算ノード200へ演算処理500を割り当てる。ここで、演算ノード200は、生産ラインで収集するデータに対して演算処理500を行う。分散配置装置100は、入力部と、作成部と、導出部と、分配部104とを備える。ここで、入力部は、たとえば、モデル入力部101に対応するものである。また、作成部は、たとえば、定式化部102に対応するものである。また、導出部は、たとえば、解導出部103に対応するものである。そして、モデル入力部101には、複数の演算ノード200間のネットワーク構成と、それぞれの演算ノード200に割り当てられる演算処理500の名称と、それぞれの演算処理500が実行される実行周期700と、複数の演算処理500の開始から終了までの要求時間であるデッドラインと、複数の演算処理500間の実行順序を規定する先行制約600と、複数の演算処理500間のデータ通信量と、それぞれの演算処理500の実行時間とが入力される。また、定式化部102は、モデル入力部101に入力されたそれぞれの情報に基づいて制約条件式を作成する。また、解導出部103は、複数の演算ノード200間のネットワーク構成を参照しつつ、制約条件式を満たすそれぞれの演算ノード200への演算処理500の割り当ておよびスケジュールを導出する。また、分配部104は、演算処理500の割り当ておよびスケジュールをそれぞれの演算ノード200へ分配する。また、定式化部102は、複数の演算処理500間の先行制約600に基づいて、それぞれの演算処理500を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの演算処理500の実行時間および複数の演算処理500間のデータ通信量に基づいて、デッドラインを満たす制約条件式を作成する。また、定式化部102は、先行制約600に基づいて順序づけられたそれぞれの演算処理500の実行周期700に基づく全体周期を算出し、全体周期よりもデッドラインが長い場合、全体周期を超過して実行される超過演算処理を割り当てられる演算ノード200には、次の全体周期において、超過演算処理の実行中に他の演算処理500を割り当てない制約条件式を作成する。
 また、以上に記載された実施の形態によれば、分散配置装置100は、出力部111と、入力部112とを備える。また、分散配置装置100は、プログラムを実行する処理回路であるCPU113と、実行されるプログラムを記憶する記憶装置であるメモリ114とを備える。そして、CPU113がプログラムを実行することによって、以下の動作が実現される。
 すなわち、入力部112に入力されたそれぞれの情報に基づいて制約条件式を作成する。そして、複数の演算ノード200間のネットワーク構成を参照しつつ、制約条件式を満たすそれぞれの演算ノード200への演算処理500の割り当ておよびスケジュールを導出する。そして、演算処理500の割り当ておよびスケジュールをそれぞれの演算ノード200へ出力部111を介して分配する。制約条件式の作成は、複数の演算処理500間の先行制約600に基づいて、それぞれの演算処理500を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの演算処理500の実行時間および複数の演算処理500間のデータ通信量に基づいて、デッドラインを満たすようになされる。また、制約条件式の作成は、先行制約600に基づいて順序づけられたそれぞれの演算処理500の実行周期700に基づく全体周期を算出し、全体周期よりもデッドラインが長い場合、全体周期を超過して実行される超過演算処理を割り当てられる演算ノード200には、次の全体周期において、超過演算処理の実行中に他の演算処理500を割り当てないようになされる。
 このような構成によれば、複数の演算処理500間の先行制約600に基づいて、それぞれの演算処理500を行う順序を決定され、当該順序に基づいて実行される複数の演算処理500が全体としてデッドラインを満たすように、制約条件式が作成される。したがって、それぞれの演算処理500に対して適切なデッドラインをそれぞれ設定する必要がない。また、先行制約600に基づいて順序づけられた複数の演算処理500の全体周期よりもデッドラインが長い場合であっても、超過演算処理を割り当てられる演算ノード200には、次の全体周期において、超過演算処理の実行中に他の演算処理500を割り当てないように制約条件式が作成される。したがって、実行周期に関連して必要以上にデッドラインを短く設定することがない。
 なお、これらの構成以外の本願明細書に例示される他の構成については適宜省略することができる。すなわち、少なくともこれらの構成を備えていれば、以上に記載された効果を生じさせることができる。
 しかしながら、本願明細書に例示される他の構成のうちの少なくとも1つを以上に記載された構成に適宜追加した場合、すなわち、以上に記載された構成としては記載されなかった本願明細書に例示される他の構成を以上に記載された構成に追加した場合でも、同様に以上に記載された効果を生じさせることができる。
 また、以上に記載された実施の形態によれば、モデル入力部101には、複数の演算ノード200間の通信速度がさらに入力される。そして、定式化部102は、複数の演算ノード200間で同時に複数のデータ通信が発生する場合、複数の演算ノード200間の通信速度を同時に発生するデータ通信の数で等分して制約条件式を作成する。このような構成によれば、通信経路400における資源制約も考慮して、制約条件式を作成することができる。
 また、以上に記載された実施の形態によれば、定式化部102は、先行制約600に基づいて順序づけられたそれぞれの演算処理500の実行周期700が異なる場合、複数の実行周期700の最小公倍数を全体周期とし、当該全体周期内でそれぞれの演算処理500をそれぞれの実行周期700に対応して繰り返し実行させる制約条件式を作成する。このような構成によれば、異なる長さの実行周期が設定されている場合であっても、それぞれの演算処理500が全体周期内で繰り返し実行されるように、全体周期の長さを制約条件式において適切に設定することができる。
 また、以上に記載された実施の形態によれば、分散配置システムは、分散配置装置100と、分散配置装置100に接続されるネットワーク構成とを備える。ネットワーク構成は、演算処理500を行う複数の演算ノード200と、複数の演算ノード200間を接続するネットワークスイッチ300とを備える。
 このような構成によれば、先行制約600に基づいて実行される複数の演算処理500が全体としてデッドラインを満たすように、制約条件式が作成される。また、複数の演算処理500の全体周期よりもデッドラインが長い場合であっても、超過演算処理を割り当てられる演算ノード200には、次の全体周期において、超過演算処理の実行中に他の演算処理500を割り当てないように制約条件式が作成される。したがって、複数の演算処理500に対する適切なデッドラインを設定しつつ、複数の演算処理500を、ネットワーク構成における複数の演算ノード200に分散配置することができる。
 以上に記載された実施の形態によれば、分散配置方法において、複数の演算ノード200間のネットワーク構成と、それぞれの演算ノード200に割り当てられる演算処理500の名称と、それぞれの演算処理500が実行される実行周期700と、複数の演算処理500の開始から終了までの要求時間であるデッドラインと、複数の演算処理500間の実行順序を規定する先行制約600と、複数の演算処理500間のデータ通信量と、それぞれの演算処理500の実行時間とを入力する。そして、入力されたそれぞれの情報に基づいて制約条件式を作成する。そして、複数の演算ノード200間のネットワーク構成を参照しつつ、制約条件式を満たすそれぞれの演算ノード200への演算処理500の割り当ておよびスケジュールを導出する。そして、演算処理500の割り当ておよびスケジュールをそれぞれの演算ノード200へ分配する。ここで、制約条件式の作成は、複数の演算処理500間の先行制約600に基づいて、それぞれの演算処理500を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの演算処理500の実行時間および複数の演算処理500間のデータ通信量に基づいて、デッドラインを満たすようになされる。また、制約条件式の作成は、先行制約600に基づいて順序づけられたそれぞれの演算処理500の実行周期700に基づく全体周期を算出し、全体周期よりもデッドラインが長い場合、全体周期を超過して実行される超過演算処理を割り当てられる演算ノード200には、次の全体周期において、超過演算処理の実行中に他の演算処理500を割り当てないようになされる。
 このような構成によれば、先行制約600に基づいて実行される複数の演算処理500が全体としてデッドラインを満たすように、制約条件式が作成される。また、複数の演算処理500の全体周期よりもデッドラインが長い場合であっても、超過演算処理を割り当てられる演算ノード200には、次の全体周期において、超過演算処理の実行中に他の演算処理500を割り当てないように制約条件式が作成される。したがって、それぞれの演算処理500に対して適切なデッドラインをそれぞれ設定する必要がなく、また、実行周期に関連して必要以上にデッドラインを短く設定することがない。
 なお、これらの構成以外の本願明細書に例示される他の構成については適宜省略することができる。すなわち、少なくともこれらの構成を備えていれば、以上に記載された効果を生じさせることができる。
 しかしながら、本願明細書に例示される他の構成のうちの少なくとも1つを以上に記載された構成に適宜追加した場合、すなわち、以上に記載された構成としては記載されなかった本願明細書に例示される他の構成を以上に記載された構成に追加した場合でも、同様に以上に記載された効果を生じさせることができる。
 また、特段の制限がない場合には、それぞれの処理が行われる順序は変更することができる。
 <以上に記載された実施の形態における変形例について>
 以上に記載された実施の形態では、それぞれの構成要素の寸法、形状、相対的配置関係または実施の条件などについても記載する場合があるが、これらはすべての局面において例示であって、本願明細書に記載されたものに限られることはないものとする。
 したがって、例示されていない無数の変形例、および、均等物が、本願明細書に開示される技術の範囲内において想定される。たとえば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの実施の形態における少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
 また、矛盾が生じない限り、以上に記載された実施の形態において「1つ」備えられるものとして記載された構成要素は、「1つ以上」備えられていてもよいものとする。
 さらに、以上に記載された実施の形態におけるそれぞれの構成要素は概念的な単位であって、本願明細書に開示される技術の範囲内には、1つの構成要素が複数の構造物から成る場合と、1つの構成要素がある構造物の一部に対応する場合と、さらには、複数の構成要素が1つの構造物に備えられる場合とを含むものとする。
 また、以上に記載された実施の形態におけるそれぞれの構成要素には、同一の機能を発揮する限り、他の構造または形状を有する構造物が含まれるものとする。
 また、本願明細書における説明は、本技術に関するすべての目的のために参照され、いずれも、従来技術であると認めるものではない。
 また、以上に記載された実施の形態で記載されたそれぞれの構成要素は、ソフトウェアまたはファームウェアとしても、それと対応するハードウェアとしても想定され、その双方の概念において、それぞれの構成要素は「部」または「処理回路」などと称される。
 また、本願明細書に開示される技術は、それぞれの構成要素が複数の装置に分散して備えられる場合、すなわち、システムのような態様であってもよいものとする。
 たとえば、メモリ114は、図2においては分散配置装置内に搭載されるものとして示されたが、外部の機能部であってもよいものとする。その場合、分散配置装置内の他の機能部と外部の機能部とが互いに作用しあうことによって、全体として分散配置装置の機能を果たすものであればよい。
 100 分散配置装置、101 モデル入力部、102 定式化部、103 解導出部、104 分配部、111 出力部、112 入力部、113,211 CPU、114,212 メモリ、115,213 通信デバイス、200 演算ノード、300 ネットワークスイッチ、400 通信経路、500 演算処理、600 先行制約、700 実行周期。

Claims (7)

  1.  生産ラインで収集するデータに対して演算処理(500)を行う複数の演算ノード(200)とネットワークを介して接続され、かつ、複数の前記演算ノード(200)へ前記演算処理(500)を割り当てる分散配置装置であり、
     複数の前記演算ノード(200)間のネットワーク構成と、それぞれの前記演算ノード(200)に割り当てられる演算処理(500)の名称と、それぞれの前記演算処理(500)が実行される実行周期(700)と、複数の前記演算処理(500)の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理(500)間の実行順序を規定する先行制約(600)と、複数の前記演算処理(500)間のデータ通信量と、それぞれの前記演算処理(500)の実行時間とが入力される入力部(101)と、
     前記入力部(101)に入力されたそれぞれの情報に基づいて制約条件式を作成する作成部(102)と、
     複数の前記演算ノード(200)間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノード(200)への前記演算処理(500)の割り当ておよびスケジュールを導出する導出部(103)と、
     前記演算処理(500)の割り当ておよび前記スケジュールをそれぞれの前記演算ノード(200)へ分配する分配部(104)とを備え、
     前記作成部(102)は、複数の前記演算処理(500)間の前記先行制約(600)に基づいて、それぞれの前記演算処理(500)を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理(500)の前記実行時間および複数の前記演算処理(500)間の前記データ通信量に基づいて、前記デッドラインを満たす前記制約条件式を作成し、
     前記作成部(102)は、前記先行制約(600)に基づいて順序づけられたそれぞれの前記演算処理(500)の前記実行周期(700)に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノード(200)には、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理(500)を割り当てない前記制約条件式を作成する、
     分散配置装置。
  2.  前記入力部(101)には、複数の前記演算ノード(200)間の通信速度がさらに入力され、
     前記作成部(102)は、複数の前記演算ノード(200)間で同時に複数のデータ通信が発生する場合、複数の前記演算ノード(200)間の前記通信速度を同時に発生する前記データ通信の数で等分して前記制約条件式を作成する、
     請求項1に記載の分散配置装置。
  3.  前記作成部(102)は、前記先行制約(600)に基づいて順序づけられたそれぞれの前記演算処理(500)の前記実行周期(700)が異なる場合、複数の前記実行周期(700)の最小公倍数を前記全体周期とし、当該全体周期内でそれぞれの前記演算処理(500)をそれぞれの前記実行周期(700)に対応して繰り返し実行させる制約条件式を作成する、
     請求項1または請求項2に記載の分散配置装置。
  4.  生産ラインで収集するデータに対して演算処理(500)を行う複数の演算ノード(200)とネットワークを介して接続され、かつ、複数の前記演算ノード(200)へ前記演算処理(500)を割り当てる分散配置装置(100)と、
     前記分散配置装置(100)に接続されるネットワーク構成とを備え、
     前記分散配置装置(100)は、
      複数の前記演算ノード(200)間のネットワーク構成と、それぞれの前記演算ノード(200)に割り当てられる演算処理(500)の名称と、それぞれの前記演算処理(500)が実行される実行周期(700)と、複数の前記演算処理(500)の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理(500)間の実行順序を規定する先行制約(600)と、複数の前記演算処理(500)間のデータ通信量と、それぞれの前記演算処理(500)の実行時間とが入力される入力部(101)と、
      前記入力部(101)に入力されたそれぞれの情報に基づいて制約条件式を作成する作成部(102)と、
      複数の前記演算ノード(200)間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノード(200)への前記演算処理(500)の割り当ておよびスケジュールを導出する導出部(103)と、
      前記演算処理(500)の割り当ておよび前記スケジュールをそれぞれの前記演算ノード(200)へ分配する分配部(104)とを備え、
     前記作成部(102)は、複数の前記演算処理(500)間の前記先行制約(600)に基づいて、それぞれの前記演算処理(500)を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理(500)の前記実行時間および複数の前記演算処理(500)間の前記データ通信量に基づいて、前記デッドラインを満たす前記制約条件式を作成し、
     前記作成部(102)は、前記先行制約(600)に基づいて順序づけられたそれぞれの前記演算処理(500)の前記実行周期(700)に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノード(200)には、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理(500)を割り当てない前記制約条件式を作成し、
     前記ネットワーク構成は、
      前記演算処理(500)を行う複数の前記演算ノード(200)と、
      複数の前記演算ノード(200)間を接続するネットワークスイッチ(300)とを備える、
     分散配置システム。
  5.  ネットワークを介して接続され、生産ラインで収集するデータに対して演算処理(500)を行う複数の演算ノード(200)へ、前記演算処理(500)を割り当てる分散配置方法であり、
     複数の前記演算ノード(200)間のネットワーク構成と、それぞれの前記演算ノード(200)に割り当てられる演算処理(500)の名称と、それぞれの前記演算処理(500)が実行される実行周期(700)と、複数の前記演算処理(500)の開始から終了までの要求時間であるデッドラインと、複数の前記演算処理(500)間の実行順序を規定する先行制約(600)と、複数の前記演算処理(500)間のデータ通信量と、それぞれの前記演算処理(500)の実行時間とを入力し、
     入力されたそれぞれの情報に基づいて制約条件式を作成し、
     複数の前記演算ノード(200)間の前記ネットワーク構成を参照しつつ、前記制約条件式を満たすそれぞれの前記演算ノード(200)への前記演算処理(500)の割り当ておよびスケジュールを導出し、
     前記演算処理(500)の割り当ておよび前記スケジュールをそれぞれの前記演算ノード(200)へ分配し、
     前記制約条件式の作成は、複数の前記演算処理(500)間の前記先行制約(600)に基づいて、それぞれの前記演算処理(500)を行う順序を決定し、さらに、当該順序に基づいて実行されるそれぞれの前記演算処理(500)の前記実行時間および複数の前記演算処理(500)間の前記データ通信量に基づいて、前記デッドラインを満たすようになされ、
     前記制約条件式の作成は、前記先行制約(600)に基づいて順序づけられたそれぞれの前記演算処理(500)の前記実行周期(700)に基づく全体周期を算出し、前記全体周期よりも前記デッドラインが長い場合、前記全体周期を超過して実行される超過演算処理を割り当てられる前記演算ノード(200)には、次の前記全体周期において、前記超過演算処理の実行中に他の前記演算処理(500)を割り当てないようになされる、
     分散配置方法。
  6.  複数の前記演算ノード(200)間の通信速度をさらに入力し、
     前記制約条件式の作成は、複数の前記演算ノード(200)間で同時に複数のデータ通信が発生する場合、複数の前記演算ノード(200)間の前記通信速度を同時に発生する前記データ通信の数で等分してなされる、
     請求項5に記載の分散配置方法。
  7.  前記制約条件式の作成は、前記先行制約(600)に基づいて順序づけられたそれぞれの前記演算処理(500)の前記実行周期(700)が異なる場合、複数の前記実行周期(700)の最小公倍数を前記全体周期とし、当該全体周期内でそれぞれの前記演算処理(500)をそれぞれの前記実行周期(700)に対応して繰り返し実行させるようになされる、
     請求項5または請求項6に記載の分散配置方法。
PCT/JP2017/022465 2017-06-19 2017-06-19 分散配置装置、分散配置システム、および、分散配置方法 WO2018235124A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201780090971.1A CN110770704B (zh) 2017-06-19 2017-06-19 分布配置装置、分布配置系统以及分布配置方法
PCT/JP2017/022465 WO2018235124A1 (ja) 2017-06-19 2017-06-19 分散配置装置、分散配置システム、および、分散配置方法
JP2019524715A JP6707198B2 (ja) 2017-06-19 2017-06-19 分散配置装置、分散配置システム、および、分散配置方法
DE112017007655.2T DE112017007655T5 (de) 2017-06-19 2017-06-19 Verteilte Zuweisungseinrichtung, verteiltes Zuweisungssystem, sowie verteiltes Zuweisungsverfahren
US16/604,803 US10747546B2 (en) 2017-06-19 2017-06-19 Distributed allocation device, distributed allocation system, and distributed allocation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/022465 WO2018235124A1 (ja) 2017-06-19 2017-06-19 分散配置装置、分散配置システム、および、分散配置方法

Publications (1)

Publication Number Publication Date
WO2018235124A1 true WO2018235124A1 (ja) 2018-12-27

Family

ID=64736896

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/022465 WO2018235124A1 (ja) 2017-06-19 2017-06-19 分散配置装置、分散配置システム、および、分散配置方法

Country Status (5)

Country Link
US (1) US10747546B2 (ja)
JP (1) JP6707198B2 (ja)
CN (1) CN110770704B (ja)
DE (1) DE112017007655T5 (ja)
WO (1) WO2018235124A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922210B2 (en) * 2017-12-05 2024-03-05 Koninklijke Philips N.V. Multiparty computation scheduling
CN112256406B (zh) * 2020-12-08 2021-08-17 北京华云星地通科技有限公司 作业流程平台化调度方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134203A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd 分散制御システム
WO2013094156A1 (ja) * 2011-12-19 2013-06-27 日本電気株式会社 タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム
JP2015225396A (ja) * 2014-05-26 2015-12-14 日立オートモティブシステムズ株式会社 車両制御装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06325038A (ja) * 1993-05-14 1994-11-25 Hitachi Software Eng Co Ltd スケジュール作成装置
JP2550864B2 (ja) * 1993-05-31 1996-11-06 日本電気株式会社 ジョブ実行における分散型制御方法及びその装置
JP3922070B2 (ja) * 2002-03-29 2007-05-30 株式会社デンソー 分散制御方法及び装置
JP4781089B2 (ja) * 2005-11-15 2011-09-28 株式会社ソニー・コンピュータエンタテインメント タスク割り当て方法およびタスク割り当て装置
JP2009015597A (ja) * 2007-07-04 2009-01-22 Nagaoka Univ Of Technology スケジュール作成方法,スケジュール作成装置,およびコンピュータプログラム
US8301742B2 (en) * 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
JP2010027062A (ja) 2009-08-21 2010-02-04 Hitachi Ltd 分散制御システム
JP5052592B2 (ja) * 2009-12-28 2012-10-17 株式会社日立製作所 ストレージ管理システム、ストレージ階層管理方法及び管理サーバ
KR101400657B1 (ko) * 2010-08-16 2014-05-28 미쓰비시덴키 가부시키가이샤 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법
JP5672063B2 (ja) * 2011-02-24 2015-02-18 富士通株式会社 送信制御プログラム、通信装置および送信制御方法
JP5680466B2 (ja) * 2011-03-29 2015-03-04 三菱重工業株式会社 並列処理システム及び並列処理システムの動作方法
JP6083290B2 (ja) * 2013-03-27 2017-02-22 日本電気株式会社 分散処理システム
WO2015161480A1 (en) * 2014-04-24 2015-10-29 Empire Technology Development Llc Resource consumption optimization
FR3021108B1 (fr) * 2014-05-16 2016-05-06 Thales Sa Procede d'execution de services en temps reel, notamment de gestion de vol et systeme temps reel mettant en oeuvre un tel procede
CN105446979B (zh) * 2014-06-27 2019-02-01 华为技术有限公司 数据挖掘方法和节点
EP2977898B1 (en) * 2014-07-11 2018-08-29 Tata Consultancy Services Limited Task allocation in a computing environment
US9354937B2 (en) * 2014-07-18 2016-05-31 Thomson Reuters Global Resources System and method for electronic work prediction and dynamically adjusting server resources
JP6563187B2 (ja) * 2014-11-12 2019-08-21 株式会社東芝 分散制御システム、制御装置及び制御方法
JP6515708B2 (ja) * 2015-07-06 2019-05-22 富士通株式会社 情報処理装置、並列計算機システム、ジョブスケジュール設定プログラムおよびジョブスケジュール設定方法
EP3121716A1 (en) * 2015-07-21 2017-01-25 Robert Bosch Gmbh Method and apparatus for hosting a multitasking guest on a host system
JP2017107385A (ja) * 2015-12-09 2017-06-15 日本電信電話株式会社 タスク割当装置、方法、及びプログラム
JP2018018171A (ja) * 2016-07-25 2018-02-01 富士通株式会社 並列処理装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
JP6673083B2 (ja) * 2016-07-29 2020-03-25 富士通株式会社 並列処理装置、並列処理装置の電源制御プログラム、及び並列処理装置の電源制御方法
JP6885193B2 (ja) * 2017-05-12 2021-06-09 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134203A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd 分散制御システム
WO2013094156A1 (ja) * 2011-12-19 2013-06-27 日本電気株式会社 タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム
JP2015225396A (ja) * 2014-05-26 2015-12-14 日立オートモティブシステムズ株式会社 車両制御装置

Also Published As

Publication number Publication date
DE112017007655T5 (de) 2020-03-05
CN110770704B (zh) 2023-02-17
US20200159540A1 (en) 2020-05-21
US10747546B2 (en) 2020-08-18
CN110770704A (zh) 2020-02-07
JPWO2018235124A1 (ja) 2019-11-07
JP6707198B2 (ja) 2020-06-10

Similar Documents

Publication Publication Date Title
US9218210B2 (en) Distributed processing system
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
CN107111517A (zh) 针对归约器任务的虚拟机优化分配和/或生成
CN113037800B (zh) 作业调度方法以及作业调度装置
CN109992407A (zh) 一种yarn集群gpu资源调度方法、装置和介质
JP5759333B2 (ja) セル生産方式における適応型ロットサイズ決定のためのシステムおよび方法
KR20120110215A (ko) 생산계획을 수립하기 위한 방법, 시스템 및 기록매체
WO2015041014A1 (ja) 作業計画スケジューリング装置およびその方法
Rauchecker et al. Using high performance computing for unrelated parallel machine scheduling with sequence-dependent setup times: Development and computational evaluation of a parallel branch-and-price algorithm
CN115883442A (zh) 数据传输路径的确定方法、装置及电子设备
JP6707198B2 (ja) 分散配置装置、分散配置システム、および、分散配置方法
US11212174B2 (en) Network management device and network management method
US20120059938A1 (en) Dimension-ordered application placement in a multiprocessor computer
CN103677996B (zh) 用于平衡工作负荷分布的协作方法和系统
Davidović et al. Parallel local search to schedule communicating tasks on identical processors
Hino et al. Decentralized job shop scheduling by recursive propagation method
Gu et al. Analyzing execution dynamics of scientific workflows for latency minimization in resource sharing environments
CN104484230B (zh) 基于近数据计算原则的多卫星数据中心工作流调度算法
JP2020126487A (ja) 並列処理装置、データ転送先決定方法およびデータ転送先決定プログラム
Zheng et al. Joint scheduling of overlapping MapReduce phases: Pair jobs for optimization
AkashKumar Heuristic for accelerating run-time task mapping in NoC-based heterogeneous MPSoCs
US9203733B2 (en) Method of pseudo-dynamic routing in a cluster comprising static communication links and computer program implementing that method
Miranda et al. Dynamic communication-aware scheduling with uncertainty of workflow applications in clouds
Bhatti et al. Scheduling of parallel tasks with proportionate priorities
JP6234916B2 (ja) ネットワークシステムおよびその制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17914302

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019524715

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 17914302

Country of ref document: EP

Kind code of ref document: A1