EP4409402A1 - Procédé de supervision et superviseur du pilotage d'un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en oeuvre - Google Patents

Procédé de supervision et superviseur du pilotage d'un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en oeuvre

Info

Publication number
EP4409402A1
EP4409402A1 EP22793446.0A EP22793446A EP4409402A1 EP 4409402 A1 EP4409402 A1 EP 4409402A1 EP 22793446 A EP22793446 A EP 22793446A EP 4409402 A1 EP4409402 A1 EP 4409402A1
Authority
EP
European Patent Office
Prior art keywords
processing
component
execution
input data
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP22793446.0A
Other languages
German (de)
English (en)
Inventor
Drissa Houatra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Publication of EP4409402A1 publication Critical patent/EP4409402A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the invention relates to distributed parallel processing in a communication network and more particularly to the control of these distributed parallel processing.
  • Distributed parallel processing is used in particular for "cloud computing” or the execution of programs in the network, for example of distributed “cloud” services, and for learning applications in artificial intelligence (automatic learning, statistics, “machine learning” or machine learning, learning afterwards).
  • So-called “Dataflow” programming is a model that calls into question the principle of synchronous control (instruction by instruction) of a program. It is distinguished by its particular way of controlling the control flow of parallel programs. Recently applied to real-time massive data processing platforms, it avoids loss of control time, but not exchange time or data waiting time. So it actually avoids a (limited) part of the coordination delays. Furthermore, the design and implementation of “Dataflow” programs proves difficult to master, which limits the adoption of “Dataflow” models.
  • One of the aims of the present invention is to remedy the drawbacks of the state of the art.
  • An object of the invention is a method for supervising the piloting of distributed parallel processing in a communication network, the distributed parallel processing consisting of a piloting method implemented by a service provision device and several processing components, including a first component and a second component, distributed over nodes of the communication network, the steering method comprising a succession of steps including a step for triggering the execution of a processing component by a node, the piloting supervision method comprising an execution of the step of triggering the execution of a component of the processing as soon as the piloting method reaches the step of triggering the execution of this component.
  • the present invention differs from prior techniques by breaking completely with the constraint of availability of input data before the execution of a processing component.
  • This invention makes it possible to launch the execution of the remote component of the processing (service, program, method, procedure, function, etc.) before the availability of the values of the input parameters (also called, input data).
  • the invention relates to any processing that can be called remotely according to imperative or declarative programming, with input data.
  • the programs implementing this invention make it possible to further limit the coordination times of the distributed parallel processing operations, beyond what can be done so far.
  • the implementation of this invention makes it possible to drastically accelerate distributed software, by limiting the share of coordination delays due to waiting for input data. treatments. This is often the case for services with massive parallelism whose programs and processing are not of a par- embarrassing rallyism, a category that encompasses many future services, especially in distributed learning in AI.
  • the piloting supervision device comprises supplying the piloting method with substitution data if, when the piloting method reaches a step for triggering the execution of a second component of the processing, input data provided by a first component of the processing and necessary to start the execution of the second component of the processing are not available.
  • the piloting of the processing is not modified since the piloting receives data which it considers to be input data even if these are not available making it possible to trigger the piloting of the execution of the corresponding processing component either without input data or using the substitution data. Control is then said to be asynchronous since it controls the execution of a processing component without providing ad hoc input data.
  • the supervision method includes reading input data from a previous execution of the second component, the input data from the previous execution constituting the substitution data.
  • the processing component is executed using substitution data which is probably equivalent to the expected input data, by equivalent is understood that the result of the processing will be identical or approaching that produced with the input data. expected while reducing the time required to provide the result.
  • the supervision method comprises a prediction of input data, the predicted input data constituting the substitution data.
  • the supervision method comprises, when the processing is closed, a recording of the input data of the components of the processing being executed.
  • substitution data can be based at least on the input data of the previous execution of the processing, limiting the risks of processing errors.
  • the supervision method iterates, when closing the processing, an invocation counter initialized to zero.
  • the supervision method comprises an association of the invocation counter with the recorded data.
  • the substitution data can be based in addition to the data of the previous executions of the processing but also on their evolutions further reducing the risks of processing errors.
  • the prediction is a function of at least one of the following data from the recorded input data and the associated invocation counter.
  • the supervision method comprises, if the supervision method receives data from a first component intended for a second component after the execution of the step for triggering execution of the second component, a supply of the data from the first component to the second component if a prediction error is detected based on the predicted input data and the received input data.
  • the various steps of the method according to the invention are implemented by computer software or program, this software comprising software instructions intended to be executed by a data processor a supervisor for piloting a processing forming in particular part of a device for providing services and being designed to control the execution of the various steps of this method.
  • the invention therefore also relates to a program comprising program code instructions for the execution of the steps of the process for supervising the piloting of a processing when said program is executed by a processor.
  • This program can use any programming language and be in the form of source code, object code or intermediate code between source code and object code such as in a partially compiled form or in any other desirable form. .
  • An object of the invention is also a supervisor for controlling distributed parallel processing in a communication network, the distributed parallel processing consisting of a control method implemented by a controller of a supply of services comprising the Supervisor and several processing components, including a first component and a second component, distributed over nodes of the communication network, the steering method comprising a succession of steps including a step for triggering the execution of a component of the processing by a node, the supervisor comprising a decoupler 110 capable of controlling the execution of the step of triggering the execution of a component of the processing as soon as the piloting method reaches the step of triggering the execution of this component.
  • the supervisor comprises a memory capable of storing data, when the processing is closed, of the input data of the components of the processing being executed.
  • the supervisor comprises an invocation counter initialized to zero and capable of being iterated upon closing the processing.
  • An object of the invention is also a device for providing services comprising a controller capable of controlling distributed parallel processing in a communication network, the distributed parallel processing consisting of a control method implemented by the controller and several processing components, including a first component and a second component, distributed over nodes of the communication network, the piloting method comprising a succession of steps including a step for triggering execution of a processing component by a node, the service provision device comprising a supervisor capable of controlling the execution of the step of triggering the execution of a component of the processing as soon as the piloting method reaches the step of triggering the execution of this component.
  • FIG. la a simplified diagram of a process for supervising the control of distributed parallel processing according to the invention
  • FIG.1b a non-exhaustive detailed diagram of a first part of a process for supervising the control of a distributed parallel processing according to the invention
  • FIG. le a simplified diagram of a second part of a method for supervising the control of distributed parallel processing according to the invention
  • FIG. Id a simplified diagram of distributed parallel processing
  • FIG.2 a simplified diagram of a flowchart illustrating the supervision method according to the invention
  • FIG.3 a simplified diagram of a distributed communication architecture comprising a supervisor according to the invention
  • FIG.4 a simplified diagram of a communication architecture in which a processing component is implemented in a remote node of a service provision device controlling the processing according to the invention
  • FIG.5 a simplified diagram of a communication architecture comprising a service provision device separately supervising the control of the execution by remote nodes of a component of a processing and the prediction input data from ad hoc components.
  • the invention is motivated by the design needs of future networks and services (5G, 5G+, etc.) with peripheral processing techniques (or “edge computing"), peripheral "cloud” services (" edge cloud” in English) and distributed. It paves the way for new uses of machine learning, design and programming of more efficient peripheral distributed cloud services for future networks and services, and implementation of more efficient distributed processing for training models.
  • distributed learning in AI This involves using the aggregated and distributed resources within the peripheral network installations of an operator (access, aggregation, mobile core, etc.) as support for the execution of cloud services, to cope with the load of calculation with more performance, and thus reduce processing times. This type of learning approach is growing, and its widespread use in future networks is becoming clearer.
  • FIG. 1 illustrate the supervision method according to the invention.
  • FIG. la illustrates a simplified diagram of a method for supervising the control of a distributed parallel processing according to the invention.
  • the SPTPD supervision method supervises the piloting PP of distributed parallel processing in a communication network.
  • Distributed parallel processing consists of a piloting process PP implemented by a service provision device and several processing components C, including a first component and a second component, distributed over nodes of the communication network.
  • the piloting process PP comprises a succession of steps including a step of triggering C_TRG for the execution of a component of the processing by a node.
  • the control process SPTPD includes an execution INST_EXE of the step for triggering the execution of a processing component as soon as the control process PP reaches the step for triggering the execution of this component.
  • FIG.1b illustrates a non-exhaustive detailed diagram of a first part of a process for supervising the control of a distributed parallel processing according to the invention.
  • the steering supervision device SPTPD comprises a supply D_PRV to the steering method PP of substitution data d sub .
  • the SPTPD supervision method includes a verification of the availability of the input data of C j?. The verification of the availability of the input data of a component Cj is verified as soon as the control method reaches the step for triggering the execution of this component Cj.
  • the supervision process directly supplies these input data of Cj to the control process which triggers Cj_TRG the execution of the second component Cj by transmitting to the component Cj the available input data of C j.
  • the SPTPD supervision method detects the achievement by the piloting method of a trigger step Cj_TRG of an execution of a component of the processing.
  • the piloting process PP informs the supervision process SPTPD of the achievement of a triggering step Cj_TRG of an execution of a component of the processing.
  • the supervision method SPTPD detects the Cj input data expected by the processing component Cj whose piloting method PP has reached the execution trigger step Cj_TRG.
  • the piloting method PP requests from the supervision method SPTPD the input data of Cj expected by the processing component Cj whose piloting method PP has reached the step of triggering execution Cj_TRG.
  • the SPTPD supervision method includes receiving data provided by the execution of a first component Ci of the processing, in particular the input data of a second component of the processing Cj.
  • supplying input data D_PRV then supplies the previous data of Cj (n1) as substitution data dsub.
  • the supervision process SPTPD reads D_RD the input data of the previous execution of Cj (nl) in a memory storing BDD processing input data, in particular in a processing input database, or even of processing implemented by the service provision device.
  • the supply of input data D_PRV then supplies the predicted data dp as substitution data dsub.
  • the supervision process SPTPD predicts the input data of the second component dp Cj in particular according to input data from previous executions ⁇ of C j(î]) ⁇ r
  • i . or stored in a processing input data memory BDD, in particular in a processing input data base, or even of processing implemented by the service provision device.
  • the invocation counter r] indicates the number of invocations of the processing during the recording of input data.
  • invocation of the processing is meant the request for execution of the processing.
  • FIG. le illustrates a simplified diagram of a second part of a method for supervising the control of a distributed parallel processing SPTPD according to the invention.
  • the execution of a processing includes the execution of the piloting method PP.
  • the start of the execution of the control method consists of a start of the execution of the TT_STR processing.
  • the piloting process comprises a succession of processing component triggering steps C1_TRG, ..., Ci_TRG, ..., Cj_TRG... until the end of the TT_CL processing.
  • invocation counter initialized to zero is understood that the invocation counter is at zero before the first invocation of the processing.
  • the SPTPD supervision method comprises an association ASS of the invocation counter n with the recorded data ⁇ of C ; ⁇ i: ( ⁇ deci]i, n).
  • the recording of the data DE_MEM behavior a recording of the pair ( ⁇ de a ⁇ i, n) made up of the recorded data ⁇ de a ⁇ and the invocation counter n supplied by the association ASS.
  • the supervision method is implemented in the form of a program comprising program code instructions for the execution of the steps of the method for supervising the piloting of a processing when said program is executed by a processor.
  • FIG. Id illustrates a simplified diagram of distributed parallel processing.
  • the distributed parallel processing TT comprises a piloting method PP implemented by a service provision device and several processing components CI...Ci...C, implemented by remote nodes.
  • some nodes can implement a Cl, Ci, Cj or more of the components of the
  • the piloting process PP triggers la.cmd(exe,de cl ),..., 2a.cmd(exe,de ci ),...,3a.cmd(exe,de c i) the execution of a component Cl,..., Ci,..., Ci.
  • the piloting method PP receives data supplied lb.answ(de d ),..., 2b.answ(de CJ ),..., 3b.answ by processing components C 1. ..Ce executed.
  • the data provided by a first processing component Ci includes input data from a second processing component of Cj .
  • the piloting method PP triggers the execution of a second component by transmitting the input data ⁇ of a ⁇ provided by a first component. This is why, in the prior art, the piloting method PP waits for the supply of these input data ⁇ of ⁇ ⁇ by the first component before triggering the execution of the execution of the second component.
  • FIG.2 illustrates a simplified diagram of a flowchart illustrating the supervision method according to the invention.
  • the SPTPD supervision method includes a start of the SPTPD supervision.
  • the supervision method receives a call to the TT_RQ_RCV processing in particular from a communication terminal or more particularly from a component of the Cj_REQ_RCV processing of the PP piloting method of the TT processing when the PP piloting method reaches the execution triggering step of the Ci component of the treatment.
  • the communication terminal sends to the service provision device implementing the TT processing a processing request or invocation of the processing tt_req.
  • the SPTPD supervision method verifies sc? whether processing execution should be implemented synchronously or asynchronously. For example, the SPTPD supervision method asks the terminal whether the processing should be executed synchronously or not.
  • the piloting method PP triggers the execution of the second component Cj_TRG of the processing after reception of the input data of Ci provided by one or more first components Ci of the processing previously executed.
  • the SPTPD supervision process performs an asynchronous call, that is to say an invocation without supplying the input data AS_TT, AS_Ci when the execution of a component is triggered.
  • the SPTPD supervision process commands exe_cmd to the control process to trigger the execution of a component Ci_TRG without providing the input data of this component.
  • the SPTPD supervision process checks whether the input data must be sent asynchronously or not d_as?.
  • the SPTPD supervision method implements a data service or data supply D_PRV which recovers data from a previous invocation in a memory or database BDD.
  • the SPTPD supervision process includes a data availability review for the execution of the DE_RVW component.
  • the SPTPD supervision method verifies the available data d?.
  • the supervision process SPTPD performs a delayed or anticipated asynchronous processing AS_TT, AS_Cj in particular according to the substitution data d sub produced by the data service D_PRV from the input data of the invocation or the previous invocations (that is to say of a history of input data) recorded in a memory BDD and/or of predicted data dp.
  • the SPTPD supervision process predicts D_PRED the input data for the asynchronous processing AS_TT, AS_Cj.
  • the SPTPD supervision method provides substitution data comprising either input data from previous invocation(s), or data predicted indirectly to the component Cj whose execution is triggered asynchronously.
  • the SPTPD supervision process receives a TT_RSP, Ci_RSP return.
  • the supervision method is terminated STP.
  • the invention breaks with the practice of ensuring that the input data of the processing component are available before triggering the execution of this component which is often the cause of significant delays in coordination.
  • the SPTPD supervision process authorizes the component to run even if the data is not available. This is possible because the control of the triggering of the execution of the component is transferred from the piloting process to the supervision process.
  • a supply of D_MNGT data without transfer of control i.e. a management of the input data of a component independent of the execution of this component, comprising a recording of the data for future invocations and a supplying the data recorded during an invocation in progress as substitution data so that the control method immediately executes the step for triggering execution of the processing component with the supply of the substitution data to the processing component or for predict D_PRED of dp data used for asynchronous processing AS_TT, AS_Cj;
  • the supervision method forces the execution of the step of the execution triggering piloting method of a processing component even if no data by substituting for the input data substitution data obtained by prediction of data D_PRED or simple reading of the stored input data of previous invocation(s);
  • the first two options allow the supervision method to desynchronize the two sub-actions (transfer of control and supply of data) which were previously inseparable.
  • the first option introduces a memory of input data to be used for future invocation.
  • the second option introduces the fact that the unavailable input data is replaced either by input data stored during previous invocations and supplied by the data management D_MNGT, or by predicted input data.
  • D-PRD prediction is notably built by learning with a model that will have been designed and trained for each treatment.
  • the prediction comprises neural networks and a deep learning process making it possible to design and train suitable predictors in order to better predict the input data of the invocation in progress or even of the following invocation.
  • FIG.3 illustrates a simplified diagram of a distributed communication architecture comprising a supervisor according to the invention.
  • the distributed communication architecture includes in particular a service provision device 1 implementing at least one distributed parallel service or processing TT.
  • a controller 10 controls the execution by different nodes 2 b ..., 2 K of the communication network 3 of components C i . • -C, TT treatment.
  • a node 2k comprises a processor 2() k ′ capable of executing the component Ci of the processing TT.
  • the service provision device 1 includes the controller 10.
  • the node 20 (not illustrated) at the origin of the invocation of the processing, called invoking node, (that is to say having required the implementation of the proposed by the service provision device) comprises the controller 10.
  • the invoking node 20 comprises a processor 10 capable of executing the method of piloting PP of the processing TT.
  • the invoking node 20 comprises at least one control interface, not illustrated, capable of exchanging with the controller 10 and the service provision device 1 comprises the controller 10.
  • the control interface control comprises in particular a launcher capable of triggering the start of processing by the controller.
  • the control interface further comprises a process selector from among the processes made available by the service provision device 1.
  • the supervisor 11 is capable of supervising the piloting of distributed parallel processing in a communication network.
  • Distributed parallel processing consists of a piloting method implemented by a controller 10 of a service provision device 1 comprising the supervisor 11 and of several processing components, including a first component and a second component, distributed over communication network nodes 2 1; ..., 2k ..., 2K .
  • the piloting method comprises a succession of steps including a step for triggering the execution of a processing component by a node.
  • a node 2i...2 k .. ,2 K comprises in particular an execution command receiver la.cmd(exe,de C i),...2a.cmd(exe,de ci),... 3a.cmd(exe,de C i), and a processor 20 ⁇ capable of executing the processing component Ci (also called the first component) upon receipt of the execution command and of providing a result of processing component lb.answ(of Cj ),... 2b. answ(of a ),... 3b.answ possibly comprising input data from another processing component (also called second component).
  • the controller 10 is able to receive the input data of a second component of the processing Cj resulting from the execution of a first component of the processing Ci %b.ailSw(deCj)
  • the supervisor 11 comprises a decoupler 110 capable of controlling 24.exe_cmd the execution of the step for triggering the execution of a processing component as soon as the control method reaches the step for triggering the execution of this component 2O.nxt(Ci).
  • the supervisor 11 includes a memory 113 capable of storing data, when the processing is closed, of the input data of the components of the processing being executed.
  • the supervisor 11 includes an invocation counter 116 initialized to zero and capable of being iterated upon closing the processing.
  • the supervisor 11 comprises a recorder 115 able to write in a memory 113 input data of the invocation in progress and/or the number of the invocation in progress in particular provided by the invocation counter 116.
  • the recorder 115 is capable of associating the input data with the number of the invocation in progress before recording them in particular in the form of a pair: (input data, invocation number).
  • the supervisor comprises a reader 115 capable of reading during an invocation in progress the data recorded during previous invocation(s), in particular in a memory 113.
  • the recorder and the data reader are one and the same data reader/writer 115.
  • the supervisor 11 comprises a detector 114 of the end of processing or closing of processing.
  • the end of processing detector 114 triggers ll.w_trg(de) the writing by the recorder 115 of the data 12.de and/or the value of the invocation counter 12.(de,n).
  • the invocation counter 126 provides its value 1 l'.n to the recorder 115 possibly on request from the recorder 115.
  • the detector 114 or the recorder 115 triggers 13.it_trg the iteration of the invocation counter 116 after the recording of the data by the recorder 115.
  • the detector 114 is capable of receiving end of processing information 10.cl(de) from the controller and/or of requesting, possibly in a pe- periodically, to the controller 10, the processing step being executed (for example start, component number, end, etc.) and/or to detect when the controller 10 has reached the end of processing step .
  • the supervisor 11 includes a receiver 114 capable of receiving data from the controller 10, in particular the input data of the components of the processing being invoked.
  • the receiver 114 further includes the end of processing or processing closure detector.
  • the receiver 114 provides the input data to the recorder 115 with the w_trg write trigger.
  • the supervisor includes a data availability detector 111 able to check whether the input data is available and to trigger 21'.d_as if not the decoupler 110.
  • the decoupler 110 commands 24.exe_cmd to execute the processing component without the input data.
  • the availability detector 111 is triggered 20.nxt(Ci) by reaching a step for triggering the execution of a processing component by the controller 10.
  • the decoupler 110 supplies unavailable input data instead of the substitution data 24.exe_cmd(d sub ).
  • the supervisor 11 comprises a substitution data generator 112 able to generate substitution data d sub from in particular the input data recorded in the memory 113, that is to say data from 'entry of the previous invocation 22. ⁇ de(nl) ⁇ , or even pairs: input data of the previous invocations and invocation number 22. ⁇ de(r
  • the supervisor 11 comprises a data reader 1120 capable of reading data 22. ⁇ de(nl) ⁇ , 22. ⁇ de(r
  • 11.1 in the memory 113 and supplying them 23'.de a (n-1) to the decoupler 110.
  • the substitution data generator 112 includes the data reader 1120.
  • the predictor 1121 receives from the reader 1120 the input data of the previous invocations 23'. ⁇ de( r
  • n .i.
  • a 2k node of the communication network in which distributed parallel processing operations are executed comprises at least one component of a first processing operation, or even several components of one or more first processing operations, and possibly a service provision device supplying a second treatment.
  • the [Fig.4] illustrates a simplified diagram of a communication architecture in which a processing component is implemented in a remote node of a service provision device controlling the processing according to the invention .
  • a service provision device 1 controls the execution of component(s) of a processing of the nodes 2k of the communication network 3.
  • a processor 20k of the node 2k executes the component of the processing.
  • the service provision device 1 comprises a decoupler 110 suitable for triggering the immediate execution of a processing component as soon as the service provision device 1 reaches the step of triggering the execution of this component.
  • the service provision device 1 invokes the processing component asynchronously, that is to say before the input data of this component are available.
  • the service provision device comprises a data manager 118 capable of recording input data in particular in a memory 115 (see [Fig.3]).
  • the data manager 118 includes a substitution data generator 112 (see [Fig.3]) based on input data from previous invocation(s).
  • the data manager 118 makes it possible to manage the input data of a component asynchronously with respect to the execution of this component.
  • the service provision device 1 comprises a standard processing component invoker, that is to say synchronous since it controls the execution of a second component by providing the input data provided by the execution of a first component.
  • the [Fig.5] illustrates a simplified diagram of a communication architecture comprising a service provision device separately supervising the piloting of the execution by remote nodes of a processing component and the prediction of ad hoc component input data.
  • a supervisor 11 is capable of triggering in a delayed manner (that is to say by using the input data recorded during the previous invocation rpl) or anticipated (that is to say using prediction) an invocation by the controller 10 of the processing components.
  • the supervisor 11 has a memory 113 in which a history of the input data during one or more of the preceding invocations is kept: either it comprises the memory 113, or it comprises an interface with this memory 113 (in particular a recorder and/or a memory reader).
  • the supervisor 11 includes an invocation counter 116.
  • the Cl component of the processing is triggered in a delayed manner Cl_trg(tl,r
  • the supervisor retrieves the input data of C i(ql) provided by another component during the previous invocation q-1 to trigger the execution of this component Cl as soon as the step for triggering the execution of the component CL is reached at time tl
  • the C2 component is triggered in advance C2_trg(t2), that is to say that the supervisor triggers an asynchronous invocation using the predictor by the controller of the C2 component.
  • component C2 is triggered in particular by providing, instead of input data, anticipated data, for example predicted by means of a neural network according to the history recorded in the memory 113.
  • the implementation of the component is said to be delayed because it uses input data from the previous invocation and not from the invocation in course.
  • the processing component C p .i is triggered in a delayed manner C p .i_trg(t p.1 , q- 1), i.e. the supervisor triggers an asynchronous invocation using the history 113 by the component controller C p .i.
  • the su- pervisor retrieves the input data of Cp .i(r
  • the Cp component is triggered in advance Cp_trg(tp), that is to say that the supervisor triggers an asynchronous invocation using the predictor by the controller of the Cp component. This means that as soon as the step for triggering the execution of the component Cp is reached at time tp, in particular by providing, instead of input data, anticipated data, in particular predicted by means of a network of neuron according to the history recorded in the memory 113.
  • the supervisor thus provides an asynchronous and predictive invocation service.
  • the recording of a processing operation consists in particular of creating an invocation counter for this processing operation, which will be initialized to 0.
  • the asynchronous and predictive invocation service also allocates memory space to hold the values of the last parameters received. At the end of each new call or invocation of a process, the value of the invocation counter for this process is incremented, and the values of the last parameters are updated.
  • the first contribution of an asynchronous and predictive invocation service is to memorize the values of the parameters of the previous calls. We save all the last calls of each process, to be able to use them at the next call if there is no new value available. Each time a process is invoked, the values that are not present as inputs are retrieved from this storage space of previous parameter values.
  • the predictor is designed and trained by learning, from historical invocation data.
  • the supervisor comprises in particular a comparator of the predicted values with the received values. If the difference in values complies with a specified validity threshold then we validate, otherwise we invalidate and we start the processing again with the new values received. This mechanism makes it possible to process the erroneous predictions inherent in learning, and thus to reinforce the robustness of the invention.
  • the invention also relates to a support.
  • the information carrier can be any entity or device capable of storing the program.
  • the medium may include a storage medium, such as a ROM, for example a CD ROM or a microelectronic circuit ROM or else a magnetic recording medium, for example a floppy disk or a hard disk.
  • the information medium can be a transmissible medium such as an electrical or optical signal which can be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can in particular be downloaded onto a network, in particular of the Internet type.
  • the software implementation of this invention is based on so-called complete machines, which are machines with all the resources necessary for the execution of a program.
  • a (complete) machine can be:
  • a basic machine The equivalent of a PC or a physical server with a single unmarked processing unit, CPU/GPU type.
  • Machines with multiple commoditized processing units can support the execution of up to as many base machines as there are commoditized processing units.
  • VM virtual machine
  • hypervisor hypervisor type
  • cloud service infrastructures Either a virtual machine (VM) for a basic machine, as implemented in modern virtualization software (of the hypervisor type), and cloud service infrastructures.
  • a container for a base machine as implemented in container platforms and orchestrators (Docker, Kubernetes, Mesos, etc.) and used for programming distributed, container-based cloud-native services and microservices architectures.
  • container platforms and orchestrators Docker, Kubernetes, Mesos, etc.
  • the asynchronous and predictive invocation service is designed and implemented in such a way as to be able to execute one or more instance(s) of this asynchronous and predictive invocation service on each base machine of infrastructure.
  • the basic machines of the peripheral installations under the control of the operator generally aggregated within a small data center, will each execute at least one instance of the asynchronous and predictive invocation service. All of these basic machines equipped with asynchronous and predictive invocation services, organized in small data centers, will be used as a distributed cloud infrastructure, to program, deploy and execute more efficient services by reducing coordination times.
  • the invention can be integrated into an operator's cloud infrastructure services: distributed Multiservice Edge Computing (MEC) services, NWDAF (Network Data Analytics Function) service for data analysis and AI in networks 5G, distributed learning platforms (TensorFlow, Keras, etc.), real-time massive data processing and e-learning platforms (Hadoop (MapReduce), Spark, Flink, etc.), etc.
  • MEC distributed Multiservice Edge Computing
  • NWDAF Network Data Analytics Function
  • the information medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • module can correspond either to a software component or to a hardware component.
  • a software component corresponds to one or more computer programs, one or more sub-programs of a program, or more generally to any element of a program or software capable of implementing a function or a function set as described above.
  • a hardware component corresponds to any element of a hardware assembly capable of implementing a function or a set of functions.
  • the invention can be used by software in applications in many fields, including:
  • NFV Network function virtualization
  • the invention targets services and applications in the 5G (+) network domain, with high granularity and having a low ratio of remote calls. It can then be generalized to high-performance, real-time applications provided outside of operator networks. This extension will make it possible to target markets historically occupied by IT players:

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

L'invention concerne les traitements parallèles distribués dans un réseau de communication et plus particulièrement le pilotage de ces traitements parallèles distribués. Un objet de l'invention est un procédé de supervision du pilotage d'un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d'un procédé de pilotage mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d'étapes dont une étape de déclenchement d'exécution d'une composante du traitement par un nœud, le procédé de supervision du pilotage comportant une exécution de l'étape de déclenchement d'exécution d'une composante du traitement dès que le procédé de pilotage atteint l'étape de dé- clenchement de l'exécution de cette composante. Ainsi, la présente invention se distingue des techniques antérieures en rompant totalement avec la contrainte de disponibilité des données en entrée avant l'exécution d'une composante du traitement. Cette invention permet de lancer l'exécution de la composante distante du traitement (service, programme, méthode, procédure, fonction, etc.) avant la disponibilité des valeurs des paramètres en entrée (aussi nommées, données d'entrée). L'invention concerne tout traitement qui peut être appelé à distance selon la programmation impérative ou déclarative, avec des données d'entrée.

Description

Description
Titre de l’invention : Procédé de supervision et superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en œuvre
Domaine technique
[0001] L'invention concerne les traitements parallèles distribués dans un réseau de communication et plus particulièrement le pilotage de ces traitements parallèles distribués. Etat de la technique
[0002] Les traitements parallèles distribués sont utilisés notamment pour le « cloud computing » ou l’exécution de programme dans le réseau, par exemple de services « cloud » distribués, et des applications de l’apprentissage en intelligence artificielle (apprentissage automatique, apprentissage statistique, « machine learning » ou apprentissage machine, apprentissage par la suite).
[0003] Dans ce domaine, en général, on commence à appliquer les techniques de base de conception de programmes (dits parallèles) distribués, consistant en des modèles de contrôle et de données, des décompositions et des partitions, des placements, des échanges et synchronisations, etc. Ensuite, on conçoit les algorithmes et on effectue les optimisations au cas par cas, avec comme objectif la réduction au mieux des temps de traitement. Les résultats dépendent en grande partie du domaine d’application, et aussi d’un certain savoir-faire en matière d’ingénierie des programmes parallèles, ou d’ingénierie simultanée. Mais dans la plupart des cas, les algorithmes et programmes résultant conduisent à des gains de performance limités, et surtout qui se dégradent fortement avec l’augmentation du nombre d’unités de traitement. Seules les applications dites de parallélisme embarrassant, avec peu de coordination entre les entités parallèles, échappent à cette difficulté. Or, l’écrasante majorité des applications du domaine de l’analyse de données et de l’apprentissage sont loin d’être de parallélisme embarrassant. L’entrainement d’un modèle d’apprentissage profond par exemple n’est absolument pas d’un parallélisme embarrassant.
[0004] La programmation dite « Dataflow » est un modèle qui remet en cause le principe de contrôle synchrone (instruction par instruction) d’un programme. Elle se distingue par sa façon particulière de piloter le flot de contrôle des programmes parallèles. Récemment appliquée aux plates-formes de traitement temps réel de données massives, elle permet d’éviter des pertes de temps de contrôle, mais pas les temps d’échange, ni les temps d’attente des données. Donc elle permet d’éviter en fait une partie (limitée) des délais de coordination. Par ailleurs la conception et mise en œuvre de programmes « Dataflow » s’avère difficile à maîtriser, ce qui limite l’adoption des modèles « Dataflow ».
[0005] Les techniques antérieures permettent d’accélérer les programmes par traitements parallèles distribués avec un succès limité, mais toutes ces techniques restent fondées sur le pilotage des traitements par la disponibilité des données en entrée. Elles se heurtent toujours à des délais de coordination fortement croissant dès lors qu’on utilise un grand nombre de machine et d’unités de traitement. Dans le cas de traitement parallèles massifs, il arrive souvent qu’ au-delà d’une certaine limite, l’ajout d’unités de traitement devient contre-productif.
Exposé de l'invention
[0006] Un des buts de la présente invention est de remédier à des inconvénients de l'état de la technique.
[0007] Un objet de l’invention est un procédé de supervision du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le procédé de supervision du pilotage comportant une exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
[0008] Ainsi, la présente invention se distingue des techniques antérieures en rompant totalement avec la contrainte de disponibilité des données en entrée avant l’exécution d’une composante du traitement. Cette invention permet de lancer l’exécution de la composante distante du traitement (service, programme, méthode, procédure, fonction, etc.) avant la disponibilité des valeurs des paramètres en entrée (aussi nommées, données d’entrée). L’invention concerne tout traitement qui peut être appelé à distance selon la programmation impérative ou déclarative, avec des données d’entrée.
[0009] Les programmes mettant en œuvre cette invention permettent de limiter encore plus les délais de coordination des traitements parallèles distribués, au-delà de ce qui peut être fait jusque-là. Dans le cas de services distribués demandant des temps importants d’attente des données d’entrées, la mise en œuvre de cette invention permet d’accélérer drastiquement les logiciels distribués, en limitant la part des délais de coordination due aux attentes des données en entrée des traitements. C’est souvent le cas pour les services à parallélisme massif dont les programmes et traitement ne sont pas d’un pa- rallélisme embarrassant, catégorie qui regroupe de nombreux services futurs, en particulier dans d’apprentissage distribué en IA.
[0010] Avantageusement, le dispositif de supervision du pilotage comporte une fourniture au procédé de pilotage de données de substitution si, lorsque le procédé de pilotage atteint une étape de déclenchement d’exécution d’une deuxième composante du traitement, des données d’entrée fournies par une première composante du traitement et nécessaires au démarrage de l’exécution de la deuxième composante du traitement ne sont pas disponibles.
[0011] Ainsi, le pilotage du traitement n’est pas modifié puisque le pilotage reçoit des données qu’il considère comme étant des données d’entrée même si celles-ci ne sont pas disponibles permettant de déclencher le pilotage de l’exécution de la composante de traitement correspondante soit sans données d’entrée, soit en utilisant les données de substitution. Le pilotage est alors dit asynchrone puisqu’il commande l’exécution d’une composante du traitement sans fournir les données d’entrées ad hoc.
[0012] Avantageusement, le procédé de supervision comporte une lecture de données d’entrée d’une précédente exécution de la deuxième composante, les données d’entrée de la précédente exécution constituant les données de substitution.
[0013] Ainsi, la composante de traitement est exécutée en utilisant des données de substitution qui sont probablement équivalentes aux données d’entrées attendues, par équivalentes est entendu que le résultat du traitement sera identique ou approche de celui produit avec les données d’entrées attendues tout en réduisant le délai de fourniture du résultat.
[0014] Avantageusement, le procédé de supervision comporte une prédiction de données d’entrée, les données d’entrée prédites constituant les données de substitution.
[0015] Ainsi, le risque d’erreur de traitement est encore réduit tout en conservant la réduction de délai.
[0016] Avantageusement, le procédé de supervision comporte, lors de la clôture du traitement, un enregistrement des données d’entrées des composantes du traitement en cours d’exécution.
[0017] Ainsi, les données de substitution peuvent se baser au moins sur les données d’entrée de la précédente exécution du traitement limitant les risques d’erreurs de traitement.
[0018] Avantageusement, le procédé de supervision itère, lors de la clôture du traitement, un compteur d’invocation initialisé à zéro.
[0019] Avantageusement, le procédé de supervision comporte une association du compteur d’invocation aux données enregistrées.
[0020] Ainsi, les données de substitution peuvent se baser outre sur les données des précédentes exécutions du traitement mais aussi sur leurs évolutions réduisant encore les risques d’erreurs de traitement. [0021] Avantageusement, la prédiction est fonction d’au moins une des données parmi les suivantes des données d’entrées enregistrées et du compteur d’invocation associé.
[0022] Avantageusement, le procédé de supervision comporte, si le procédé de supervision reçoit des données d’un première composante destinée à une deuxième composante après l’exécution de l’étape de déclenchement d’exécution de la deuxième composante, une fourniture des données provenant de la première composante à la deuxième composante si une erreur de prédiction est détectée en fonction des données d’entrées prédites et des données d’entrée reçues.
[0023] Ainsi, les erreurs de traitement sont limitées car la dérive de prédiction est stoppée. [0024] Avantageusement, selon une implémentation de l'invention, les différentes étapes du procédé selon l'invention sont mises en œuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d’un superviseur de pilotage d’un traitement faisant notamment partie d’un dispositif de fourniture de services et étant conçus pour commander l'exécution des différentes étapes de ce procédé.
[0025] L'invention vise donc aussi un programme comprenant des instructions de code de programme pour l’exécution des étapes du procédé de supervision du pilotage d’un traitement lorsque ledit programme est exécuté par un processeur.
[0026] Ce programme peut utiliser n'importe quel langage de programmation et être sous la forme de code source, code objet ou code intermédiaire entre code source et code objet tel que dans une forme partiellement compilée ou dans n'importe quelle autre forme souhaitable.
[0027] Un objet de l’invention est également un superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un contrôleur d’un dispositif de fourniture de services comportant le Superviseur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le superviseur comportant un découpleur 110 apte à commander l’exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
[0028] Avantageusement, le superviseur comporte une mémoire apte à stocker des données, lors de la clôture du traitement, des données d’entrées des composantes du traitement en cours d’exécution.
[0029] Avantageusement, le superviseur comporte un compteur d’invocation initialisé à zéro et apte à être itéré lors de la clôture du traitement. [0030] Un objet de l’invention est aussi un dispositif de fourniture de services comportant un contrôleur apte à piloter un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par le contrôleur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le dispositif de fourniture de services comportant un superviseur apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
Brève description des dessins
[0031] Les caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description, faite à titre d'exemple, et des figures s’y rapportant qui représentent :
[0032] [Fig. la], un schéma simplifié d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention,
[0033] [Fig.1b], un schéma détaillé non exhaustif d’une première partie d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention,
[0034] [Fig. le], un schéma simplifié d’une deuxième partie d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention,
[0035] [Fig. Id], un schéma simplifié d’un traitement parallèle distribué,
[0036] [Fig.2], un schéma simplifié d’un organigramme illustrant le procédé de supervision selon l’invention,
[0037] [Fig.3], un schéma simplifié d’une architecture de communication distribuée comportant un superviseur selon l’invention,
[0038] [Fig.4], un schéma simplifié d’une architecture de communication dans laquelle une composante d’un traitement est mise en œuvre dans un nœud distant d’un dispositif de fourniture de service pilotant le traitement selon l’invention,
[0039] [Fig.5], un schéma simplifié d’une architecture de communication comportant un dispositif de fourniture de service supervisant de manière distincte le pilotage de l’exécution par des nœuds distants d’une composante d’un traitement et la prédiction des données d’entrées des composantes ad hoc.
Description des modes de réalisation
[0040] L’invention est motivée par les besoins de conception des réseaux et services futurs (5G, 5G+, etc.) avec les techniques de traitement périphérique (ou « edge computing » en anglais), de services « cloud » périphérique (« edge cloud » en anglais) et distribués. Elle ouvre la voie à de nouveaux usages de l’apprentissage, à une conception et une programmation des services cloud distribués périphériques plus performants pour les réseaux et services futurs, et à une mise en œuvre de traitements répartis plus performants pour l’entrainement des modèles d’apprentissage distribués en IA. Il s’agit d’utiliser les ressources agrégées et réparties au sein des installations réseaux périphériques d’un opérateur (accès, agrégation, cœur mobile, etc.) comme support à l’exécution de services cloud, pour faire face à la charge de calcul avec plus de performance, et ainsi réduire les temps de traitement. Ce type d’ approche de l’apprentissage est en croissance, et son utilisation généralisée dans les futurs réseaux se précise. En pratique les gains de temps dus aux traitements distribués s’avèrent souvent très limités dès lors qu’on utilise un grand nombre d’unités de traitement (cœurs CPU/GPU, etc.). Ce problème de gain de performance effective au passage à l’échelle est dû à une forte augmentation des délais de coordination entre les unités de traitement, délais qui augmentent en général avec le nombre de machines et les échanges réseau.
[0041] Les figures 1 illustrent le procédé de supervision selon l’invention.
[0042] La [Fig. la] illustre un schéma simplifié d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention.
[0043] Le procédé de supervision SPTPD supervise le pilotage PP d’un traitement parallèle distribué dans un réseau de communication. Le traitement parallèle distribué est constitué d’un procédé de pilotage PP mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes C du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication. Le procédé de pilotage PP comporte une succession d’étapes dont une étape de déclenchement C_TRG d’exécution d’une composante du traitement par un nœud. Le procédé de supervision SPTPD du pilotage comporte une exécution INST_EXE de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage PP atteint l’étape de déclenchement de l’exécution de cette composante.
[0044] La [Fig.1b] illustre un schéma détaillé non exhaustif d’une première partie d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention.
[0045] En particulier, si, lorsque le procédé de pilotage PP atteint une étape de déclenchement d’exécution d’une deuxième composante Cj du traitement, des données d’entrée deCj fournies par une première composante Ci du traitement et nécessaires au démarrage de l’exécution de la deuxième composante C2 du traitement ne sont pas disponibles deC] ? = [N] , le dispositif de supervision du pilotage SPTPD comporte une fourniture D_PRV au procédé de pilotage PP de données de substitution dsub. [0046] En particulier, le procédé de supervision SPTPD comporte une vérification de la disponibilité des données d’entrées deCj ?. La vérification de la disponibilité des données d’entrées d’une composante Cj est vérifié dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante Cj.
[0047] En particulier, lorsque les données d’entrées deCj à la deuxième composante Cj de traitement de sont disponibles deCj ? = [Y] lors de l’atteinte par le procédé de pilotage PP de l’étape de déclenchement Cj_TRG de l’exécution de la deuxième composante Cj, alors le procédé de supervision fournit directement ces données d’entrées deCj au procédé de pilotage qui déclenche Cj_TRG l’exécution de la deuxième composante Cj en transmettant à la composante Cj les données d’entrées disponibles deCj.
[0048] En particulier, le procédé de supervision SPTPD détecte l’atteinte par le procédé de pilotage d’une étape de déclenchement Cj_TRG d’une exécution d’une composante du traitement. De manière alternative le procédé de pilotage PP informe le procédé de supervision SPTPD de l’atteinte d’une étape de déclenchement Cj_TRG d’une exécution d’une composante du traitement.
[0049] En particulier, le procédé de supervision SPTPD détecte les données d’entrées deCj attendues par la composante Cj de traitement dont le procédé de pilotage PP a atteint l’étape de déclenchement d’exécution Cj_TRG. De manière alternative, le procédé de pilotage PP requiert au procédé de supervision SPTPD les données d’entrées deCj attendues par la composante Cj de traitement dont le procédé de pilotage PP a atteint l’étape de déclenchement d’exécution Cj_TRG.
[0050] En particulier, le procédé de supervision SPTPD comporte une réception de données fournies par l’exécution d’une première composante Ci du traitement, notamment les données d’entrées d’une deuxième composante du traitement Cj.
[0051] En particulier, le procédé de supervision SPTPD comporte une lecture D_RD de données d’entrée d’une précédente exécution de la deuxième composante deC](n-l), les données d’entrée de la précédente exécution constituant les données de substitution : d sub=deCj(n-l). Notamment, la fourniture de données d’entrées D_PRV fournit alors les données précédentes deCj(n-l) comme données de substitution dsub.
[0052] En particulier, lorsque les données d’entrées de la deuxième composante ne sont pas disponibles deCj ? = [N] lors de l’atteinte par le procédé de pilotage PP de l’étape de déclenchement Cj_TRG de l’exécution de la deuxième composante Cj, le procédé de supervision SPTPD lit D_RD les données d’entrée de la précédente exécution deCj(n-l) dans une mémoire stockant des données d’entrées du traitement BDD, notamment dans une base de données d’entrées du traitement, voire de traitement mis en œuvre par le dispositif de fourniture de services.
[0053] En particulier, le procédé de supervision SPTPD comporte une prédiction D_PRD de données d’entrée, les données d’entrée prédites constituant les données de sub- stitution : dsub=dp. Notamment, la fourniture de données d’entrées D_PRV fournit alors les données prédites dp comme données de substitution dsub.
[0054] En particulier, lorsque les données d’entrées de la deuxième composante ne sont pas disponibles deCj ? = [N] lors de l’atteinte par le procédé de pilotage PP de l’étape de déclenchement Cj_TRG de l’exécution de la deuxième composante Cj, le procédé de supervision SPTPD prédit les données d’entrée de la deuxième composante dpCj notamment en fonction de données d’entrées de précédentes exécution {deCj(î])}r|=i . n-i stockées dans une mémoire de données d’entrées du traitement BDD, notamment dans une base de données d’entrées du traitement, voire de traitement mis en œuvre par le dispositif de fourniture de services.
[0055] En particulier, la prédiction D_PRD est fonction d’au moins une des données parmi les suivantes des données d’entrées enregistrées {deCj(r]) }ï]=i...n i et un compteur d’invocation associé rp Le compteur d’invocation r] indique au nombre d’invocations du traitement lors l’enregistrement des données d’entrées. Par invocation du traitement est entendu la requête d’exécution du traitement.
[0056] En particulier, le procédé de supervision SPTPD comporte, si le procédé de supervision SPTPD reçoit des données deC] d’un première composante Ci destinée à une deuxième composante Cj après l’exécution de l’étape de déclenchement Cj_TRG d’exécution de la deuxième composante, une fourniture DE_PPRV des données deCj provenant de la première composante Ci à la deuxième composante Cj si une erreur de prédiction est détectée Err_DTCT = [Y] en fonction des données d’entrées prédites dp et des données d’entrée reçues deC].
[0057] La [Fig. le] illustre un schéma simplifié d’une deuxième partie d’un procédé de supervision du pilotage d’un traitement parallèle distribué SPTPD selon l’invention.
[0058] L’exécution d’un traitement comporte l’exécution du procédé de pilotage PP. Le démarrage de l’exécution du procédé de pilotage consiste en un démarrage de l’exécution du traitement TT_STR. Puis, le procédé de pilotage comporte une succession d’étape de déclenchement de composante du traitement C1_TRG, ..., Ci_TRG, ..., Cj_TRG... jusqu’à la clôture du traitement TT_CL.
[0059] En particulier, le procédé de supervision SPTPD comporte, lors de la clôture du traitement TT_CL, un enregistrement DE_MEM des données d’entrées { deCi}i=i...i des composantes Ci,.. ,,Ci,.. ,,Cj... du traitement TT en cours d’exécution.
[0060] En particulier, le procédé de supervision SPTPD itère n=n+l, lors de la clôture du traitement TT_CL, un compteur d’invocation n initialisé à zéro. Par compteur d’invocation initialisé à zéro est entendu que le compteur d’invocation est à zéro avant la première invocation du traitement.
[0061] En particulier, le procédé de supervision SPTPD comporte une association ASS du compteur d’invocation n aux données enregistrées { deC; }i : ({deci]i, n). Dans ce cas, l’enregistrement des données DE_MEM comportement un enregistrement du couple ({dea}i, n) composé par les données enregistrées {dea} et le compteur d’invocation n fourni par l’association ASS.
[0062] Dans un mode de réalisation particulier de l’invention, le procédé de supervision est réalisé sous la forme d’un programme comprenant des instructions de code de programme pour l’exécution des étapes du procédé de supervision du pilotage d’un traitement lorsque ledit programme est exécuté par un processeur.
[0063] La [Fig. Id] illustre un schéma simplifié d’un traitement parallèle distribué.
[0064] Le traitement parallèle distribué TT comporte un procédé de pilotage PP mis en œuvre par un dispositif de fourniture de service et de plusieurs composantes du traitement C I ...Ci...C, mis en œuvre par des nœuds distants. Eventuellement, certains nœuds peuvent mettre en œuvre une Cl, Ci, Cj ou plusieurs des composantes du
[0065] En particulier, le procédé de pilotage PP déclenche la.cmd(exe,decl),..., 2a.cmd(exe,deci),..., 3a.cmd(exe,deci) l’exécution d’une composante Cl,..., Ci,..., Ci.
[0066] En particulier, le procédé de pilotage PP reçoit des données fournies lb.answ(ded ),..., 2b.answ(deCJ),..., 3b.answ par des composantes de traitement C 1...Ci exécutées. Eventuellement les données fournies par une première composante Ci de traitement comportent des données d’entrées d’une deuxième composante de traitement deCj.
[0067] Notamment, le procédé de pilotage PP déclenche l’exécution d’une deuxième composante en transmettant les données d’entrées { dea } fournies par une première composante. C’est pourquoi, dans l’art antérieur, le procédé de pilotage PP attend la fourniture de ces données d’entrées { deŒ } par la première composante avant de déclencher l’exécution de l’exécution de la deuxième composante.
[0068] La [Fig.2] illustre un schéma simplifié d’un organigramme illustrant le procédé de supervision selon l’invention.
[0069] Le procédé de supervision SPTPD comporte un démarrage de la supervision SPTPD. Le procédé de supervision reçoit un appel au traitement TT_RQ_RCV notamment d’un terminal de communication ou plus particulièrement à une composante du traitement Cj_REQ_RCV du procédé de pilotage PP du traitement TT lorsque le procédé de pilotage PP atteint l’étape de déclenchement de l’exécution de la composante Ci du traitement. Par exemple, le terminal de communication envoie au dispositif de fourniture de services mettant en œuvre le traitement TT une requête de traitement ou invocation du traitement tt_req.
[0070] En particulier, le procédé de supervision SPTPD vérifie sc ? si l’exécution du traitement doit être mis en œuvre de manière synchrone ou asynchrone. Par exemple, le procédé de supervision SPTPD demande au terminal si le traitement doit être exécuté de manière synchrone ou non.
[0071] Si oui [Y], le procédé de supervision déclenche l’exécution synchrone :
- soit du traitement SC_TT_REQ à savoir que le procédé de pilotage PP déclenche l’exécution des deuxièmes composantes Cj_TRG du traitement après réception des données d’entrées deCj fournies par une ou plusieurs premières composantes Ci du traitement.
- soit de la composante SC_Cj_REQ à savoir que le procédé de pilotage PP déclenche l’exécution de la deuxième composante Cj_TRG du traitement après réception des données d’entrées deCi fournies par une ou plusieurs premières composantes Ci du traitement préalablement exécutées.
[0072] A noter, que la vérification si l’exécution doit être effectué de manière synchrone ou non sc ? peut être effectué pour chaque composante du traitement notamment en fonction de la disponibilité des données d’entrées de la deuxième composante de l’invocation en cours deCj(n) lorsque le procédé de pilotage PP atteint l’étape de déclenchement de l’exécution de la deuxième composante Cj.
[0073] Si non, le procédé de supervision SPTPD effectue un appel asynchrone, c’est-à-dire une invocation sans fourniture des données d’entrées AS_TT, AS_Ci lors du déclenchement d’exécution d’une composante. Par exemple, le procédé de supervision SPTPD commande exe_cmd au procédé de pilotage le déclenchement de l’exécution d’une composante Ci_TRG sans fournir les données d’entrées de cette composante.
[0074] En particulier, le procédé de supervision SPTPD vérifie si les données d’entrées doivent être envoyées de manière asynchrone ou non d_as ?.
[0075] Si oui, le procédé de supervision SPTPD met en œuvre un service de données ou fourniture de données D_PRV qui récupère des données d’une invocation précédente dans une mémoire ou base de données BDD.
[0076] Si non, le procédé de supervision SPTPD comporte une revue de disponibilité de données pour l’exécution de la composante DE_RVW. Notamment, le procédé de supervision SPTPD vérifie les données disponibles d ?.
[0077] Si des données sont disponibles d ? = [Y], alors le procédé de supervision SPTPD effectue un traitement asynchrone retardé ou anticipé AS_TT, AS_Cj notamment en fonction des données de substitution dsub élaborées par le service de données D_PRV à partir des données d’entrées de l’invocation ou des invocations précédentes (c’est-à-dire d’un historique de données d’entrées) enregistrés dans une mémoire BDD et/ou de données prédites dp.
[0078] Si non d ?=[N], le procédé de supervision SPTPD prédit D_PRED les données d’entrées pour le traitement asynchrone AS_TT, AS_Cj.
[0079] Ainsi, le procédé de supervision SPTPD fournit des données de substitution comportant soit des données d’entrées de précédente(s) invocation(s), soit des données prédites indirectement à la composante Cj dont l’exécution est déclenchée de manière asynchrone.
[0080] Quelque soit le type d’appel/in vocation synchrone ou asynchrone, le procédé de supervision SPTPD reçoit un retour TT_RSP, Ci_RSP. Lorsque le traitement invoqué est terminé, le procédé de supervision est clos STP.
[0081] Ainsi, l’invention rompt avec la pratique de s’assurer que les données d’entrées de la composante de traitement sont disponibles avant de déclencher l’exécution de cette composante qui est souvent à l’origine d’importants délais de coordination.
[0082] Pour cela, le procédé de supervision SPTPD autorise la composante à s’exécuter même si les données ne sont pas disponibles. Cela est possible car le contrôle du déclenchement de l’exécution de la composante est transféré du procédé de pilotage au procédé de supervision.
[0083] Ainsi, le procédé de subversion propose 3 options d’exécution :
- une fourniture de données D_MNGT sans transfert de contrôle, c’est-à-dire que une gestion des données d’entrées d’une composante indépendantes de l’exécution de cette composante, comportant un enregistrement des données pour de futures invocation et une fourniture des données enregistrées lors d’une invocation en cours comme données de substitution afin que le procédé de pilotage exécute immédiatement l’étape de déclenchement d’exécution de la composante du traitement avec la fourniture des données de substitution à la composante du traitement ou pour prédire D_PRED des données dp utilisées pour le traitement asynchrone AS_TT, AS_Cj;
- une invocation de contrôle sans données d’entrée, c’est-à-dire que le procédé de supervision force l’exécution de l’étape du procédé de pilotage de déclenchement d’exécution d’une composante du traitement même si aucune données d’entrée en substituant aux données d’entrées des données de substitution obtenues par prédiction de données D_PRED ou simple lecture des données d’entrées mémorisées d’invocation(s) précédente (s) ;
- mais aussi une invocation classique, traditionnelle.
[0084] Les deux premières options permettent au procédé de supervision de désynchroniser les deux sous actions (transfert de contrôle et fourniture de données) qui étaient jusque là indissociables.
[0085] Les trois options d’exécution combinés permettent de réaliser des services ou traitements distribués libres de délais d’attente des données d’entrées.
[0086] La première option introduit une mémoire des données d’entrées à utiliser pour invocation future.
[0087] La deuxième option introduit le fait que les données d’entrées non disponibles sont remplacées soit par des données d’entrées mémorisées lors d’invocation précédentes et fournit par la gestion de données D_MNGT, soit par des données d’entrées prédites. La prédiction D-PRD est notamment construite par apprentissage avec un modèle qui aura été conçu et entrainé pour chaque traitement. En particulier, la prédiction comporte des réseaux de neurones et un procédé d’ apprentissage profond permettant de concevoir et entrainer des prédicteurs adaptés afin de prédire au mieux les données d’entrées de l’invocation en cours voire de l’invocation suivante.
[0088] La [Fig.3] illustre un schéma simplifié d’une architecture de communication distribuée comportant un superviseur selon l’invention.
[0089] L’ architecture de communication distribué comporte notamment un dispositif de fourniture de service 1 mettant en œuvre au moins un service ou traitement parallèle distribué TT. Pour cela, un contrôleur 10 pilote l’exécution par différents nœuds 2b ..., 2K du réseau de communication 3 de composantes C, . • -C, du traitement TT. En particulier, un nœud 2k comporte un processeur 2()k' apte à exécuter la composante Ci du traitement TT.
[0090] Dans un premier mode de réalisation illustré par la [Fig.3], le dispositif de fourniture de service 1 comporte le contrôleur 10.
[0091] Dans un deuxième mode de réalisation non illustré, le nœud 20 (non illustré) à l’origine de l’invocation du traitement, dit nœud invoquant, (c’est-à-dire ayant requis la mise en œuvre du traitement proposé par le dispositif de fourniture de services) comporte le contrôleur 10. Le nœud invoquant 20 comporte un processeur 10 apte à exécuter le procédé de pilotage PP du traitement TT.
[0092] Dans un troisième mode de réalisation non illustré, le nœud invoquant 20 comporte au moins une interface de contrôle non illustrée apte à échanger avec le contrôleur 10 et le dispositif de fourniture de services 1 comporte le contrôleur 10. L’interface de contrôle comporte notamment un lanceur apte à déclencher le démarrage du traitement par le contrôleur. Eventuellement, l’interface de contrôle comporte en outre un sélectionneur de traitement parmi les traitements mis à disposition par le dispositif de fourniture de service 1.
[0093] Le superviseur 11 est apte à superviser le pilotage d’un traitement parallèle distribué dans un réseau de communication. Le traitement parallèle distribué est constitué d’un procédé de pilotage mis en œuvre par un contrôleur 10 d’un dispositif de fourniture de services 1 comportant le superviseur 11 et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication 21; ..., 2k..., 2K. Le procédé de pilotage comporte une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud.
[0094] En particulier, le contrôleur 10 déclenche %a.cmd(exe,deCi)i=i..i l’exécution par un nœud 2i ...2K d’une composante du traitement. Un nœud 2i ...2k.. ,2K comporte notamment un récepteur de commande d’exécution la.cmd(exe,deCi),...2a.cmd(exe,de ci),... 3a.cmd(exe,deCi), et un processeur 20^ apte à exécuter la composante Ci du traitement (aussi nommée première composante) sur réception de la commande d’exécution et à fournir un résultat de composante de traitement lb.answ(deCj),... 2b. answ(dea),... 3b.answ comportant éventuellement des données d’entrées d’une autre composante du traitement (aussi nommée deuxième composante).
[0095] En particulier, le contrôleur 10 est apte à recevoir les données d’entrées d’une deuxième composante du traitement Cj résultant de l’exécution d’une première composante du traitement Ci %b.ailSw(deCj)
J e [I ]
[0096] Le superviseur 11 comporte un découpleur 110 apte à commander 24.exe_cmd l’exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante 2O.nxt(Ci).
[0097] En particulier, le superviseur 11 comporte une mémoire 113 apte à stocker des données, lors de la clôture du traitement, des données d’entrées des composantes du traitement en cours d’exécution.
[0098] En particulier, le superviseur 11 comporte un compteur d’invocation 116 initialisé à zéro et apte à être itéré lors de la clôture du traitement.
[0099] En particulier, le superviseur 11 comporte un enregistreur 115 apte à écrire dans une mémoire 113 des données d’entrées de l’invocation en cours et/ou le numéro de l’invocation en cours notamment fourni par le compteur d’invocation 116. Eventuellement, l’enregistreur 115 est apte à associer les données d’entrées au numéro de l’invocation en cours avant de les enregistrer notamment sous forme de couple : (données d’entrées, numéro d’invocation).
[0100] En particulier, le superviseur comporte un lecteur 115 apte à lire lors d’une invocation en cours les données enregistrées lors d’invocation(s) précédente(s), notamment dans une mémoire 113. Eventuellement, l’enregistreur et le lecteur de données sont un seul et même dispositif de lecture/écriture de données 115.
[0101] En particulier, le superviseur 11 comporte un détecteur 114 de fin de traitement ou clôture de traitement. Le détecteur 114 de fin de traitement déclenche ll.w_trg(de) l’écriture par l’enregistreur 115 des données 12.de et/ou de la valeur du compteur d’invocation 12.(de,n). Notamment, le compteur d’invocation 126 fournit sa valeur 1 l’.n à l’enregistreur 115 éventuellement sur demande de l’enregistreur 115. Dans le cas de l’écriture de la valeur du compteur d’invocation, le détecteur 114 ou l’enregistreur 115 déclenche 13.it_trg l’itération du compteur d’invocation 116 après l’enregistrement des données par l’enregistreur 115.
[0102] En particulier, le détecteur 114 est apte à recevoir une information de fin de traitement lO.cl(de) du contrôleur et/ou à requérir, éventuellement de manière pé- riodique, au contrôleur 10, l’étape du traitement en cours d’exécution (par exemple début, numéro de composante, fin. . .) et/ou à capter l’atteinte par le contrôleur 10 de l’étape de fin de traitement.
[0103] En particulier, le superviseur 11 comporte un récepteur 114 apte à recevoir des données du contrôleur 10, notamment les données d’entrées des composantes du traitement en cours d’invocation. Eventuellement, le récepteur 114 comporte en outre le détecteur de fin de traitement ou clôture de traitement. Ainsi, le récepteur 114 fournit les données d’entrées à l’enregistreur 115 avec le déclenchement w_trg d’écriture.
[0104] En particulier, le superviseur comporte un détecteur de disponibilité de données 111 apte à vérifier si les données d’entrées sont disponibles et à déclencher 21’.d_as sinon le découpleur 110. Ainsi, dans le cas où les données d’entrées ne sont pas disponibles le découpleur 110 commande 24.exe_cmd l’exécution de la composante du traitement sans les données d’entrées. Eventuellement, le détecteur de disponibilité 111 est déclenché 2O.nxt(Ci) par l’atteinte d’une étape de déclenchement d’exécution d’une composante du traitement par le contrôleur 10.
[0105] En particulier, le découpleur 110 fournit à la place des données d’entrées non disponibles des données de substitution 24.exe_cmd(dsub).
[0106] En particulier, le superviseur 11 comporte un générateur de données de substitution 112 apte à générer des données de substitution dsub à partir notamment des données d’entrées enregistrées dans la mémoire 113, c’est-à-dire des données d’entrée de la précédente invocation 22.{de(n-l)}, voire des couples : données d’entrées des précédentes invocation et numéro d’invocation 22.{de(r|)}r|=n.1 et à les fournir 23.dsub=deCj (n-1), 23.dsub=dp au découpleur 110.
[0107] En particulier, le superviseur 11 comporte un lecteur de données 1120 apte à lire des données 22.{de(n-l)}, 22.{de(r|)]r|=11.1 dans la mémoire 113 et à les fournir 23’.dea (n-1) au découpleur 110. Dans un mode particulier d’implémentation, le générateur de données de substitution 112 comporte le lecteur de données 1120.
[0108] En particulier, le superviseur 11 comporte un prédicteur 1121 de données aptes à prédire les données d’entrées de l’invocation en cours 23”. dp notamment en fonction des données d’entrées des invocations précédentes et à les fournir 23.dsub=dp au découpleur 110. En particulier, le prédicteur 1121 reçoit du lecteur 1120 les données d’entrées des invocations précédentes 23’.{de(r|)}r|=n.i.
[0109] Dans un mode de réalisation particulier, le dispositif de fourniture de services 1 comporte un contrôleur 10 apte à piloter un traitement parallèle distribué dans un réseau de communication. Le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par le contrôleur 10 et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication 2b ..., 2k, .. 2K. Le procédé de pilotage comporte une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud 2k. Le dispositif de fourniture de services 1 comporte un superviseur 11 apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
[0110] Eventuellement, sur chaque nœud 2k impliqué dans le traitement parallèle réparti, il y aura une instance du dispositif de fourniture de service 1 qui s’exécute, chargé de contrôler et superviser les invocations distantes à destination de ce nœud. Ce sera donc typiquement un même service répliqué sur chacun des nœuds, avec une partie contrôle sur le nœud invoquant 20 pour les interactions avec le Ci d’origine. Un nœud 2k mettant en œuvre une composante Ci peut lui aussi être le nœud invoquant d’un autre traitement. Ainsi, un nœud 2k du réseau de communication dans lequel des traitements parallèles distribués sont exécutés comporte au moins une composante d’un premier traitement, voire plusieurs composantes d’un ou plusieurs premiers traitements, et éventuellement un dispositif de fourniture de service fournissant un deuxième traitement.
[0111] La [Fig.4] illustre un schéma simplifié d’une architecture de communication dans laquelle une composante d’un traitement est mise en œuvre dans un nœud distant d’un dispositif de fourniture de service pilotant le traitement selon l’invention.
[0112] Un dispositif de fourniture de services 1 contrôle l’exécution de composante(s) d’un traitement des nœuds 2k du réseau de communication 3. En particulier, un processeur 20k du nœud 2k exécute la composante du traitement.
[0113] Le dispositif de fourniture de services 1 selon l’invention comporte un découpleur 110 apte à permettre de déclencher l’exécution immédiate d’une composante du traitement dès que le dispositif de fourniture de service 1 atteint l’étape de déclenchement de l’exécution de cette composante. Ainsi, le dispositif de fourniture de services 1 invoque la composante de traitement de manière asynchrone c’est-à-dire avant que les données d’entrées de cette composante ne soient disponibles.
[0114] En particulier, le dispositif de fourniture de services comporte un gestionnaire de données 118 apte à enregistrer des données d’entrées notamment dans une mémoire 115 (voir [Fig.3]). Notamment le gestionnaire de données 118 comporte un générateur de données de substitution 112 (voir [Fig.3]) en fonction de données d’entrées d’in vocation (s) précédente(s). Ainsi, le gestionnaire de données 118 permet de gérer de manière asynchrone les données d’entrées d’une composante par rapport à l’exécution de cette composante.
[0115] En particulier, le dispositif de fourniture de services 1 comporte un invocateur de composante de traitement standard, c’est-à-dire synchrone puisqu’il commande l’exécution d’une deuxième composante en fournissant les données d’entrées fournit par l’exécution d’une première composante.
[0116] La [Fig.5] illustre un schéma simplifié d’une architecture de communication comportant un dispositif de fourniture de service supervisant de manière distincte le pilotage de l’exécution par des nœuds distants d’une composante d’un traitement et la prédiction des données d’entrées des composantes ad hoc.
[0117] Les nœuds {2k]k=l ...K exécute un ou plusieurs des composantes du traitement Ci ...Ci.
[0118] L’exécution de ces composantes est contrôlée par un contrôleur 10 (voir [Fig.3]) d’un dispositif de fourniture de service 1.
[0119] En particulier, un superviseur 11 est apte à déclencher de manière retardé (c’est-à-dire en utilisant les données d’entrées enregistrées lors de l’invocation précédente rpl) ou anticipé (c’est-à-dire en utilisant la prédiction) une invocation par le contrôleur 10 des composantes du traitement.
[0120] En particulier, le superviseur 11 dispose d’une mémoire 113 dans laquelle un historique des données d’entrées lors d’une ou plusieurs des invocations précédentes est conservé : soit il comporte la mémoire 113, soit il comporte une interface avec cette mémoire 113 (notamment un enregistreur et/ou un lecteur de mémoire).
[0121] En particulier, le superviseur 11 comporte un compteur d’invocation 116.
[0122] Dans l’exemple de la [Fig.5], la composante Cl du traitement est déclenchée de manière retardé Cl_trg(tl,r|- 1), c’est-à-dire que le superviseur déclenche une invocation asynchrone utilisant l’historique 113 par le contrôleur de la composante CL Cela signifie que le superviseur récupère les données d’entrées deCi(q-l) fournit par une autre composante lors de l’invocation précédente q-1 pour déclencher l’exécution de cette composante Cl dès l’atteinte à l’instant tl de l’étape de déclenchement de l’exécution de la composante CL
[0123] La composante C2 est déclenchée de manière anticipée C2_trg(t2), c’est-à-dire que le superviseur déclenche une invocation asynchrone utilisant le prédicteur par le contrôleur de la composante C2. Cela signifie que dès l’atteinte à l’instant t2 de l’étape de déclenchement de l’exécution de la composante C2, la composante C2 est déclenchée notamment en fournissant à la place des données d’entrées des données anticipées, par exemple prédites au moyen d’un réseau de neurone en fonction de l’historique enregistré dans la mémoire 113. La mise en œuvre de la composante est dite retardée car elle utilise des données d’entrées de l’invocation précédente et non de l’invocation en cours.
[0124] La composante Cp.i du traitement est déclenchée de manière retardé Cp.i_trg(tp.1, q- 1), c’est-à-dire que le superviseur déclenche une invocation asynchrone utilisant l’historique 113 par le contrôleur de la composante Cp.i. Cela signifie que le su- perviseur récupère les données d’entrées deCp.i(r|- 1) fournit par une autre composante lors d’une invocation précédente r-1 pour déclencher l’exécution de cette composante Cp-i dès l’atteinte à l’instant t^ de l’étape de déclenchement de l’exécution de la composante Cp_i.
[0125] La composante Cp est déclenchée de manière anticipée Cp_trg(tp), c’est-à-dire que le superviseur déclenche une invocation asynchrone utilisant le prédicteur par le contrôleur de la composante Cp. Cela signifie que dès l’atteinte à l’instant tp de l’étape de déclenchement de l’exécution de la composante Cp notamment en fournissant à la place des données d’entrées des données anticipées, notamment prédites au moyen d’un réseau de neurone en fonction de l’historique enregistré dans la mémoire 113.
[0126] Ainsi, le superviseur fournit ainsi un service d’invocation asynchrone et prédictive.
[0127] Pour ce service d’invocation asynchrone et prédictive, l’enregistrement d’un traitement consiste notamment à créer un compteur d’invocations de ce traitement, qui sera initialisé à 0. En particulier, le service d’invocation asynchrone et prédictive alloue aussi de l’espace mémoire pour conserver les valeurs des derniers paramètres reçus. A l’issue de chaque nouvel appel ou invocation d’un traitement, la valeur du compteur d’invocations pour ce traitement est incrémentée, et les valeurs des derniers paramètres sont mises à jour.
[0128] Alors, le premier apport d’un service d’invocation asynchrone et prédictive est de mémoriser les valeurs des paramètres des appels précédents. On enregistre tous les derniers appels de chaque traitement, pour pouvoir les utiliser au prochain appel s’il n’y a pas de nouvelle valeur disponible. A chaque invocation d’un traitement, les valeurs qui ne sont pas présentes en entrées sont récupérées à partir de cet espace d’enregistrement des valeurs de paramètres précédentes.
[0129] En particulier, un second apport d’un service d’invocation asynchrone et prédictive est l’association d’un prédicteur de paramètres à chaque traitement enregistré, une composante du service d’invocation asynchrone et prédictive réalisant la fonction de prédiction des valeurs des paramètres à l’invocation n° i+1, à partir des valeurs de ces paramètres à l’invocation n° i (i = 1, 2, ....). Notamment, le prédicteur est conçu et entrainé par apprentissage, à partir de données historiques d’invocation.
[0130] Dans une mise en œuvre logicielle, on associe ainsi un logiciel de chaque traitement distant, une sorte de logiciel coopératif (ou cogiciel) travaillant de concert avec ce traitement pour réduire les délais de coordination.
[0131] Eventuellement, il peut arriver que la prédiction ne soit pas de qualité suffisante pour garantir une exécution correcte. Pour cela, à l’issue d’un traitement utilisant des valeurs prédites, le superviseur comporte en particulier un comparateur des valeurs prédites aux valeurs reçus. Si la différence de valeurs est conforme à un seuil de validité spécifié alors on valide, sinon on invalide et on recommence le traitement avec les nouvelles valeurs reçues. Ce mécanisme permet de traiter les prédictions erronées inhérentes à l’apprentissage, et de renforcer ainsi la robustesse de l’invention.
[0132] L'invention vise aussi un support. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique ou encore un moyen d'enregistrement magnétique, par exemple une disquette ou un disque dur.
[0133] D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau notamment de type Internet.
[0134] La mise en œuvre logicielle de cette invention repose sur les machines dites complètes, qui sont des machines avec toutes les ressources nécessaires à l’exécution d’un programme. Une machine (complète) peut être :
- Une machine de base : L’équivalent d’un PC ou un serveur physique avec une seule unité de traitement banalisée, type CPU/GPU. Les machine avec plusieurs unités de traitement banalisées peuvent supporter l’exécutions de jusqu’autant de machines de bases qu’il y a d’unités de traitement banalisé.
- Soit une machine virtuelle (VM) pour une machine de base, telle que mise en œuvre dans les logiciels de virtualisation modernes (du type hyperviseur), et les infrastructures de service cloud.
- Soit un container pour une machine de base, tel que mis en œuvre dans les plates- formes et orchestrateurs de containers (Docker, Kubernetes, Mesos, etc.) et utilisés pour la programmation de services cloud-native distribués, basés sur les containers et les architectures micro services.
[0135] Pour la mise en œuvre logicielle, le service d’invocation asynchrone et prédictive, est conçu et réalisé de manière à pouvoir exécuter une ou plusieurs instance(s) de ce service d’invocation asynchrone et prédictive sur chaque machine de base de l’infrastructure. Les machines de base des installations périphériques sous le contrôle de l’opérateur, en général agrégés au sein d’un petit datacentres, vont exécuter chacun au moins une instance du service d’invocation asynchrone et prédictive. L’ensemble de ces machines de bases équipées de services d’invocation asynchrone et prédictive, organisées en petits datacentres, seront utilisées comme une infrastructure cloud distribué, pour programmer, déployer et exécuter des services plus performants en réduisant les délais de coordination.
[0136] L’invention peut être intégrée aux services d’infrastructure cloud d’un opérateur : services Multiservice Edge Computing (MEC) distribués, service NWDAF (Network Data Analytics Function) pour l’analyse de données et l’IA dans les réseaux 5G, plates-formes d’apprentissage distribué (TensorFlow, Keras, etc.), plates-formes de traitement de données massive temps réel et d’apprentissage en ligne (Hadoop (MapReduce), Spark, Flink, etc.), etc.
[0137] Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
[0138] Dans une autre implémentation, l'invention est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique le terme module peut correspondre aussi bien à un composant logiciel ou à un composant matériel. Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en œuvre une fonction ou un ensemble de fonction selon la description ci-dessus. Un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble de fonctions.
[0139] L’incorporation de l’invention dans les services d’infrastructure leur confère une meilleure aptitude à réduire les délais de coordination, ce qui permet d’ améliorer les performances. Cela peut donner lieu à des valorisations auprès d’équipementiers, d’opérateurs, de fournisseurs de services 5G (+), de constructeurs informatiques, etc.
[0140] L’invention peut être utilisée par logiciel dans des applications de nombreux domaines, parmi lesquels :
- Réalisations de tranches (ou slices) réseau, notamment le contrôle de la partie périphérique.
- Virtualisation de fonctions réseau (NFV), services réseaux virtuels distribuées.
- Applications 5G (+) :
+ Les nouvelles applications nécessitant des communications fiables et à faible latence, dans les domaines des véhicules autonomes, des industries 4.0, des réalités augmentées, de la télémédecine, etc. Ces applications peuvent bénéficier des améliorations de performance de l’invention, afin de réduire les latences et améliorer la fiabilité de bout-en-bout. L’apport de l’invention est un complément du concept edge computing pour améliorer la fiabilité et mieux réduire la latence.
+ On peut aussi améliorer les performances de certaines applications loT massif grâce à cette invention, notamment dans le domaine des villes et des territoires intelligents.
+ Les applications multimédia à très haut débit, ainsi que celles de maisons connectées et des réalités virtuelles avec de la vidéo 3D peuvent aussi voir leurs performances améliorées grâce à cette invention, qui permet aussi d’optimiser la consommation des débits réseaux. - L’instrumentation d’un réseau 5G(+) par service NWDAF distribué: prédiction de la mobilité, analyse et prédiction de la charge des fonctions et tranches réseau, observations réseau et expérience client, etc.
- Amélioration des performances des systèmes et applications répartis traditionnels grâce aux réseaux d’opérateurs, ce qui peut ouvrir de nouveaux marchés aux opérateurs.
[0141] L’invention cible les services et applications du domaine réseaux 5G (+), avec une granularité élevée et présentant un faible ratio d’appels distantes. On pourra ensuite la généraliser aux applications à haute performance et temps réel fournis à l’extérieur des réseaux d’opérateurs. Cette extension permettra de viser des marchés historiquement occupés par des acteurs informatiques (IT) :
- Services en ligne : flux de données et apprentissage en ligne: marketing, analyses réseaux sociaux, etc.
- Applications avec analyse de données à haute performance et l’apprentissage distribué.
- IA distribuée, apprentissage fédéré et applications.

Claims

Revendications
[Revendication 1] Procédé de supervision du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le procédé de supervision du pilotage comportant une exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
[Revendication 2] Procédé de supervision du pilotage d’un traitement selon la revendication précédente, dans lequel, si, lorsque le procédé de pilotage atteint une étape de déclenchement d’exécution d’une deuxième composante du traitement, des données d’entrée fournies par une première composante du traitement et nécessaires au démarrage de l’exécution de la deuxième composante du traitement ne sont pas disponibles, le dispositif de supervision du pilotage comporte une fourniture au procédé de pilotage de données de substitution.
[Revendication 3] Procédé de supervision du pilotage d’un traitement selon la revendication précédente, dans lequel le procédé de supervision comporte une lecture de données d’entrée d’une précédente exécution de la deuxième composante, les données d’entrée de la précédente exécution constituant les données de substitution.
[Revendication 4] Procédé de supervision du pilotage d’un traitement selon la revendication précédente, dans lequel le procédé de supervision comporte une prédiction de données d’entrée, les données d’entrée prédites constituant les données de substitution.
[Revendication 5] Procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes, dans lequel le procédé de supervision comporte, lors de la clôture du traitement, un enregistrement des données d’entrées des composantes du traitement en cours d’exécution.
[Revendication 6] Procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes, dans lequel le procédé de supervision itère, lors de la clôture du traitement, un compteur d’invocation initialisé à zéro.
[Revendication 7] Procédé de supervision du pilotage d’un traitement selon les revendications 5 et 6, dans lequel le procédé de supervision comporte une association du compteur d’invocation aux données enregistrées.
[Revendication 8] Procédé de supervision du pilotage selon l’une quelconque des revendications 4 à 6, dans lequel la prédiction est fonction d’au moins une des données parmi les suivantes des données d’entrées enregistrées et du compteur d’invocation associé.
[Revendication 9] Procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes, dans lequel le procédé de supervision comporte, si le procédé de supervision reçoit des données d’un première composante destinée à une deuxième composante après l’exécution de l’étape de déclenchement d’exécution de la deuxième composante, une fourniture des données provenant de la première composante à la deuxième composante si une erreur de prédiction est détectée en fonction des données d’entrées prédites et des données d’entrée reçues.
[Revendication 10] Programme comprenant des instructions de code de programme pour l’exécution des étapes du procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes lorsque ledit programme est exécuté par un processeur.
[Revendication 11] Superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un contrôleur d’un dispositif de fourniture de services comportant le Superviseur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le superviseur comportant un découpleur apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
[Revendication 12] Superviseur selon la revendication précédente, dans lequel le superviseur comporte une mémoire apte à stocker des données, lors de la clôture du traitement, des données d’entrées des composantes du traitement en cours d’exécution.
[Revendication 13] Superviseur selon l’une quelconque des revendications 11 ou 12, dans lequel le superviseur comporte un compteur d’invocation initialisé à zéro et apte à être itéré lors de la clôture du traitement.
[Revendication 14] Dispositif de fourniture de services comportant un contrôleur apte à piloter un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par le contrôleur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le dispositif de fourniture de services comportant un superviseur apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.
EP22793446.0A 2021-09-30 2022-09-29 Procédé de supervision et superviseur du pilotage d'un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en oeuvre Pending EP4409402A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2110333A FR3127592A1 (fr) 2021-09-30 2021-09-30 Procédé de supervision et superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en œuvre
PCT/FR2022/051840 WO2023052730A1 (fr) 2021-09-30 2022-09-29 Procédé de supervision et superviseur du pilotage d'un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en œuvre

Publications (1)

Publication Number Publication Date
EP4409402A1 true EP4409402A1 (fr) 2024-08-07

Family

ID=79601864

Family Applications (1)

Application Number Title Priority Date Filing Date
EP22793446.0A Pending EP4409402A1 (fr) 2021-09-30 2022-09-29 Procédé de supervision et superviseur du pilotage d'un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en oeuvre

Country Status (4)

Country Link
US (1) US20250036457A1 (fr)
EP (1) EP4409402A1 (fr)
FR (1) FR3127592A1 (fr)
WO (1) WO2023052730A1 (fr)

Also Published As

Publication number Publication date
FR3127592A1 (fr) 2023-03-31
US20250036457A1 (en) 2025-01-30
WO2023052730A1 (fr) 2023-04-06

Similar Documents

Publication Publication Date Title
US11228570B2 (en) Safe-transfer exchange protocol based on trigger-ready envelopes among distributed nodes
EP2232368B1 (fr) Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele, en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
US9661071B2 (en) Apparatus, systems and methods for deployment and management of distributed computing systems and applications
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
US10300386B1 (en) Content item instance scaling based on wait time
US10250480B2 (en) Polling parameter adjustment
WO2020072929A1 (fr) Système et procédé pour réaliser une base de données de graphes à intelligence artificielle
US11487851B2 (en) Using blockchain for flexible application licensing
US12079651B2 (en) Serverless application function execution
US20180218276A1 (en) Optimizing Application Performance Using Finite State Machine Model and Machine Learning
US8510281B2 (en) Ultimate locking mechanism
CN112860421A (zh) 用于作业处理的方法、设备和计算机程序产品
CN111292722A (zh) 异步联合架构的模型训练方法、终端、服务器及存储装置
US11206190B1 (en) Using an artificial intelligence based system to guide user dialogs in designing computing system architectures
EP4409402A1 (fr) Procédé de supervision et superviseur du pilotage d'un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en oeuvre
FR3057081B1 (fr) Processeur comprenant une pluralite de coeurs de calcul
US20250303302A1 (en) User placement for multi-application host computing instance groups
US20250303286A1 (en) Multi-application host computing instance group for application streaming
US12568401B2 (en) Distributed network management system
CN111913759A (zh) 控制应用程序执行的方法、装置、计算设备和介质
Autili et al. Highly collaborative distributed systems: Synthesis and enactment at work
CN118331656A (zh) 服务接口加解密处理方法、装置、设备、介质和程序产品
Prasad et al. Resource allocation and SLA determination for large data processing services over cloud
US11093935B2 (en) System and methods for a resource-saving exchange protocol based on trigger-ready envelopes among distributed nodes
US20210073355A1 (en) Controlling processor instruction execution

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20240223

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)