WO2018109407A1 - Method and device for updating - Google Patents

Method and device for updating Download PDF

Info

Publication number
WO2018109407A1
WO2018109407A1 PCT/FR2017/053585 FR2017053585W WO2018109407A1 WO 2018109407 A1 WO2018109407 A1 WO 2018109407A1 FR 2017053585 W FR2017053585 W FR 2017053585W WO 2018109407 A1 WO2018109407 A1 WO 2018109407A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
computer
resource
cluster
task
Prior art date
Application number
PCT/FR2017/053585
Other languages
French (fr)
Inventor
Patrick Brown
Son Hai HA
Original Assignee
Orange
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 filed Critical Orange
Publication of WO2018109407A1 publication Critical patent/WO2018109407A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Definitions

  • the invention relates to the general field of computer systems, and more particularly to computer systems based on machine clusters (also more commonly referred to as "servers").
  • machine clusters also more commonly referred to as "servers”.
  • a cluster (or cluster) of servers groups together several independent computers (or nodes) placed in a network, so as to allow a global and optimized management of computing resources (eg memory, CPU (Central Processing Unit), disk space , network access, etc.) offered by these computers.
  • computing resources eg memory, CPU (Central Processing Unit), disk space , network access, etc.
  • Such a cluster of servers typically allows parallel distribution and launch, on several servers different from the cluster, of different computer tasks associated with the same program or the same computer application (also referred to as "work” or "job” in English).
  • work also referred to as "work” or "job” in English.
  • Big Data In the context of current data processing, which can involve very large amounts of data (eg so-called “Big Data” processes), it is not uncommon to encounter server clusters with thousands or even tens of thousands of machines that need to be administered effectively.
  • cluster management system The distribution of tasks on different machines in a cluster is usually administered by a cluster management system.
  • cluster management systems are for example the Borg system proposed by Google or the Hadoop Yarn system proposed by The Apache Software Foundation. These systems are capable of administering clusters of a very large number of machines, and running hundreds of thousands of tasks on these machines belonging to several thousand different software applications.
  • cluster management systems are often faced with tasks that need to be burst on clusters. It is therefore necessary for them to deal effectively with these tasks to make a decision very quickly as to their distribution on the different machines of the clusters.
  • state-of-the-art cluster management systems allocate the resources of a cluster to the different tasks of a program (in other words, associate with these different tasks different servers in the cluster capable of providing the necessary resources at their execution and reserve on these servers the required resources) on the basis of the resources reserved by the user of the cluster which requests the execution of his program.
  • the Hadoop Yarn cluster management system defines, for each server S of a Hadoop cluster and each computer resource R offered by the server, a limit capacity CL_R.
  • the computing resource R can be of various nature, for example memory, CPU (Central Processing Unit), space disk, network access, etc.
  • the Hadoop Yarn cluster management system quickly determines which servers are capable of performing this task, i. the servers that have the necessary resources for its execution in view of the resource requirements R declared by the user of the program.
  • a server is then selected by the Hadoop Yarn management system among the servers able to execute the task j, according to predetermined criteria, not detailed here.
  • This mode of operation is not without constraints for the users of the cluster. This requires users to specify the resource requirements of the different tasks in their programs in sufficient detail not to unnecessarily block resources at the cluster level or, on the contrary, risk seeing their tasks not be processed or treated less efficiently because they require more resources than those declared by the user. Such an estimation of the needs of the tasks of their programs is particularly difficult for the users, especially since these needs are likely to evolve over time. In this context, it is traditional for users to overestimate the resource requirements of the tasks in their programs, which leads to underutilization of cluster resources.
  • the invention makes it possible to overcome the aforementioned drawbacks by proposing an updating method, for at least one server of a server cluster of at least one current value of a variable denoted V chosen from an estimate of one used amount of a computing resource on the server or a maximum server capacity for said computing resource, said at least one current value being intended to be taken into account by a server cluster management device to select, upon receipt of a request for execution of a computer task associated with a predetermined quantity of said computer resource initially required for its execution, a so-called target server of the cluster for executing this computer task, said method being such that said update is carried out at each detection of an event from a predefined set of events and:
  • the detected event is to obtain a measure of a current actual use of the computing resource on the server
  • said updating of the current value of the variable V uses said measure of the current actual usage of the computer resource on the server
  • the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, said updating of the current value of the variable V uses said quantity of the reserved computer resource ; and If the detected event is a release by a computer task of a quantity of the computing resource on the server, said updating of the current value of the variable V uses said quantity of the released computing resource.
  • the invention also relates to a method for managing computer tasks comprising, on reception by a server cluster management device of a request to execute a computer task, this computer task being associated with a predetermined quantity of tasks.
  • This method is remarkable in that, for at least one server of the cluster, at least one current value of a variable denoted V chosen from the estimate of the quantity already used of the computing resource on the server and the maximum capacity of the server for the computer resource is updated according to an updating method according to the invention.
  • No limitation is attached to the nature of the computing resources of the cluster servers managed by the cluster management device and required for the execution of the computing tasks in the context of the invention. It can be any type of resource (i.e. hardware or software components) and / or networks such as memory, CPU, network access, disk space, etc.
  • the invention is described with reference to a single resource; however, the same method can be used to account for multiple resources, applying it to each resource individually. It is during the actual selection of the server on which to execute the task that the plurality of resources will be taken into account by choosing a server having each of the resources necessary for the execution of the task.
  • the invention therefore proposes a solution that makes it possible to take into account the current and actual use (i.e. effective) of the resources at the level of the servers of a cluster to manage the allocation of resources within this cluster.
  • This solution advantageously relies on the current mechanism of resource allocation applied by the state of the art cluster management systems, which makes it possible to ensure a rapid response of the management device, especially when bursting tasks must be started by it on the cluster.
  • the management device reserves for this task at the server on which it launches, a quantity of resource equal to the need declared by the user at the origin of the computer task (predetermined quantity of the computer resource initially required for the execution of the computer task within the meaning of the invention).
  • the mechanism of the state of the art is however adapted so as to take into account, after the launching of a task by the management device on a server of the cluster, the actual use of the resources by this task on the server.
  • the management device if this actual use is less than the task requirements declared by its user, to allocate the resources not used by the task to other computer tasks presented later to the management device. This is taken into account by updating, from measurements made directly on the servers, the quantities used by the management device to decide on the allocation of resources, namely the estimate of the quantity already used. the IT resource required by the server task and / or the maximum server capacity for that resource.
  • the obtaining of the measures of current use of the resource can be periodic.
  • events affecting the resources available on the server trigger an update of the current value of the variable V considered.
  • events are the reservation on the server, by the management device, of a quantity of the resource considered for other tasks, as well as the release of a quantity of this resource on the server by tasks which have finished run on this one.
  • the invention therefore makes it possible to transmit in real time the various variations that may affect the quantity of resource available on the server in the quantity taken into account by the management device to respond to a request to execute a computer task.
  • the cluster management device has indeed a more accurate representation of the amount of resource actually used on the server at any time, or at least when it receives a request to run a task.
  • the cluster management device can thus simultaneously, thanks to the invention, learn how the resources are actually used on the servers while being able to make decisions quickly to allocate resources to the computer tasks presented to it. This quick decision making is done instantly on the basis of resources that are reserved by users for these tasks without waiting to know how these tasks will actually behave.
  • the invention thus solves the dual problem of addressing bursts of tasks without having knowledge of their future use of the resources of the cluster while allowing to allocate to other tasks unused resources of the cluster.
  • the invention therefore proposes a solution compatible with large clusters and software applications comprising a large number of computer tasks to be executed on these clusters, and which makes it possible to progressively correct an erroneous or inaccurate estimate of the resource requirements of these tasks. by their users. Constraints imposed on cluster users can be relaxed.
  • the resources of the clusters are better used while attempting to ensure the proper execution of the tasks on these clusters: it is indeed limited, thanks to the invention, the long waiting times for the execution of a task computer or eviction of a computer task especially in case of insufficient resources allocated to this task taking into account the actual use of resources on the servers of the cluster. It should be noted that an extended waiting time or the eviction of a task is always possible, however he / she is counterbalanced by the fact that more tasks can be started simultaneously on the job. cluster because of a better management of the resources of the latter. The performance of the cluster is thus globally improved.
  • the invention makes it possible to adapt to a possible variation over time in the resource requirements of the tasks launched on the servers of the clusters.
  • the server's maximum capacity for the resource rather than estimating the amount already used of the computer resource required by the task on the server advantageously makes it possible to use as cluster management device the one of the management systems of the state of the art.
  • the maximum capacity of each server is information that is reported today periodically by this server cluster management system in the state of the art. Updating this capacity at the server level to reflect the actual usage of the resource ensures that the cluster management system takes into account this actual use for allocating cluster resources in a way that totally transparent for him.
  • Such an implementation is particularly interesting because it allows a progressive installation of the invention on all servers in the cluster while keeping the cluster management system unchanged. But updating servers is in practice a much simpler task than an update of the cluster management system which in itself is often an already very complex module.
  • the invention can rely on the signaling (ie communication protocol) already defined between the servers of the cluster and the cluster management system.
  • updating the current value of the variable V also uses at least a value of the variable V noted Vpast updated at a previous time.
  • the measurement of the current actual use of the computing resource can be weighted in particular by a real factor a between 0 and 1, and said at least one Vpast value can be weighted by a factor equal to (1-a).
  • This embodiment which implements an exponential moving average, makes it possible to smooth over time the taking into account of the actual use at the server of the resource with respect to the quantity of resource initially reserved.
  • This smoothing makes it possible to progressively take into account the actual use of resources at the level of each server while avoiding abrupt transient fluctuations that could lead to a less efficient allocation of resources by the cluster management device. Indeed, the more the factor a is chosen close to 0, the longer the amount of reserved resources is taken into account and the use of resources available in the cluster by the management device is delayed. On the contrary, by choosing a factor a close to 1, the management device can use the available resources earlier in time. It is noted that the factor a may vary over time.
  • the updated variable V is the estimate EU_R of the quantity already used of the computing resource on the server
  • said current value denoted EU_R (n) of the variable V is updated according to the equation:
  • EU_R (n) max ((l - a) EU_R (n - 1) + aU _R (n), U _R (n)) where n denotes an integer greater than 1, EU_R (n - 1) is the value of estimating the previously used amount of the computer resource on the server updated at a previous time, and U_R (n) denotes the metric obtained from the actual current usage of the computing resource on the server.
  • This variant has a preferred application when the computing resource in question is memory. Indeed, the constraints in terms of memory resources are relatively strong constraints in the sense that a task can be evicted from a machine on which it is executed if it requires at a given moment more memory than the machine has at that time. moment.
  • this measurement corresponds to a use of the computer resource on the server. by one or more computer tasks running on the server and all managed by the cluster management device.
  • a server can in fact run in addition to the computer tasks launched on this server by the cluster management device, other processes such as typically internal server processes launched for example by its operating system.
  • other processes such as typically internal server processes launched for example by its operating system.
  • it is ensured that only the tasks managed and positioned strictly speaking by the cluster management device are taken into account by the latter when allocating resources to the tasks presented to it.
  • this embodiment allows a strong intervention of the management device with respect to the rights (i.e. resource quantities) reserved for it on the server.
  • Said update (F30) comprises:
  • EU_R (n - lj) denotes a value evaluated at a previous instant of the estimate of the quantity already used of the computing resource on the server by this computing task Tj;
  • is a real factor between 0 and 1;
  • J denotes the number of computer tasks set on the server by the cluster management device at the time of the second evaluation step.
  • the updated variable V is the estimate EU_R of the amount already used of the computing resource on the server, and if the detected event is obtaining the measurement of the actual current use of the computing resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation:
  • EU_R (n) U_R (n) + DR_R (ri)
  • U_R (n) denotes a current measure of the actual use of the computing resource on the server
  • DR_R (n) denotes a current value of a quantity of the computing resource reserved for at least one computing task by the computing device. management on the server.
  • the method may further comprise:
  • a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for at least one computer task by the management device on the server is obtained according to the equation:
  • DR_R (n) (1 -) DR_R (n - 1)
  • denotes a real factor of between 0 and 1 and DR_R (n - 1) denotes an amount of the computer resource reserved by the management device on the server obtained at a previous instant;
  • EU_R (n) U_R (n) + DR_R (n).
  • the weighting (by a factor (l - ⁇ ) here) is no longer applied to the measurement of the actual use of resources on the server but on the resources that are reserved by the cluster management device. on this server. In other words, the amounts of reserved resources are smoothed rather than the actual use of the resource.
  • This embodiment ensures that the cluster management device takes into account, when allocating resource to a new task, a quantity of this resource used on the server always at least equal to its actual use (ie in this embodiment, it is not possible to resort to a "max" function as in the examples previously described).
  • the updating method further comprises:
  • the detected event is a reservation by the management device for a computer task of a quantity R_R_Tnew of the computer resource on the server, a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for at least one computer task by the management device on the server using said quantity R_R_Tnew and
  • the detected event is a release by a computer task of a quantity R_R_Told of the computing resource on the server, a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for the at least one computer task by the management device on the server using said quantity R_R_Told and the quantity DR_R (n - 1);
  • EU_R U_R (n) + DR_R (ri).
  • the update method is implemented by the cluster management device.
  • the invention also provides a device for managing a server cluster comprising:
  • a determination module activated on reception by the reception module of a request for execution of a computer task, said computer task being associated with a predetermined quantity of a computer resource initially required for its execution, the module of wherein the determination is configured to determine at least one server in the cluster capable of performing the computing task using the predetermined amount of the computing resource initially required for the execution of the computing task, a maximum server capacity for the computing resource and an estimate of an already used amount of the computing resource on the server;
  • a selection module configured to select a server to execute the computer task among said at least one server of the cluster determined by the determination module
  • the management device according to the invention is remarkable in that it furthermore comprises:
  • a detection module configured to detect a predefined set of events
  • An update module activated for at least one server of the cluster, and configured to update at least one current value of a variable rated V chosen from the estimate of the quantity already used of the computing resource on the server and the maximum capacity of the server for the computing resource, said update module being activated on each detection of an event among the predefined set of events by the detection module, and configured to:
  • the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource; and o if the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V using said amount of the released computing resource.
  • the updating method is implemented by the server.
  • the management method then further comprises a step of transmitting said at least one value updated by the server to the cluster management device.
  • the invention also relates to a server belonging to a server cluster managed by a management device, said server being able to execute at least one computer task managed by said management device, said at least one computer task using during its execution at least one computer resource of the server, this server comprising modules activated for at least one time interval and comprising:
  • a measurement module configured to measure a real use of the computer resource on the server
  • a detection module configured to detect a predefined set of events; and an update module configured to update at least one current value of a variable rated V selected from an estimate of an already used amount of the computing resource on the server and a maximum capacity of the server for the resource computer, said update module being activated on each detection by the detection module of an event among the predefined set of events and configured to:
  • the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource;
  • the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the released computing resource;
  • a transmission module configured to transmit to the management device said current value of the updated variable V.
  • this embodiment can facilitate the progressive implementation of the invention by limiting the developments necessary for its implementation on the cluster management device.
  • the various steps of the update method and / or the different steps of the management method are determined by computer program instructions.
  • the invention also relates to a computer program on an information carrier, this program being capable of being implemented in a management device, in a server or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of an updating method as described above.
  • the invention also relates to a computer program on an information medium, this program being capable of being implemented in a management device or more generally in a computer, this program comprising instructions adapted to the implementation steps of a management method as described above.
  • Each of these programs 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 form what other form is desirable.
  • the invention also relates to a computer readable information or recording medium, and comprising instructions of a computer program as mentioned above.
  • the information or recording medium may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.
  • the information or recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • the information or recording 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.
  • the invention also relates to a computer system comprising:
  • a server cluster comprising a plurality of servers, each server comprising at least one computer resource enabling the execution of computer tasks;
  • a server cluster management device
  • cluster management device is in accordance with the invention and / or at least one server of the cluster is in accordance with the invention.
  • the updating method, the management method, the management device, the server and the computer system according to the invention present in combination all or some of the aforementioned characteristics.
  • FIG. 1 shows, schematically, a computer system according to the invention, in a particular embodiment, the computer system comprising a server cluster and a cluster management device;
  • FIG. 2 represents the hardware architecture of the cluster management device of FIG. 1;
  • FIG. 3A represents, in the form of a flow chart, the various steps of a management method as implemented in a particular embodiment by the management device of FIG. 1;
  • FIG. 3B represents, in the form of a flow chart, the various steps of an updating method as implemented in a particular embodiment by the management device of FIG. 1;
  • FIG. 3C represents, in the form of a flow chart, the various steps of an updating method in an alternative embodiment.
  • FIG. 1 represents, in its environment, a computer system 1, according to the invention, in a first embodiment.
  • the computer system 1 comprises
  • a cluster 2 of servers comprising a plurality of servers S1, S2,..., SK, K designating an integer greater than 1, connected in a network.
  • a server cluster management device 2 according to the invention.
  • the management device 3 of the cluster 2 is configured to receive a REQ request from a client device 4 (eg a computer) of a user of the cluster 2 requesting the execution of at least one computer task T, allocate cluster 2 resources to this client for the execution of this task. More specifically, upon receiving the REQ request, the management device 3 of the cluster 2 identifies a server Sk of the cluster 2 capable of executing the computer task T, that is to say a server Sk having the necessary resources for its execution (memory, CPU, etc.), then starts the computer task T on this server Sk for it to be executed. No limitation is attached to the nature of the computer task T to be performed on the cluster 2. It may be any type of task associated with an APP software application installed on the client device 4 or any program in general.
  • such a computer program comprises a plurality of computer tasks to be executed, and which can be submitted in bursts to the management device 3 of the cluster 2 to be executed in parallel on different servers of the cluster 2.
  • the management device 3 we are interested here more particularly the processing performed by the management device 3 on one of these tasks, namely on the task T.
  • a similar treatment is applied to all the tasks contained in the REQ request.
  • Each of the tasks sent by the APP software application to the cluster management device 2 has IT resource requirements to enable its execution on the cluster 2. These requirements are specified here by the user of the client device 4 for each of the tasks. and for each resource.
  • the user of the client device 4 specifies a quantity R_R_T of memory required "initially" for the execution of the task T.
  • the quantity R_R_T can be determined roughly by the user of the client device 4, on the basis of its knowledge of the operations implemented by the computer task T and the consumption in terms of memory required by these operations.
  • These communication means 9 comprise for example a network card, well known per se.
  • the ROM 7 of the management device 3 of the cluster 2 constitutes a recording medium according to the invention, readable by the processor 8 and on which is recorded here a computer program PROG according to the invention.
  • the computer program PROG defines functional modules (and software here), configured to implement the steps of the updating process and the steps of the computer task management method according to the invention. These functional modules rely on and / or control the hardware elements 5-9 of the management device 3 mentioned above. They include in particular here, as illustrated in FIG. A module 3A for receiving requests from client devices such as the client device 4, this module 3A based on the communication means 9;
  • a determination module 3B activated on reception by the module 3A for receiving a request for execution of a computer task, the determination module being configured to determine at least one server of the cluster 2 capable of executing the computer task ;
  • a selection module 3C configured to select a server to execute the computer task among the cluster servers determined by the determination module 3B;
  • a 3D detection module configured to detect a predefined set of events relating to the resource R and further detailed;
  • a module 3E update configured to update each detection event by the detection module 3D, one or more values used by the determination module 3B to determine the servers that can perform the computer task in using the actual usage measurements of the computing resource R obtained by the obtaining 3D module.
  • the method of managing computer tasks according to the invention is based, in the first embodiment described here, on two processes that take place in parallel:
  • An asynchronous processing process PI illustrated in FIG. 3A, which is triggered by the cluster management device 2 on receipt by its receiving module 3A of each request for execution of the computer task (s) on cluster 2.
  • This IP process aims to assign each IT task computing resources on a server of cluster 2 to allow its execution;
  • a P2 update process illustrated in FIG. 3B, which is implemented here continuously by the cluster management device 3. More particularly here, the updates are aimed at values used by the device 3 of FIG. managing cluster 2 to select a server capable of executing a computer task entrusted to it. These updates are performed in the first embodiment on detection of different events belonging to a predetermined set of events. This set includes here three events, namely, the (periodic) escalation by the servers of the cluster 2 of measures of use of their resources, the positioning of tasks and the reservation of resulting resources on servers, and the release of resources on the servers.
  • the values updated during the P2 process are preferably taken into account as soon as they are available by the PI process for processing requests received after each update.
  • This request REQ comprises, as previously mentioned, a quantity R_R_T of resource R initially required so that the computer task T can execute properly, this quantity R_R_T having been predetermined by the user of the client device 4.
  • the management device 3 of the cluster 2 On receiving the request REQ (T, R_R_T), the management device 3 of the cluster 2, through its determination module 3B, determines here among the servers S1,..., SK of the cluster 2 which ones which are able to execute the task T, taking into account the needs R_R_T in resource R specified by the user. In other words, the determination module 3B determines which server (s) has a sufficient amount of resource R to execute the computer task T. It is noted that this determination does not need to be exhaustive, and a server list reduced to a single server may be sufficient.
  • the determination module 3B determines whether the server Sk checks the following inequality (eql) (test step E30):
  • - CL_R (Sk) denotes the maximum capacity of the server Sk for the computing resource R (i.e. maximum quantity of resource R available on the server Sk). This maximum capacity is raised here periodically to the management device 3 by each server Sk; and
  • - EU_R (Sk) denotes an estimate of an already used quantity of the computing resource R on the server Sk.
  • the server Sk checks the inequality (eql) (yes answer to the test step E30), it is identified by the determination module 3B as a server capable of performing the task T (step E40).
  • the determination module 3B tests a new server among the servers that have not yet been tested in cluster 2 (answer no to test step E50 and step of incrementation E60).
  • the selection module 3C selects a server SkO among the servers identified as being able to execute the computer task T taking into account its needs R_R_T R resource initially provided by the user (step E70).
  • the criteria used by the cluster management device 2 to select the SkO server This choice can be made for example compared to the other resources required for the execution of the task and available on the server SkO, with respect to geographical constraints, etc.
  • the management device 3 of the cluster 2 orders (or triggers) the launch of the task T on the selected server SkO (step E80). In other words, it positions the task T on the server SkO and reserves on this server the quantity R_R_T of resource R for execution.
  • Cluster 2 management device 3 thus proceeds for each computer task submitted to it.
  • asynchronous process PI which has just been described with reference to FIG. 3A and which is implemented by the management device 3 of the cluster 2 approaches the processes implemented by the cluster management systems of the cluster. state of the art, and in particular by the Borg and Hadoop Yarn systems mentioned above.
  • the estimate EU_R (Sk) of the quantity of resource R already used on the server Sk is taken equal, in the equation (eq l), to the quantity Q_R (Sk) of resource R initially reserved (ie allocated) by the management system on the server Sk for the execution of the tasks received previously and still being processed by the server Sk, that is to say always positioned on the server Sk (this number of tasks positioned is supposed equal to JO, JO designating an integer higher than 0).
  • the management device 3 of the cluster 2 differs from the management systems of the state of the art in that certain values used in the equation (eq l), and in particular the value EU_R (Sk and / or the limit capacitance value CL_R (Sk), are updated on detection of three predetermined events (defining a predetermined set of events in the sense of the invention) (step F10). These three events include:
  • this variable is EU_R (Sk)
  • the current value of this variable is denoted EU_R (n, Sk). It is the same for the other variables considered in the description. It is noted that a so-called current value designates a value that is available or that is modified at a considered instant called current (that is to say at a moment in progress). In the case of a measurement, it may have been carried out at a previous time (especially in case of periodicity of the measurement); if so, the current measure is the measure that is available at the current time when it is used.
  • a Tupd period for all servers in the cluster, but the invention also applies to different periods from one server to another.
  • the invention also applies when the measurements are reported at predetermined times, not necessarily spaced regularly, or completely asynchronously.
  • a measurement can be performed by each server Sk using tools known per se, for example by means of a "top" command launched by the operating system of each server Sk periodically.
  • U_R (n, Sk) is a measure of the actual use of the computing resource R carried out on the server Sk and available at the current time at the level of the management device 3 of the cluster 2.
  • Each of the measurements U_R (n, Sk), k 1,..., K obtained by the cluster management device 2 2 is used by the cluster management device 3 as a measure of the actual current use of the cluster. computer resource R on the server Sk.
  • the management device 3 of the cluster 2 via its update module 3E, updates, in the first embodiment described here, the current value of the estimate EU_R (Sk) of the used amount of the R computing resource on the Sk server intended to be taken into account by the management device 3 during step E30 of the process PI (step F30).
  • the update module 3E calculates the current value EU_R (n, Sk) according to the following equation (eq2) (step F30):
  • the equation (eq2) advantageously makes it possible to adjust (ie update) the level EU_R (n, Sk) of use of the resource R used by the management device 3 of cluster 2 for the allocation of resources to IT tasks that are entrusted to it taking into account the actual use of resources on cluster 2 servers.
  • This allows, if a task running on a Sk server in cluster 2 requires less R resource to run than the needs in this resource initially announced by the user in the request to execute this task, to allocate to other tasks of the resource R not used on the server Sk, or conversely to stop the allocation of resource R to incoming tasks if the Sk server no longer has an available R resource. This results in a better allocation by the resource management device 3 of the cluster 2, while ensuring a good performance of the tasks on the cluster.
  • Cluster 2 management device 3 is responsible for the positioning (assignment) of tasks on the various servers Sk of the cluster, it can inform without delay via its selection module 3C, the 3D detection module of the reservation of new resources on a server Sk.
  • EU_R (n, Sk) EU_R (n. - the Sk) - (1 - a) nold R_R_Told (eq3-FREE) where indexes nold the number of updates to EU_R performed on detection of UPD-U event ( new measurement returned to the device 3 for managing the actual use of the resource) from the moment when the quantity of resource R_R_Told was reserved for the task Told on the server Sk until its release, the quantity R_R_Told corresponding to the needs initially required R resource declared by the user in the execution request of the Told task addressed to the management device 3.
  • Equation (eq3) -FREE the factor (1 -) nold R_R_Told takes account of the balance of resource R that is released by the Told task at the server Sk due to end its execution by the server Sk. It is noted that the taking into account of this balance is of special interest for tasks whose execution is of short duration (for example less than the period of Tupd update).
  • the events EV RESA can be easily detected by the management device 3 of the cluster 2, the latter being in charge of the allocation of resources to the computer tasks entrusted to it.
  • the management device then has the information necessary to evaluate the factor (1 - a) nold R_R_Told.
  • the current value EU_R (n, Sk) updating the variable EU_R (Sk) is used as soon as it is available (ie as soon as it has been updated) by the determination module 3B of the device 3 for managing the cluster 2 as part of the PI process, and more precisely in the inequality (eql) for selecting a cluster 2 server capable of executing a new incoming task received as of this update.
  • the update module 3E uses in step F30 to calculate the current value EU_R (n, Sk) the equation (eq2 following instead of the equation ( eq2):
  • EU_R (n, Sk) max ((l - a) EU_R (n - 1. Sfc) + aU_R (n, Sk ⁇ ), U_R (n, Sk)) (eq2 ') where max (x, y) designates the function that provides the maximum value among x and y values.
  • the update processes described in steps F40 and F50 remain otherwise identical to that described above.
  • This first embodiment makes it possible to take account more quickly of the real use of the resources on the server Sk.
  • the updating module 3E uses to calculate the current value EU_R (n, Sk) the following equation (eq2 ") in place of the equation ( eq2) (step G30):
  • EU_R (n, Sk) DR_R (n, Sk) + U_R (n, Sk) (eq2 ")
  • DR_R (n, Sk) denotes a smoothed current value of the amount of the computer resource reserved for at least one computer task by the management device 3 on the server Sk at the current time.
  • the smoothed value DR_R (n, Sk) is calculated here by the updating module 3E during step G30, in the second variant, according to the following equation (eq4):
  • DR_R (n, Sk) (1 -) DR_R (n - 1, Sk) (eq4)
  • is a real weighting factor between 0 and 1. It is noted that the choice of the weighting factor /? responds to a compromise similar to the one mentioned above for the choice of the weighting factor a (the speed of forgetting the reserved resources versus the actual observed use of these resources).
  • variable DR_R is periodically updated according to the same period Tupd as the feedback of the measurements to the management device 3.
  • D_R (n, Sk) D_R (n-1, Sk) + R_R_Tnew (eq5-RESA) and
  • D_R n, Sk D_R (n - l, Sk) - (1 -) nold R_R_Told (EQ5-FREE) where indexes nold the number of updates to D_R performed on detection of UPD-U event (new measure returned to the device 3 for managing the actual use of the resource) since the quantity of resource R_R_Told was reserved for the task Told on the server Sk until its release, the quantity R_R_Told corresponding to the initially required needs in resource R declared by the user in the execution request of the task Told addressed to the management device 3.
  • the tasks Tj executed by the server Sk and managed by the management device 3 of the cluster 2 that is to say those which were launched on the server Sk on command 3 of the management of the cluster 2 after execution of the PI process).
  • U_R (n, Sk, j) is a measure of the actual use of the computing resource R carried out on the server Sk for the task Tj at the end of the time interval t (n-1).
  • Each measurement U_R (n, Sk, j) carried out on a server Sk is sent at the end of the time interval t (n) to the management device 3 of the cluster 2, and obtained during the step F20 by the 3D module for obtaining the cluster management device 3.
  • Each U_R measurement (n, Sk, j) is used by the cluster management device 3 as a measure of the actual use of the computer resource R on the Sk server by the task Tj for the time interval t (n).
  • the management device 3 of the cluster via its update module 3E, evaluates in the third variant, during the step F30, an estimate EU_R (n, Sk, j) of the amount already used of the computing resource R on each server Sk by each computer task Tj managed by the management device 3 of the cluster 2 and executed on the server Sk using the following equation (eq6):
  • EU_R (n, Sk, j) (1 - a) EU_R (n - 1. Sk.j) + U_R (n, Sk, j) (eq 6) or the following equation (eqô:
  • EU_R (n, Sk, j) max ((l - a) EU_R (n - l.Sk.j) + aU_R (n, Sk, j), U_R (n, Sk, jj) (eq 6 ') in which is a real weighting factor between 0 and 1, chosen as described previously in the other variant embodiments It should be noted that in this third variant, EU_R (n0j, j) is initialized to the quantity R_R_Tj of computing resource R initially required. for the execution of the task Tj, nOj denoting the updating index corresponding to the allocation of the computer task Tj to the server Sk by the management device 3.
  • the update module 3E evaluates from the values EU_R (n, Sk, fi obtained for each task Tj the quantity EU_R (n, Sk) according to the following equation (eq2 '"):
  • EU_R (n, Sk) ⁇ EU_R (n, Sk, j) (eq2 "')
  • each server Sk of cluster 2 is a server according to the invention. He understands :
  • a measurement module configured to periodically measure the actual use of its computing resource R
  • a detection module configured to detect a predefined set of events (UPD-U, RESA and FREE);
  • An update module configured to update at least one current value of a variable rated V selected from an estimate of an already used quantity of the computing resource on the server and a maximum capacity of the server for the computing resource , said update module being activated on each detection by the detection module of an event among the predefined set of events and configured to:
  • the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource;
  • the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the released computing resource;
  • a transmission module configured to transmit to the management device said current value of the updated variable V.
  • each Sk server estimates via its update module. day the current amount EU_R (n, Sk) already used of its computer resource R. It can proceed for this purpose for example similarly or identically to what has been described previously in the first embodiment and implemented by the management device 3 with reference to FIGS. 3B and 3C.
  • the update module of the server Sk updates the value of its maximum capacity CL_R (Sk) for the resource R and for the time interval t (n) according to the following equation (eq7):
  • CL_R (n, Sk) CL_R (Sk) + Q_R (n, Sk) - EU (n, Sk) (eq7)
  • Q_R (n, Sk) denotes the quantity of resource R initially reserved by the management device 3 on the server Sk for the execution of the tasks positioned on the server Sk at the current time of update.
  • This quantity Q_R (n, Sk) is given by, taking into account the needs R_R_Tj, in resource R declared by the users at the origin of these tasks:
  • J2 (n) denotes the number of tasks Tl, ..., TJ2 (n) positioned on the server Sk at the current update time.
  • the current value of the maximum capacity CL_R (n, Sk) of the server Sk for the resource R is then raised (periodically for example here) by the server Sk to the management device 3 of the cluster 2, for example using the communication protocol already used in computer systems based on a Hadoop Yarn management system.
  • the cluster management device 2 can be a Hadoop Yarn management system or a Borg management system already known, only the cluster 2 Sk servers must be modified to implement the invention. Cluster 2 servers.
  • a weighted moving average MMP (n, Sk) may be considered of actual usage measurements sent back to a sliding window comprising N time intervals preceding the current update time, such as for example:
  • MMP (n, Sk) - J - ⁇ -, - - -
  • N is the maximum of the number of measurements U_R (n, Sk) available preceding measurement U_R (n, Sk) and of N.
  • MMP (n, Sk) MMP (n-1, 57c) +; - -
  • EU_R (n, Sk) MMP (n, Sk) +>> - ' T
  • EU_R (n, Sk) EU_R (n, Sk) + R_R_Tnew

Abstract

The invention envisages a method of updating for at least one server of a cluster a current value of a variable from among an estimation of a quantity already used of a computing resource on the server or a maximum capacity of the server for this resource, this current value being taken into account by a device for managing the cluster so as to select on receipt of a computing task execution request, a target server to execute this task, the updating being carried out at each detection (F10) of an event (EV) from among a predefined set of events and: ¾ if the detected event is the obtaining of a measurement of a current actual use of the resource on the server, the updating (F30) uses the measurement of the current actual use of the resource on the server; ¾ if the detected event is the reserving for a computing task of a quantity of the resource on the server, the updating (F40) uses the quantity of resource reserved; and ¾ if the detected event is the releasing by a computing task of a quantity of the resource on the server, the updating (F50) uses the quantity of resource released.

Description

Procédé et dispositif de mise à jour  Method and device for updating
Arrière-plan de rinvention  Background rinenvention
L'invention se rapporte au domaine général des systèmes informatiques, et plus particulièrement des systèmes informatiques s'appuyant sur des clusters de machines (désignées également plus couramment par « serveurs »).  The invention relates to the general field of computer systems, and more particularly to computer systems based on machine clusters (also more commonly referred to as "servers").
De façon connue, un cluster (ou grappe) de serveurs regroupe plusieurs ordinateurs (ou nœuds) indépendants placés en réseau, de sorte à permettre une gestion globale et optimisée des ressources informatiques (ex. mémoire, CPU (Central Processing Unit), espace disque, accès réseau, etc.) offertes par ces ordinateurs. Un tel cluster de serveurs permet typiquement la distribution et le lancement en parallèle, sur plusieurs serveurs distincts du cluster, de différentes tâches informatiques associées à un même programme ou à une même application informatique (aussi désigné par « travail » ou encore « job » en anglais). Dans le contexte des traitements de données actuels, qui peuvent impliquer des volumes de données très importants (ex. traitements dits « Big Data »), il n'est pas rare de rencontrer des clusters de serveurs comprenant des milliers voire des dizaines de milliers de machines qu'il est nécessaire d'administrer de façon efficace.  In a known manner, a cluster (or cluster) of servers groups together several independent computers (or nodes) placed in a network, so as to allow a global and optimized management of computing resources (eg memory, CPU (Central Processing Unit), disk space , network access, etc.) offered by these computers. Such a cluster of servers typically allows parallel distribution and launch, on several servers different from the cluster, of different computer tasks associated with the same program or the same computer application (also referred to as "work" or "job" in English). In the context of current data processing, which can involve very large amounts of data (eg so-called "Big Data" processes), it is not uncommon to encounter server clusters with thousands or even tens of thousands of machines that need to be administered effectively.
La distribution des tâches sur les différentes machines d'un cluster est généralement administrée par un système de gestion du cluster. Des systèmes de gestion de clusters connus sont par exemple le système Borg proposé par Google ou encore le système Hadoop Yarn proposé par The Apache Software Foundation. Ces systèmes sont capables d'administrer des clusters regroupant un nombre très important de machines, et de lancer en parallèle sur ces machines des centaines de milliers de tâches appartenant à plusieurs milliers d'applications logicielles différentes.  The distribution of tasks on different machines in a cluster is usually administered by a cluster management system. Known cluster management systems are for example the Borg system proposed by Google or the Hadoop Yarn system proposed by The Apache Software Foundation. These systems are capable of administering clusters of a very large number of machines, and running hundreds of thousands of tasks on these machines belonging to several thousand different software applications.
Dans ce contexte, les systèmes de gestion des clusters sont très souvent confrontés à des tâches qui doivent être lancées en rafales sur les clusters. Il leur est donc nécessaire pour traiter efficacement ces tâches de prendre une décision très rapidement quant à leur distribution sur les différentes machines des clusters. A cet effet, les systèmes de gestion de clusters de l'état de la technique allouent les ressources d'un cluster aux différentes tâches d'un programme (autrement dit, associent à ces différentes tâches différents serveurs du cluster capables de fournir les ressources nécessaires à leur exécution et réservent sur ces serveurs les ressources requises) sur la base des ressources réservées par l'utilisateur du cluster qui demande l'exécution de son programme.  In this context, cluster management systems are often faced with tasks that need to be burst on clusters. It is therefore necessary for them to deal effectively with these tasks to make a decision very quickly as to their distribution on the different machines of the clusters. For this purpose, state-of-the-art cluster management systems allocate the resources of a cluster to the different tasks of a program (in other words, associate with these different tasks different servers in the cluster capable of providing the necessary resources at their execution and reserve on these servers the required resources) on the basis of the resources reserved by the user of the cluster which requests the execution of his program.
Ainsi à titre d'exemple, le système de gestion de cluster Hadoop Yarn définit, pour chaque serveur S d'un cluster Hadoop et chaque ressource informatique R offerte par le serveur, une capacité limite CL_R. On considère ici par souci de simplification que tous les serveurs S ont la même capacité limite pour la ressource R. La ressource informatique R peut être de nature diverse comme par exemple de la mémoire, du CPU (Central Processing Unit), de l'espace disque, un accès réseau, etc. Pour décider quelle ressource allouer sur quel serveur du cluster à une tâche j d'un programme (ou job), le système de gestion de cluster Hadoop Yarn détermine rapidement quels sont les serveurs capables d'exécuter cette tâche j, autrement dit, quels sont les serveurs qui disposent des ressources nécessaires à son exécution au vu des besoins en ressource R déclarés par l'utilisateur du programme. Il utilise à cet effet la capacité limite CL_R de chaque serveur, les besoins R_RJ de la tâche j en ressource R déclarés par l'utilisateur du programme, et la quantité totale T_R de ressource R déjà réservées sur chaque serveur. Un serveur est alors considéré comme apte à exécuter une tâche j seulement si pour ce serveur : Thus, for example, the Hadoop Yarn cluster management system defines, for each server S of a Hadoop cluster and each computer resource R offered by the server, a limit capacity CL_R. For the sake of simplicity, it is considered here that all the servers S have the same capacity limit for the resource R. The computing resource R can be of various nature, for example memory, CPU (Central Processing Unit), space disk, network access, etc. To decide which resource to allocate on which server of the cluster to a task j of a program (or job), the Hadoop Yarn cluster management system quickly determines which servers are capable of performing this task, i. the servers that have the necessary resources for its execution in view of the resource requirements R declared by the user of the program. It uses for this purpose the limit capacity CL_R of each server, the R_RJ needs of the task j R resource declared by the user of the program, and the total amount T_R resource R already reserved on each server. A server is then considered to be able to execute a task j only if for this server:
R_RJ+T_R < CL_R.  R_RJ + T_R <CL_R.
Un serveur est alors sélectionné par le système de gestion Hadoop Yarn parmi les serveurs aptes à exécuter la tâche j, en fonction de critères prédéterminés, non détaillés ici.  A server is then selected by the Hadoop Yarn management system among the servers able to execute the task j, according to predetermined criteria, not detailed here.
Ce mode de fonctionnement n'est pas sans contrainte pour les utilisateurs du cluster. En effet, cela impose aux utilisateurs de spécifier les besoins en ressources des différentes tâches de leurs programmes de façon suffisamment précise pour ne pas bloquer inutilement des ressources au niveau du cluster ni, au contraire, risquer de voir leurs tâches ne pas être traitées ou être traitées de façon moins performante parce qu'elles requièrent plus de ressources que celles déclarées par l'utilisateur. Une telle estimation des besoins des tâches de leurs programmes est particulièrement difficile pour les utilisateurs, d'autant plus que ces besoins sont susceptibles d'évoluer dans le temps. Dans ce contexte, il est classique que les utilisateurs surestiment les besoins en ressources des tâches de leurs programmes, ce qui conduit à une sous-utilisation des ressources du cluster. Objet et résumé de l'invention  This mode of operation is not without constraints for the users of the cluster. This requires users to specify the resource requirements of the different tasks in their programs in sufficient detail not to unnecessarily block resources at the cluster level or, on the contrary, risk seeing their tasks not be processed or treated less efficiently because they require more resources than those declared by the user. Such an estimation of the needs of the tasks of their programs is particularly difficult for the users, especially since these needs are likely to evolve over time. In this context, it is traditional for users to overestimate the resource requirements of the tasks in their programs, which leads to underutilization of cluster resources. Object and summary of the invention
L'invention permet notamment de pallier les inconvénients précités en proposant un procédé de mise à jour, pour au moins un serveur d'un cluster de serveurs d'au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée d'une ressource informatique sur le serveur ou une capacité maximale du serveur pour ladite ressource informatique, ladite au moins une valeur courante étant destinée à être prise en compte par un dispositif de gestion du cluster de serveurs pour sélectionner, sur réception d'une requête d'exécution d'une tâche informatique associée à une quantité prédéterminée de ladite ressource informatique requise initialement pour son exécution, un serveur dit cible du cluster pour exécuter cette tâche informatique, ledit procédé étant tel que ladite mise à jour est réalisée à chaque détection d'un événement parmi un ensemble prédéfini d'événements et :  The invention makes it possible to overcome the aforementioned drawbacks by proposing an updating method, for at least one server of a server cluster of at least one current value of a variable denoted V chosen from an estimate of one used amount of a computing resource on the server or a maximum server capacity for said computing resource, said at least one current value being intended to be taken into account by a server cluster management device to select, upon receipt of a request for execution of a computer task associated with a predetermined quantity of said computer resource initially required for its execution, a so-called target server of the cluster for executing this computer task, said method being such that said update is carried out at each detection of an event from a predefined set of events and:
— si l'événement détecté est une obtention d'une mesure d'une utilisation réelle courante de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ; If the detected event is to obtain a measure of a current actual use of the computing resource on the server, said updating of the current value of the variable V uses said measure of the current actual usage of the computer resource on the server;
— si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise ladite quantité de la ressource informatique réservée ; et — si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise ladite quantité de la ressource informatique libérée. If the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, said updating of the current value of the variable V uses said quantity of the reserved computer resource ; and If the detected event is a release by a computer task of a quantity of the computing resource on the server, said updating of the current value of the variable V uses said quantity of the released computing resource.
L'invention vise aussi un procédé de gestion de tâches informatiques comprenant, sur réception par un dispositif de gestion d'un cluster de serveurs d'une requête d'exécution d'une tâche informatique, cette tâche informatique étant associée à une quantité prédéterminée d'une ressource informatique requise initialement pour son exécution :  The invention also relates to a method for managing computer tasks comprising, on reception by a server cluster management device of a request to execute a computer task, this computer task being associated with a predetermined quantity of tasks. a computer resource initially required for its execution:
— une étape de détermination, par le dispositif de gestion du cluster, d'au moins un serveur du cluster apte à exécuter la tâche informatique, cette étape de détermination utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;  A step of determining, by the cluster management device, at least one cluster server capable of executing the computer task, this determining step using the predetermined quantity of the computer resource initially required for the execution of the task; computing, a maximum server capacity for the computing resource and an estimate of an already used amount of the computing resource on the server;
— une étape de sélection, par le dispositif de gestion du cluster, d'un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé.  A step of selection, by the cluster management device, of a server for executing the computer task among said at least one server of the determined cluster.
Ce procédé est remarquable en ce que, pour au moins un serveur du cluster, au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique est mise à jour conformément à un procédé de mise à jour selon l'invention. This method is remarkable in that, for at least one server of the cluster, at least one current value of a variable denoted V chosen from the estimate of the quantity already used of the computing resource on the server and the maximum capacity of the server for the computer resource is updated according to an updating method according to the invention.
Aucune limitation n'est attachée à la nature des ressources informatiques des serveurs du cluster gérées par le dispositif de gestion du cluster et requises pour l'exécution des tâches informatiques dans le contexte de l'invention. Il peut s'agir de tout type de ressources (i.e. composants matériels ou logiciels) informatiques et/ou réseaux comme par exemple de la mémoire, du CPU, des accès réseaux, de l'espace disque, etc.  No limitation is attached to the nature of the computing resources of the cluster servers managed by the cluster management device and required for the execution of the computing tasks in the context of the invention. It can be any type of resource (i.e. hardware or software components) and / or networks such as memory, CPU, network access, disk space, etc.
En outre, l'invention est décrite en référence à une unique ressource ; toutefois le même procédé peut être utilisé pour prendre en compte plusieurs ressources, en l'appliquant à chaque ressource individuellement. C'est lors de la sélection à proprement parler du serveur sur lequel exécuter la tâche que la pluralité des ressources sera prise en compte en choisissant un serveur disposant de chacun des ressources nécessaires pour l'exécution de la tâche.  In addition, the invention is described with reference to a single resource; however, the same method can be used to account for multiple resources, applying it to each resource individually. It is during the actual selection of the server on which to execute the task that the plurality of resources will be taken into account by choosing a server having each of the resources necessary for the execution of the task.
L'invention propose donc une solution qui permet de tenir compte de l'utilisation courante et réelle (i.e. effective) des ressources au niveau des serveurs d'un cluster pour gérer l'attribution des ressources au sein de ce cluster.  The invention therefore proposes a solution that makes it possible to take into account the current and actual use (i.e. effective) of the resources at the level of the servers of a cluster to manage the allocation of resources within this cluster.
Cette solution s'appuie avantageusement sur le mécanisme actuel d'allocation de ressources appliqué par les systèmes de gestion de clusters de l'état de la technique, ce qui permet d'assurer une réponse rapide du dispositif de gestion notamment lorsque des tâches en rafales doivent être lancées par celui-ci sur le cluster. En effet, sans connaissance a priori sur l'utilisation réelle des ressources par une tâche informatique, le dispositif de gestion réserve pour cette tâche au niveau du serveur sur lequel il la lance, une quantité de ressource égale au besoin déclaré par l'utilisateur à l'origine de la tâche informatique (quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique au sens de l'invention). This solution advantageously relies on the current mechanism of resource allocation applied by the state of the art cluster management systems, which makes it possible to ensure a rapid response of the management device, especially when bursting tasks must be started by it on the cluster. Indeed, without prior knowledge of the actual use of resources by a computer task, the management device reserves for this task at the server on which it launches, a quantity of resource equal to the need declared by the user at the origin of the computer task (predetermined quantity of the computer resource initially required for the execution of the computer task within the meaning of the invention).
Le mécanisme de l'état de la technique est toutefois adapté de sorte à prendre en compte, après le lancement d'une tâche par le dispositif de gestion sur un serveur du cluster, l'utilisation réelle des ressources par cette tâche sur le serveur.  The mechanism of the state of the art is however adapted so as to take into account, after the launching of a task by the management device on a server of the cluster, the actual use of the resources by this task on the server.
Ceci offre la possibilité au dispositif de gestion, si cette utilisation réelle est inférieure aux besoins de la tâche déclarés par son utilisateur, d'attribuer les ressources non utilisées par la tâche à d'autres tâches informatiques présentées ultérieurement au dispositif de gestion. Cette prise en compte est réalisée via la mise à jour, à partir de mesures effectuées directement sur les serveurs, des quantités utilisées par le dispositif de gestion pour décider de l'attribution des ressources, à savoir de l'estimation de la quantité déjà utilisée de la ressource informatique requise par la tâche sur le serveur et/ou de la capacité maximale du serveur pour cette ressource. Dans un mode particulier de réalisation, l'obtention des mesures d'utilisation courante de la ressource peut être périodique.  This allows the management device, if this actual use is less than the task requirements declared by its user, to allocate the resources not used by the task to other computer tasks presented later to the management device. This is taken into account by updating, from measurements made directly on the servers, the quantities used by the management device to decide on the allocation of resources, namely the estimate of the quantity already used. the IT resource required by the server task and / or the maximum server capacity for that resource. In a particular embodiment, the obtaining of the measures of current use of the resource can be periodic.
En outre, conformément à l'invention, d'autres événements affectant les ressources disponibles sur le serveur déclenchent une mise à jour de la valeur courante de la variable V considérée. Ces événements sont la réservation sur le serveur, par le dispositif de gestion, d'une quantité de la ressource considérée pour d'autres tâches, ainsi que la libération d'une quantité de cette ressource sur le serveur par des tâches qui ont fini de s'exécuter sur celui-ci.  In addition, according to the invention, other events affecting the resources available on the server trigger an update of the current value of the variable V considered. These events are the reservation on the server, by the management device, of a quantity of the resource considered for other tasks, as well as the release of a quantity of this resource on the server by tasks which have finished run on this one.
Ceci permet de prendre en compte les tâches informatiques qui sont positionnées de façon asynchrone sur le serveur par le dispositif de gestion entre deux remontées de mesures d'utilisation réelle de la ressource sur le serveur (ces remontées n'étant généralement pas continues mais périodiques ou à des instants prédéterminés), ainsi que celles qui se terminent sur le serveur. La prise en compte des tâches achevées a un intérêt privilégié lorsqu'une tâche informatique lancée sur un serveur se termine très rapidement, typiquement en un temps inférieur à la période de remontée des mesures d'utilisation réelle faites sur le serveur le cas échéant. Cela permet d'éliminer le reliquat de ressource réservé pour cette tâche sur le serveur et qui n'est plus utilisé par ce serveur sans pour autant être répercuté dans la mesure.  This makes it possible to take into account the computer tasks that are positioned asynchronously on the server by the management device between two uploads of measurements of actual use of the resource on the server (these updates are generally not continuous but periodic or at predetermined times), as well as those ending on the server. Taking into account the completed tasks is of particular interest when a computer task launched on a server ends very quickly, typically in a time less than the period of recovery of the actual usage measurements made on the server if necessary. This eliminates the resource remaining reserved for this task on the server and is no longer used by this server without being reflected in the measurement.
L'invention rend donc possible la répercussion en temps réel des différentes variations susceptibles d'affecter la quantité de ressource disponible sur le serveur dans la quantité prise en compte par le dispositif de gestion pour répondre à une requête d'exécution d'une tâche informatique. Le dispositif de gestion du cluster dispose en effet d'une représentation plus précise de la quantité de ressource réellement utilisée sur le serveur à chaque instant, ou tout du moins au moment où il reçoit une requête d'exécution d'une tâche.  The invention therefore makes it possible to transmit in real time the various variations that may affect the quantity of resource available on the server in the quantity taken into account by the management device to respond to a request to execute a computer task. . The cluster management device has indeed a more accurate representation of the amount of resource actually used on the server at any time, or at least when it receives a request to run a task.
Le dispositif de gestion du cluster peut ainsi simultanément, grâce à l'invention, apprendre comment les ressources sont effectivement utilisées sur les serveurs tout en étant capable de prendre des décisions rapidement pour allouer des ressources aux tâches informatiques qui lui sont présentées. Cette prise de décision rapide est réalisée instantanément sur la base des ressources qui sont réservées par les utilisateurs pour ces tâches sans attendre de savoir comment ces tâches vont se comporter effectivement. L'invention résout ainsi le double problème d'adresser des rafales de tâches sans avoir de connaissance de leur utilisation future des ressources du cluster tout en permettant d'allouer à d'autres tâches des ressources non utilisées du cluster. The cluster management device can thus simultaneously, thanks to the invention, learn how the resources are actually used on the servers while being able to make decisions quickly to allocate resources to the computer tasks presented to it. This quick decision making is done instantly on the basis of resources that are reserved by users for these tasks without waiting to know how these tasks will actually behave. The invention thus solves the dual problem of addressing bursts of tasks without having knowledge of their future use of the resources of the cluster while allowing to allocate to other tasks unused resources of the cluster.
L'invention propose donc une solution compatible avec des clusters de grande dimension et des applications logicielles comprenant un nombre volumineux de tâches informatiques à exécuter sur ces clusters, et qui permet de corriger progressivement une estimation erronée ou peu précise des besoins en ressources de ces tâches par leurs utilisateurs. Les contraintes imposées aux utilisateurs des clusters peuvent être ainsi relâchées.  The invention therefore proposes a solution compatible with large clusters and software applications comprising a large number of computer tasks to be executed on these clusters, and which makes it possible to progressively correct an erroneous or inaccurate estimate of the resource requirements of these tasks. by their users. Constraints imposed on cluster users can be relaxed.
Par ailleurs, les ressources des clusters sont mieux utilisées tout en tentant d'assurer la bonne exécution des tâches sur ces clusters : on limite en effet, grâce à l'invention, les temps d'attente prolongés pour l'exécution d'une tâche informatique ou l'éviction d'une tâche informatique notamment en cas de ressources insuffisantes attribuées à cette tâche en tenant compte de l'utilisation réelle des ressources sur les serveurs du cluster. Il convient de noter qu'un temps d'attente prolongé ou l'éviction d'une tâche est toujours possible, toutefois il ou elle est contrebalancé(e) par le fait qu'un plus grand nombre de tâches peut être lancé simultanément sur le cluster du fait d'une meilleure gestion des ressources de ce dernier. Les performances du cluster sont ainsi globalement améliorées.  Moreover, the resources of the clusters are better used while attempting to ensure the proper execution of the tasks on these clusters: it is indeed limited, thanks to the invention, the long waiting times for the execution of a task computer or eviction of a computer task especially in case of insufficient resources allocated to this task taking into account the actual use of resources on the servers of the cluster. It should be noted that an extended waiting time or the eviction of a task is always possible, however he / she is counterbalanced by the fact that more tasks can be started simultaneously on the job. cluster because of a better management of the resources of the latter. The performance of the cluster is thus globally improved.
En outre, l'invention permet de s'adapter à une éventuelle variation dans le temps des besoins en ressources des tâches lancées sur les serveurs des clusters.  In addition, the invention makes it possible to adapt to a possible variation over time in the resource requirements of the tasks launched on the servers of the clusters.
On note que la mise à jour de la capacité maximale du serveur pour la ressource plutôt que de l'estimation de la quantité déjà utilisée de la ressource informatique requise par la tâche sur le serveur permet avantageusement d'utiliser comme dispositif de gestion du cluster l'un des systèmes de gestion de l'état de la technique. En effet, la capacité maximale de chaque serveur est une information qui est remontée aujourd'hui périodiquement par ce serveur au système de gestion du cluster dans l'état de la technique. En mettant à jour cette capacité au niveau du serveur pour qu'elle reflète l'utilisation réelle de la ressource, on s'assure que le système de gestion du cluster prend en compte cette utilisation réelle pour l'attribution des ressources du cluster de façon totalement transparente pour lui. Autrement dit, ceci permet d'envisager une implémentation dans laquelle le fonctionnement du système de gestion centralisé du cluster reste le même (et donc dans laquelle il est possible d'utiliser des systèmes de gestion de l'état de la technique, tels que les systèmes Borg ou Hadoop Yarn mentionnés précédemment), et où seuls les serveurs du cluster doivent être adaptés pour prendre en compte dans la capacité maximale qu'ils remontent au système de gestion du cluster, l'utilisation réelle de leurs ressources. Une telle implémentation est particulièrement intéressante car elle permet une installation progressive de l'invention sur l'ensemble des serveurs du cluster tout en gardant inchangé le système de gestion du cluster. Or la mise à jour des serveurs s'avère en pratique une tâche bien plus simple qu'une mise à jour du système de gestion du cluster qui en soi est souvent un module déjà très complexe. En outre, dans cette variante, l'invention peut s'appuyer sur la signalisation (i.e. protocole de communication) déjà définie entre les serveurs du cluster et le système de gestion du cluster. It is noted that updating the server's maximum capacity for the resource rather than estimating the amount already used of the computer resource required by the task on the server advantageously makes it possible to use as cluster management device the one of the management systems of the state of the art. Indeed, the maximum capacity of each server is information that is reported today periodically by this server cluster management system in the state of the art. Updating this capacity at the server level to reflect the actual usage of the resource ensures that the cluster management system takes into account this actual use for allocating cluster resources in a way that totally transparent for him. In other words, this makes it possible to envisage an implementation in which the operation of the centralized management system of the cluster remains the same (and therefore in which it is possible to use management systems of the state of the art, such as previously mentioned Borg or Hadoop Yarn systems), and where only the servers in the cluster must be adapted to take into account in the maximum capacity that they go back to the cluster management system, the actual use of their resources. Such an implementation is particularly interesting because it allows a progressive installation of the invention on all servers in the cluster while keeping the cluster management system unchanged. But updating servers is in practice a much simpler task than an update of the cluster management system which in itself is often an already very complex module. In addition, in this variant, the invention can rely on the signaling (ie communication protocol) already defined between the servers of the cluster and the cluster management system.
Dans un mode particulier de réalisation, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, la mise à jour de la valeur courante de la variable V utilise en outre au moins une valeur de la variable V notée Vpast mise à jour à un instant précédent.  In a particular embodiment, if the detected event is to obtain the measurement of the current real use of the computing resource on the server, updating the current value of the variable V also uses at least a value of the variable V noted Vpast updated at a previous time.
Dans ce mode de réalisation, lors de la mise à jour la mesure de l'utilisation réelle courante de la ressource informatique peut être notamment pondérée par un facteur réel a compris entre 0 et 1, et ladite au moins une valeur Vpast être pondérée par un facteur égal à (1-a).  In this embodiment, during the update, the measurement of the current actual use of the computing resource can be weighted in particular by a real factor a between 0 and 1, and said at least one Vpast value can be weighted by a factor equal to (1-a).
Ce mode de réalisation, qui met en œuvre une moyenne mobile de type exponentielle, permet de lisser dans le temps la prise en compte de l'utilisation réelle au niveau du serveur de la ressource par rapport à la quantité de ressource initialement réservée. Ce lissage donne la possibilité d'une prise en compte progressive de l'utilisation réelle des ressources au niveau de chaque serveur tout en évitant des fluctuations transitoires brusques qui pourraient entraîner une allocation moins efficace des ressources par le dispositif de gestion du cluster. En effet, plus le facteur a est choisi proche de 0, plus on tient compte longtemps de la quantité de ressources réservées et on retarde l'utilisation des ressources disponibles dans le cluster par le dispositif de gestion. Au contraire, en choisissant un facteur a proche de 1, le dispositif de gestion peut utiliser les ressources disponibles plus tôt dans le temps. On note que le facteur a peut varier dans le temps.  This embodiment, which implements an exponential moving average, makes it possible to smooth over time the taking into account of the actual use at the server of the resource with respect to the quantity of resource initially reserved. This smoothing makes it possible to progressively take into account the actual use of resources at the level of each server while avoiding abrupt transient fluctuations that could lead to a less efficient allocation of resources by the cluster management device. Indeed, the more the factor a is chosen close to 0, the longer the amount of reserved resources is taken into account and the use of resources available in the cluster by the management device is delayed. On the contrary, by choosing a factor a close to 1, the management device can use the available resources earlier in time. It is noted that the factor a may vary over time.
Bien entendu, d'autres manières de prendre en compte la mesure de l'utilisation réelle de la ressource informatique et le cas échéant ladite au moins une valeur mise à jour à un instant précédent peuvent être envisagées. On peut s'appuyer par exemple sur le principe d'une moyenne mobile arithmétique ou pondérée de mesures obtenues à différents instants et évaluée sur une fenêtre glissante de dimension prédéterminée dont l'extrémité est positionnée sur l'instant courant, etc. Dans le cas d'une moyenne pondérée, on peut envisager d'appliquer des poids décroissants au fur et à mesure que l'ancienneté des mesures augmente.  Of course, other ways of taking into account the measurement of the actual use of the computer resource and, if appropriate, said at least one value updated at a previous instant may be envisaged. For example, it is possible to rely on the principle of an arithmetic or weighted moving average of measurements obtained at different times and evaluated on a sliding window of predetermined size whose end is positioned on the current instant, etc. In the case of a weighted average, one can consider applying decreasing weights as the age of the measures increases.
A titre d'exemple, dans une variante de réalisation de l'invention dans laquelle la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation :  By way of example, in a variant embodiment of the invention in which the updated variable V is the estimate EU_R of the quantity already used of the computing resource on the server, if the detected event is obtaining of measuring the actual current usage of the computing resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation:
EU_R(n) = max((l - a)EU_R(n - 1) + aU _R(n), U _R(n)) où n désigne un entier supérieur à 1, EU_R(n - 1) est la valeur de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur mise à jour à un instant précédent, et U_R(n) désigne la mesure obtenue de l'utilisation réelle courante de la ressource informatique sur le serveur. Cette variante a une application privilégiée lorsque la ressource informatique en question est de la mémoire. En effet, les contraintes en terme de ressource mémoire sont des contraintes relativement fortes dans le sens où une tâche peut être évincée d'une machine sur laquelle elle est exécutée si elle requiert à un instant donné plus de mémoire que la machine en dispose à cet instant. En forçant la mise à jour de la valeur EU_R(n) à une valeur supérieure ou égale à la ressource mémoire U_R(n) effectivement utilisée sur le serveur lorsque la valeur de (l - a)EU_R (n - 1) + U_R(n) ne reflète de façon insuffisante l'occupation réelle de la mémoire sur le serveur, on s'assure que le dispositif de gestion n'alloue pas indûment à de nouvelles tâches de la mémoire sur le serveur qui pourrait manquer ensuite aux tâches informatiques s'exécutant déjà sur le serveur et s'avérer préjudiciable pour le traitement de celles-ci. EU_R (n) = max ((l - a) EU_R (n - 1) + aU _R (n), U _R (n)) where n denotes an integer greater than 1, EU_R (n - 1) is the value of estimating the previously used amount of the computer resource on the server updated at a previous time, and U_R (n) denotes the metric obtained from the actual current usage of the computing resource on the server. This variant has a preferred application when the computing resource in question is memory. Indeed, the constraints in terms of memory resources are relatively strong constraints in the sense that a task can be evicted from a machine on which it is executed if it requires at a given moment more memory than the machine has at that time. moment. Forcing the updating of the value EU_R (n) to a value greater than or equal to the memory resource U_R (n) actually used on the server when the value of (l - a) EU_R (n - 1) + U_R ( n) does not sufficiently reflect the actual memory usage on the server, it is ensured that the management device does not unduly allocate to new memory tasks on the server which might then fail to the computer tasks already running on the server and prove to be detrimental to the processing of these.
Dans un autre mode de réalisation de l'invention, si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, cette mesure correspond à une utilisation de la ressource informatique sur le serveur par une ou plusieurs tâches informatiques s'exécutant sur le serveur et toutes gérées par le dispositif de gestion du cluster.  In another embodiment of the invention, if the detected event is to obtain the measurement of the actual current use of the computer resource on the server, this measurement corresponds to a use of the computer resource on the server. by one or more computer tasks running on the server and all managed by the cluster management device.
Sur un serveur peuvent en effet s'exécuter en plus des tâches informatiques lancées sur ce serveur par le dispositif de gestion du cluster, d'autres processus tels que typiquement des processus internes au serveur lancés par exemple par son système d'exploitation. Dans ce mode de réalisation, on s'assure que seules les tâches gérées et positionnées à proprement parler par le dispositif de gestion du cluster sont prises en compte par celui-ci lors de l'allocation des ressources aux tâches qui lui sont présentées. Autrement dit, ce mode de réalisation permet une intervention en force du dispositif de gestion par rapport aux droits (i.e. quantités de ressource) qui lui sont réservés sur le serveur.  On a server can in fact run in addition to the computer tasks launched on this server by the cluster management device, other processes such as typically internal server processes launched for example by its operating system. In this embodiment, it is ensured that only the tasks managed and positioned strictly speaking by the cluster management device are taken into account by the latter when allocating resources to the tasks presented to it. In other words, this embodiment allows a strong intervention of the management device with respect to the rights (i.e. resource quantities) reserved for it on the server.
Une façon de mettre en œuvre ce mode de réalisation est par exemple la suivante : One way to implement this embodiment is for example the following:
— la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur comprend une pluralité de valeurs notées U_R(n,fi, j=l,...J, associées respectivement à une pluralité de tâches informatiques Tj, j=l,...J, positionnées par le dispositif de gestion du cluster sur le serveur, J et n désignant des entiers supérieurs ou égaux à 1, chaque valeur U_R(n,fi correspondant à une mesure de l'utilisation réelle de la ressource informatique sur le serveur par la tâche Tj ; The measurement of the current real use of the computing resource on the server comprises a plurality of values denoted U_R (n, f 1, j = 1, ... J, associated respectively with a plurality of computer tasks Tj, j = l , ... J, set by the cluster management device on the server, where J and n denote integers greater than or equal to 1, each value U_R (n, fi corresponding to a measure of the actual use of the computing resource on the server by the task Tj;
— ladite mise à jour (F30) comprend :  Said update (F30) comprises:
o une première étape d'évaluation pour chaque tâche Tj, d'une valeur courante EU_R(n,j) d'une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur par la tâche informatique Tj selon l'équation :  o a first evaluation step for each task Tj, of a current value EU_R (n, j) of an estimate of a quantity already used of the computer resource on the server by the computer task Tj according to the equation:
EU_R(n,j) = max((l - a)EU_R ( - 1, ;) + U_R(n,j), U_R(n,j)) ou selon l'équation : EU_R(n,j) = (1 - a)EU_R (n - 1, ;) + U_R(n,j) EU_R (n, j) = max ((l - a) EU_R (- 1,;) + U_R (n, j), U_R (n, j)) or according to the equation: EU_R (n, j) = (1 - a) EU_R (n - 1,;) + U_R (n, j)
où : or :
EU_R (n - lj) désigne une valeur évaluée à un instant précédent de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur par cette tâche informatique Tj ; et  EU_R (n - lj) denotes a value evaluated at a previous instant of the estimate of the quantity already used of the computing resource on the server by this computing task Tj; and
■ est un facteur réel compris entre 0 et 1 ;  ■ is a real factor between 0 and 1;
o une deuxième étape d'évaluation de la valeur courante notée EU_R(n) de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur selon l'équation :  a second step of evaluating the current value denoted EU_R (n) of the estimate of the quantity already used of the computing resource on the server according to the equation:
ou selon l'équ
Figure imgf000010_0001
où J désigne le nombre de tâches informatiques positionnées sur le serveur par le dispositif de gestion du cluster au moment de la deuxième étape d'évaluation.
or according to the equ
Figure imgf000010_0001
where J denotes the number of computer tasks set on the server by the cluster management device at the time of the second evaluation step.
Dans cette variante, on a donc accès à des informations plus précises sur l'utilisation réelle du serveur, puisque ce sont des mesures de l'utilisation réelle du serveur pour chaque tâche informatique positionnée sur le serveur (c'est-à-dire s'exécutant effectivement sur celui-ci ou pour laquelle une quantité de la ressource a été réservée par le dispositif de gestion sur le serveur) qui sont disponibles et utilisées lors de la mise à jour de la valeur EU_R(n). De cette sorte, lorsqu'une tâche disparaît et libère de la ressource sur le serveur, cela est pris en compte instantanément dans sa contribution à la quantité EU_R(n) (la somme réalisée pour évaluer EU_R(n) ne tient en effet compte que des tâches positionnées sur le serveur à cet instant, c'est-à-dire au moment de l'évaluation de EU_R(n)).  In this variant, we therefore have access to more precise information on the actual use of the server, since these are measures of the actual use of the server for each computer task positioned on the server (that is to say executing on it or for which a quantity of the resource has been reserved by the management device on the server) that are available and used when updating the value EU_R (n). In this way, when a task disappears and frees the resource on the server, this is taken into account instantaneously in its contribution to the quantity EU_R (n) (the sum realized to evaluate EU_R (n) only takes into account that tasks set on the server at this time, ie at the time of evaluation of EU_R (n)).
On note toutefois que cette variante requiert des calculs supplémentaires pour mettre à jour la quantité EU_R(n), liés à la gestion individuelle des tâches Tj, j=l,...,J. Ces calculs peuvent être mis en œuvre préférentiel lement localement au niveau de chaque serveur puis être remontés au dispositif de gestion du cluster par les nœuds.  Note, however, that this variant requires additional calculations to update the quantity EU_R (n), related to the individual management tasks Tj, j = l, ..., J. These calculations can be implemented preferentially locally at the level of each server and then be sent back to the cluster management device by the nodes.
Dans un autre mode de réalisation de l'invention dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation :  In another embodiment of the invention in which the updated variable V is the estimate EU_R of the amount already used of the computing resource on the server, and if the detected event is obtaining the measurement of the actual current use of the computing resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation:
EU_R(n) = U_R(n) + DR_R(ri) où U_R(n) désigne une mesure courante de l'utilisation réelle de la ressource informatique sur le serveur, et DR_R(n) désigne une valeur courante d'une quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur. EU_R (n) = U_R (n) + DR_R (ri) where U_R (n) denotes a current measure of the actual use of the computing resource on the server, and DR_R (n) denotes a current value of a quantity of the computing resource reserved for at least one computing task by the computing device. management on the server.
En outre, dans ce mode de réalisation, le procédé peut comprendre en outre :  In addition, in this embodiment, the method may further comprise:
— une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur est obtenue selon l'équation : A step of updating the current value DR_R (n) of the quantity of the computer resource reserved for at least one computer task by the management device on the server is obtained according to the equation:
DR_R(n) = (1 - )DR_R(n - 1)  DR_R (n) = (1 -) DR_R (n - 1)
où β désigne un facteur réel compris entre 0 et 1 et DR_R(n - 1) désigne une quantité de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent ;  where β denotes a real factor of between 0 and 1 and DR_R (n - 1) denotes an amount of the computer resource reserved by the management device on the server obtained at a previous instant;
— une étape de détection de la mise à jour de la valeur courante DR_R(n) ; et  A step of detecting the updating of the current value DR_R (n); and
— une étape de mise à jour de la valeur courante de la variable EU_R selon l'équation :  A step of updating the current value of the variable EU_R according to the equation:
EU_R(n) = U_R(n) + DR_R(n).  EU_R (n) = U_R (n) + DR_R (n).
Dans ce mode de réalisation, la pondération (par un facteur (l - β) ici) est appliquée non plus sur la mesure de l'utilisation réelle des ressources sur le serveur mais sur les ressources qui sont réservées par le dispositif de gestion du cluster sur ce serveur. Autrement dit, on effectue un lissage des quantités de ressource réservées et non plus de l'utilisation réelle de la ressource. Ce mode de réalisation assure que le dispositif de gestion du cluster prend en compte, lors de l'allocation de ressource à une nouvelle tâche, une quantité de cette ressource utilisée sur le serveur toujours au moins égale à son utilisation réelle (autrement dit, on s'affranchit dans ce mode de réalisation de recourir à une fonction « max » comme dans les exemples précédemment décrits).  In this embodiment, the weighting (by a factor (l - β) here) is no longer applied to the measurement of the actual use of resources on the server but on the resources that are reserved by the cluster management device. on this server. In other words, the amounts of reserved resources are smoothed rather than the actual use of the resource. This embodiment ensures that the cluster management device takes into account, when allocating resource to a new task, a quantity of this resource used on the server always at least equal to its actual use (ie in this embodiment, it is not possible to resort to a "max" function as in the examples previously described).
Dans un autre mode de réalisation, le procédé de mise à jour comprend en outre : In another embodiment, the updating method further comprises:
— si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité R_R_Tnew de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Tnew et If the detected event is a reservation by the management device for a computer task of a quantity R_R_Tnew of the computer resource on the server, a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for at least one computer task by the management device on the server using said quantity R_R_Tnew and
une quantité DR_R(n - 1) de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent,  a quantity DR_R (n - 1) of the computer resource reserved by the management device on the server obtained at a previous instant,
— si l'événement détecté est une libération par une tâche informatique d'une quantité R_R_Told de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Told et la quantité DR_R(n - 1) ;  If the detected event is a release by a computer task of a quantity R_R_Told of the computing resource on the server, a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for the at least one computer task by the management device on the server using said quantity R_R_Told and the quantity DR_R (n - 1);
et dans lequel ladite mise à jour de la valeur courante de la variable EU_R utilise ladite quantité de la ressource informatique réservée selon l'équation : EU_R(n) = U_R(n) + DR_R(ri) . and wherein said update of the current value of the variable EU_R uses said amount of the reserved computer resource according to the equation: EU_R (n) = U_R (n) + DR_R (ri).
Le choix de l'un ou l'autre des modes de réalisation précédemment décrits peut dépendre de différents paramètres, comme notamment du contexte dans lequel est mise en œuvre l'invention ou encore d'un compromis entre complexité d'implémentation et performance de l'allocation de ressources réalisée par le dispositif de gestion.  The choice of one or other of the embodiments described above may depend on various parameters, such as in particular the context in which the invention is implemented or a compromise between implementation complexity and performance of the invention. resource allocation made by the management device.
Dans un mode particulier de réalisation, le procédé de mise à jour est mis en œuvre par le dispositif de gestion du cluster.  In a particular embodiment, the update method is implemented by the cluster management device.
Corrélativement, dans ce mode de réalisation, l'invention vise également un dispositif de gestion d'un cluster de serveurs comprenant :  Correlatively, in this embodiment, the invention also provides a device for managing a server cluster comprising:
— un module de réception ; A reception module;
— un module de détermination, activé sur réception par le module de réception d'une requête d'exécution d'une tâche informatique, ladite tâche informatique étant associée à une quantité prédéterminée d'une ressource informatique requise initialement pour son exécution, le module de détermination étant configuré pour déterminer au moins un serveur du cluster apte à exécuter la tâche informatique en utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;  A determination module, activated on reception by the reception module of a request for execution of a computer task, said computer task being associated with a predetermined quantity of a computer resource initially required for its execution, the module of wherein the determination is configured to determine at least one server in the cluster capable of performing the computing task using the predetermined amount of the computing resource initially required for the execution of the computing task, a maximum server capacity for the computing resource and an estimate of an already used amount of the computing resource on the server;
— un module de sélection configuré pour sélectionner un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé par le module de détermination ;  A selection module configured to select a server to execute the computer task among said at least one server of the cluster determined by the determination module;
Le dispositif de gestion selon l'invention est remarquable en ce qu'il comprend en outre :  The management device according to the invention is remarkable in that it furthermore comprises:
— un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et A detection module configured to detect a predefined set of events; and
— un module de mise à jour activé pour au moins un serveur du cluster, et configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection d'un événement parmi l'ensemble prédéfini d'événements par le module de détection, et configuré pour : An update module activated for at least one server of the cluster, and configured to update at least one current value of a variable rated V chosen from the estimate of the quantity already used of the computing resource on the server and the maximum capacity of the server for the computing resource, said update module being activated on each detection of an event among the predefined set of events by the detection module, and configured to:
o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;  o if the detected event is to obtain a measurement (U_R (n)) of a current real use of the computer resource on the server, update the current value of the variable V using said measure of the actual actual use of the computing resource on the server;
o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique libérée. o if the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource; and o if the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V using said amount of the released computing resource.
Dans un autre mode de réalisation, le procédé de mise à jour est mise en œuvre par le serveur. Le procédé de gestion comprend alors en outre une étape de transmission de ladite au moins une valeur mise à jour par le serveur au dispositif de gestion du cluster.  In another embodiment, the updating method is implemented by the server. The management method then further comprises a step of transmitting said at least one value updated by the server to the cluster management device.
Corrélativement, dans ce mode de réalisation, l'invention vise aussi un serveur appartenant à un cluster de serveurs géré par un dispositif de gestion, ledit serveur étant apte à exécuter au moins une tâche informatique gérée par ledit dispositif de gestion, ladite au moins une tâche informatique utilisant lors de son exécution au moins une ressource informatique du serveur, ce serveur comprenant des modules activés pour au moins un intervalle de temps et comprenant : Correlatively, in this embodiment, the invention also relates to a server belonging to a server cluster managed by a management device, said server being able to execute at least one computer task managed by said management device, said at least one computer task using during its execution at least one computer resource of the server, this server comprising modules activated for at least one time interval and comprising:
— un module de mesure configuré pour mesurer une utilisation réelle de la ressource informatique sur le serveur ; A measurement module configured to measure a real use of the computer resource on the server;
— un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et — un module de mise à jour configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur et une capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection par le module de détection d'un événement parmi l'ensemble prédéfini d'événements et configuré pour :  A detection module configured to detect a predefined set of events; and an update module configured to update at least one current value of a variable rated V selected from an estimate of an already used amount of the computing resource on the server and a maximum capacity of the server for the resource computer, said update module being activated on each detection by the detection module of an event among the predefined set of events and configured to:
o si l'événement détecté est une obtention d'une mesure d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;  o if the detected event is to obtain a measure of a current actual use of the computing resource on the server, update the current value of the variable V using said measure of the current actual usage of the resource computer on the server;
o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et  o if the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource; and
o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique libérée ; et  o if the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the released computing resource; and
— un module de transmission, configuré pour transmettre au dispositif de gestion ladite valeur courante de la variable V mise à jour.  A transmission module, configured to transmit to the management device said current value of the updated variable V.
Comme mentionné précédemment, ce mode de réalisation peut permettre de faciliter l'implémentation progressive de l'invention en limitant les développements nécessaires à sa mise en œuvre réalisés sur le dispositif de gestion du cluster.  As mentioned above, this embodiment can facilitate the progressive implementation of the invention by limiting the developments necessary for its implementation on the cluster management device.
Dans un mode particulier de réalisation, les différentes étapes du procédé de mise à jour et/ou les différentes étapes du procédé de gestion sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un dispositif de gestion, dans un serveur ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de mise à jour tel que décrit ci- dessus. In a particular embodiment, the various steps of the update method and / or the different steps of the management method are determined by computer program instructions. Accordingly, the invention also relates to a computer program on an information carrier, this program being capable of being implemented in a management device, in a server or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of an updating method as described above.
L'invention vise également un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un dispositif de gestion ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de gestion tel que décrit ci-dessus.  The invention also relates to a computer program on an information medium, this program being capable of being implemented in a management device or more generally in a computer, this program comprising instructions adapted to the implementation steps of a management method as described above.
Chacun de ces programmes peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de 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.  Each of these programs 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 form what other form is desirable.
L'invention vise aussi un support d'informations ou d'enregistrement lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci- dessus.  The invention also relates to a computer readable information or recording medium, and comprising instructions of a computer program as mentioned above.
Le support d'informations ou d'enregistrement 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 (floppy dise) ou un disque dur.  The information or recording medium may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.
D'autre part, le support d'informations ou d'enregistrement 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 de type Internet.  On the other hand, the information or recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network.
Alternativement, le support d'informations ou d'enregistrement 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.  Alternatively, the information or recording 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.
L'invention vise également un système informatique comprenant :  The invention also relates to a computer system comprising:
— un cluster de serveurs comprenant une pluralité de serveurs, chaque serveur comprenant au moins une ressource informatique permettant l'exécution de tâches informatiques ; A server cluster comprising a plurality of servers, each server comprising at least one computer resource enabling the execution of computer tasks;
— un dispositif de gestion du cluster de serveurs ; A server cluster management device;
dans lequel le dispositif de gestion du cluster est conforme à l'invention et/ou au moins un serveur du cluster est conforme à l'invention. wherein the cluster management device is in accordance with the invention and / or at least one server of the cluster is in accordance with the invention.
On peut également envisager, dans d'autres modes de réalisation, que le procédé de mise à jour, le procédé de gestion, le dispositif de gestion, le serveur et le système informatique selon l'invention présentent en combinaison tout ou partie des caractéristiques précitées. Brève description des dessins It may also be envisaged, in other embodiments, that the updating method, the management method, the management device, the server and the computer system according to the invention present in combination all or some of the aforementioned characteristics. . Brief description of the drawings
D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :  Other features and advantages of the present invention will emerge from the description given below, with reference to the accompanying drawings which illustrate an embodiment having no limiting character. In the figures:
— la figure 1 représente, de façon schématique, un système informatique conforme à l'invention, dans un mode particulier de réalisation, le système informatique comprenant un cluster de serveurs et un dispositif de gestion du cluster ; - Figure 1 shows, schematically, a computer system according to the invention, in a particular embodiment, the computer system comprising a server cluster and a cluster management device;
— la figure 2 représente l'architecture matérielle du dispositif de gestion du cluster de la figure 1 ; FIG. 2 represents the hardware architecture of the cluster management device of FIG. 1;
— la figure 3A représente, sous forme d'ordinogramme, les différentes étapes d'un procédé de gestion tel qu'il est mis en œuvre dans un mode particulier de réalisation par le dispositif de gestion de la figure 1 ; FIG. 3A represents, in the form of a flow chart, the various steps of a management method as implemented in a particular embodiment by the management device of FIG. 1;
— la figure 3B représente, sous forme d'ordinogramme les différentes étapes d'un procédé de mise à jour tel qu'il est mis en œuvre dans un mode particulier de réalisation par le dispositif de gestion de la figure 1 ; et  FIG. 3B represents, in the form of a flow chart, the various steps of an updating method as implemented in a particular embodiment by the management device of FIG. 1; and
— la figure 3C représente, sous forme d'ordinogramme les différentes étapes d'un procédé de mise à jour dans une variante de réalisation. FIG. 3C represents, in the form of a flow chart, the various steps of an updating method in an alternative embodiment.
Description détaillée de l'invention Detailed description of the invention
La figure 1 représente, dans son environnement, un système informatique 1, conforme à l'invention, dans un premier mode de réalisation.  FIG. 1 represents, in its environment, a computer system 1, according to the invention, in a first embodiment.
Conformément à l'invention, le système informatique 1 comprend  According to the invention, the computer system 1 comprises
— un cluster 2 de serveurs comprenant une pluralité de serveurs SI, S2,..., SK, K désignant un entier supérieur à 1, reliés en réseau. Chaque serveur Sk, k=l,...,K comprend diverses ressources informatiques (matérielles et/ou logicielles) permettant l'exécution de tâches informatiques. Ces ressources sont par exemple de la mémoire, de l'espace disque, du CPU, des accès réseaux, etc. Aucune limitation n'est attachée à la nature des ressources informatiques proposées par les serveurs S1,...,SK du cluster 2. Toutefois, pour mieux illustrer l'invention, on s'attache ici à une ressource informatique particulière R qui consiste en de la mémoire ; et  A cluster 2 of servers comprising a plurality of servers S1, S2,..., SK, K designating an integer greater than 1, connected in a network. Each server Sk, k = 1,..., K comprises various computer resources (hardware and / or software) enabling the execution of computer tasks. These resources are, for example, memory, disk space, CPU, network access, etc. No limitation is attached to the nature of the computer resources proposed by the servers S1,..., SK of the cluster 2. However, to better illustrate the invention, here is focused on a particular computer resource R which consists of memory; and
— un dispositif 3 de gestion du cluster 2 de serveurs, conforme à l'invention. A server cluster management device 2 according to the invention.
Le dispositif 3 de gestion du cluster 2 est configuré pour, sur réception d'une requête REQ en provenance d'un dispositif client 4 (ex. ordinateur) d'un utilisateur du cluster 2 demandant l'exécution d'au moins une tâche informatique T, allouer des ressources du cluster 2 à ce client pour l'exécution de cette tâche. Plus spécifiquement, sur réception de la requête REQ, le dispositif 3 de gestion du cluster 2 identifie un serveur Sk du cluster 2 apte à exécuter la tâche informatique T, c'est-à-dire un serveur Sk disposant des ressources nécessaires à son exécution (mémoire, CPU, etc.), puis lance la tâche informatique T sur ce serveur Sk pour qu'elle y soit exécutée. Aucune limitation n'est attachée à la nature de la tâche informatique T à exécuter sur le cluster 2. Il peut s'agir de tout type de tâche associée à une application logicielle APP installée sur le dispositif client 4 ou à n'importe quel programme informatique de manière générale. De façon connue un tel programme informatique comprend une pluralité de tâches informatiques à exécuter, et qui peuvent être soumises en rafales au dispositif 3 de gestion du cluster 2 pour être exécutées en parallèle sur différents serveurs du cluster 2. On s'intéresse ici plus particulièrement au traitement réalisé par le dispositif 3 de gestion sur l'une de ces tâches, à savoir sur la tâche T. Un traitement similaire est appliqué sur l'ensemble des tâches contenues dans la requête REQ. The management device 3 of the cluster 2 is configured to receive a REQ request from a client device 4 (eg a computer) of a user of the cluster 2 requesting the execution of at least one computer task T, allocate cluster 2 resources to this client for the execution of this task. More specifically, upon receiving the REQ request, the management device 3 of the cluster 2 identifies a server Sk of the cluster 2 capable of executing the computer task T, that is to say a server Sk having the necessary resources for its execution (memory, CPU, etc.), then starts the computer task T on this server Sk for it to be executed. No limitation is attached to the nature of the computer task T to be performed on the cluster 2. It may be any type of task associated with an APP software application installed on the client device 4 or any program in general. In a known manner, such a computer program comprises a plurality of computer tasks to be executed, and which can be submitted in bursts to the management device 3 of the cluster 2 to be executed in parallel on different servers of the cluster 2. We are interested here more particularly the processing performed by the management device 3 on one of these tasks, namely on the task T. A similar treatment is applied to all the tasks contained in the REQ request.
Chacune des tâches envoyées par l'application logicielle APP au dispositif 3 de gestion du cluster 2 a des besoins en ressources informatiques pour permettre son exécution sur le cluster 2. Ces besoins sont spécifiés ici par l'utilisateur du dispositif client 4 pour chacune des tâches et pour chacune des ressources. Pour la ressource informatique R et la tâche T, l'utilisateur du dispositif client 4 spécifie une quantité R_R_T de mémoire requise « initialement » pour l'exécution de la tâche T. La quantité R_R_T peut être déterminée de manière grossière par l'utilisateur du dispositif client 4, sur la base de ses connaissances des opérations mises en œuvre par la tâche informatique T et la consommation en terme de mémoire requise par ces opérations. On note que bien que l'utilisateur du dispositif client 4 tente dans la mesure du possible de fournir une quantité R_R_T proche de l'utilisation réelle de la ressource R par la tâche informatique T, cette quantité R_R_T est difficile en pratique à estimer précisément pour l'utilisateur : elle est généralement surestimée par l'utilisateur de sorte à s'assurer que la tâche informatique T se voit allouer une quantité suffisante de mémoire par le dispositif 3 de gestion du cluster 2 pour pouvoir être exécutée dans de bonnes conditions. La quantité R_R_T ainsi prédéterminée est transmise ici dans la requête REQ d'exécution de la tâche informatique T adressée au dispositif 3 de gestion du cluster 2.  Each of the tasks sent by the APP software application to the cluster management device 2 has IT resource requirements to enable its execution on the cluster 2. These requirements are specified here by the user of the client device 4 for each of the tasks. and for each resource. For the computing resource R and the task T, the user of the client device 4 specifies a quantity R_R_T of memory required "initially" for the execution of the task T. The quantity R_R_T can be determined roughly by the user of the client device 4, on the basis of its knowledge of the operations implemented by the computer task T and the consumption in terms of memory required by these operations. Note that although the user of the client device 4 tries as far as possible to provide a quantity R_R_T close to the actual use of the resource R by the computer task T, this quantity R_R_T is difficult in practice to estimate precisely for the user: it is generally overestimated by the user to ensure that the computer task T is allocated a sufficient amount of memory by the management device 3 cluster 2 to be executed in good conditions. The quantity R_R_T thus predetermined is transmitted here in the REQ request for execution of the computer task T addressed to the management device 3 of the cluster 2.
Dans le mode de réalisation décrit ici, le dispositif 3 de gestion du cluster 2 a l'architecture matérielle d'un ordinateur, telle qu'illustrée à la figure 2. Il comprend notamment un processeur 5, une mémoire vive 6, une mémoire morte 7, une mémoire flash non volatile 8 ainsi que des moyens de communication 9 lui permettant de communiquer notamment d'une part avec le dispositif client 4 et d'autre part avec les serveurs Sk, k=l,...,K du cluster 2. Ces moyens de communication 9 comprennent par exemple une carte réseau, bien connue en soi.  In the embodiment described here, the management device 3 of the cluster 2 has the hardware architecture of a computer, as illustrated in FIG. 2. It notably comprises a processor 5, a random access memory 6, a read-only memory 7, a nonvolatile flash memory 8 as well as communication means 9 enabling it to communicate in particular on the one hand with the client device 4 and on the other hand with the servers Sk, k = 1,..., K of the cluster 2. These communication means 9 comprise for example a network card, well known per se.
La mémoire morte 7 du dispositif 3 de gestion du cluster 2 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 8 et sur lequel est enregistré ici un programme d'ordinateur PROG conforme à l'invention.  The ROM 7 of the management device 3 of the cluster 2 constitutes a recording medium according to the invention, readable by the processor 8 and on which is recorded here a computer program PROG according to the invention.
Le programme d'ordinateur PROG définit des modules fonctionnels (et logiciels ici), configurés pour mettre en œuvre les étapes du procédé de mise à jour et les étapes du procédé de gestion de tâches informatiques selon l'invention. Ces modules fonctionnels s'appuient sur et/ou commandent les éléments matériels 5-9 du dispositif 3 de gestion cités précédemment. Ils comprennent notamment ici, comme illustré sur la figure 1 : — un module 3A de réception de requêtes en provenance de dispositifs clients comme le dispositif client 4, ce module 3A s'appuyant sur les moyens de communication 9 ; The computer program PROG defines functional modules (and software here), configured to implement the steps of the updating process and the steps of the computer task management method according to the invention. These functional modules rely on and / or control the hardware elements 5-9 of the management device 3 mentioned above. They include in particular here, as illustrated in FIG. A module 3A for receiving requests from client devices such as the client device 4, this module 3A based on the communication means 9;
— un module 3B de détermination, activé sur réception par le module 3A de réception d'une requête d'exécution d'une tâche informatique, le module de détermination étant configuré pour déterminer au moins un serveur du cluster 2 apte à exécuter la tâche informatique ;  A determination module 3B, activated on reception by the module 3A for receiving a request for execution of a computer task, the determination module being configured to determine at least one server of the cluster 2 capable of executing the computer task ;
— un module 3C de sélection configuré pour sélectionner un serveur pour exécuter la tâche informatique parmi les serveurs du cluster déterminés par le module 3B de détermination ; A selection module 3C configured to select a server to execute the computer task among the cluster servers determined by the determination module 3B;
— un module 3D de détection, configuré pour détecter un ensemble prédéfini d'événements relatifs à la ressource R et détaillés ultérieurement ; et A 3D detection module, configured to detect a predefined set of events relating to the resource R and further detailed; and
— un module 3E de mise à jour, configuré pour mettre à jour à chaque détection d'événement par le module 3D de détection, une ou plusieurs valeurs utilisées par le module 3B de détermination pour déterminer les serveurs susceptibles d'exécuter la tâche informatique en utilisant les mesures d'utilisation réelle de la ressource informatique R obtenues par le module 3D d'obtention. A module 3E update, configured to update each detection event by the detection module 3D, one or more values used by the determination module 3B to determine the servers that can perform the computer task in using the actual usage measurements of the computing resource R obtained by the obtaining 3D module.
Les fonctions de ces différents modules sont décrites plus en détail maintenant, en référence à la figure 3 (constituée des figures 3A et 3B) et aux étapes du procédé de mise à jour et du procédé de gestion de tâches informatiques selon l'invention, telles qu'elles sont mises en œuvre, dans le premier mode particulier de réalisation, par le dispositif 3 de gestion du cluster 2.  The functions of these various modules are described in more detail now, with reference to FIG. 3 (consisting of FIGS. 3A and 3B) and to the steps of the updating method and the method of managing computer tasks according to the invention, such as that they are implemented, in the first particular embodiment, by the device 3 for managing the cluster 2.
Comme illustré sur la figure 3, le procédé de gestion de tâches informatiques selon l'invention s'appuie, dans le premier mode de réalisation décrit ici, sur deux processus qui se déroulent en parallèle :  As illustrated in FIG. 3, the method of managing computer tasks according to the invention is based, in the first embodiment described here, on two processes that take place in parallel:
— un processus PI de traitement asynchrone, illustré sur la figure 3A, qui est déclenché par le dispositif 3 de gestion du cluster 2 sur réception par son module 3A de réception de chaque requête d'exécution de tâche(s) informatique(s) sur le cluster 2. Ce processus PI vise à attribuer à chaque tâche informatique des ressources informatiques sur un serveur du cluster 2 afin de permettre son exécution ; et  An asynchronous processing process PI, illustrated in FIG. 3A, which is triggered by the cluster management device 2 on receipt by its receiving module 3A of each request for execution of the computer task (s) on cluster 2. This IP process aims to assign each IT task computing resources on a server of cluster 2 to allow its execution; and
— un processus P2 de mise à jour, illustré sur la figure 3B, qui est mis en œuvre ici en continu par le dispositif 3 de gestion du cluster 2. Plus particulièrement ici, les mises à jour visent des valeurs utilisées par le dispositif 3 de gestion du cluster 2 pour sélectionner un serveur apte à exécuter une tâche informatique qui lui est confiée. Ces mises à jour sont effectuées dans le premier mode de réalisation sur détection de différents événements appartenant à un ensemble prédéterminé d'événements. Cet ensemble comprend ici trois événements, à savoir, la remontée (périodique) par les serveurs du cluster 2 de mesures d'utilisation de leurs ressources, le positionnement de tâches et la réservation de ressources en découlant sur des serveurs, et la libération de ressources sur les serveurs. Les valeurs mises à jour lors du processus P2 sont prises en compte préférentiellement dès leurs disponibilités par le processus PI pour le traitement des requêtes reçues après chaque mise à jour.  A P2 update process, illustrated in FIG. 3B, which is implemented here continuously by the cluster management device 3. More particularly here, the updates are aimed at values used by the device 3 of FIG. managing cluster 2 to select a server capable of executing a computer task entrusted to it. These updates are performed in the first embodiment on detection of different events belonging to a predetermined set of events. This set includes here three events, namely, the (periodic) escalation by the servers of the cluster 2 of measures of use of their resources, the positioning of tasks and the reservation of resulting resources on servers, and the release of resources on the servers. The values updated during the P2 process are preferably taken into account as soon as they are available by the PI process for processing requests received after each update.
Nous allons maintenant décrire plus en détail chacun de ces processus. En référence à la figure 3A, on suppose que le dispositif 3 de gestion du cluster 2 reçoit, par l'intermédiaire de ses moyens de communication 9 et de son module de réception 3A, une requête REQ d'exécution d'une tâche informatique T du dispositif client 4 (étape E10). Cette requête REQ comprend, comme mentionné précédemment, une quantité R_R_T de ressource R requise initialement pour que la tâche informatique T puisse s'exécuter convenablement, cette quantité R_R_T ayant été prédéterminée par l'utilisateur du dispositif client 4. We will now describe each of these processes in more detail. With reference to FIG. 3A, it is assumed that the management device 3 of the cluster 2 receives, via its communication means 9 and its reception module 3A, a REQ request for execution of a computer task T of the client device 4 (step E10). This request REQ comprises, as previously mentioned, a quantity R_R_T of resource R initially required so that the computer task T can execute properly, this quantity R_R_T having been predetermined by the user of the client device 4.
Sur réception de la requête REQ(T,R_R_T), le dispositif 3 de gestion du cluster 2, par l'intermédiaire de son module 3B de détermination, détermine ici parmi les serveurs S1,...,SK du cluster 2 quels sont ceux qui sont aptes à exécuter la tâche T, compte tenu des besoins R_R_T en ressource R spécifiés par l'utilisateur. Autrement dit, le module 3B de détermination détermine quel(s) serveur(s) dispose d'une quantité de ressource R suffisante pour exécuter la tâche informatique T. On note que cette détermination n'a pas besoin d'être exhaustive, et une liste de serveurs réduite à un unique serveur peut être suffisante.  On receiving the request REQ (T, R_R_T), the management device 3 of the cluster 2, through its determination module 3B, determines here among the servers S1,..., SK of the cluster 2 which ones which are able to execute the task T, taking into account the needs R_R_T in resource R specified by the user. In other words, the determination module 3B determines which server (s) has a sufficient amount of resource R to execute the computer task T. It is noted that this determination does not need to be exhaustive, and a server list reduced to a single server may be sufficient.
A cet effet, pour chaque serveur Sk du cluster 2, k=l,...,K (étape d'initialisation E20, étape test E50 puis étape d'incrémentation E60), le module 3B de détermination détermine si le serveur Sk vérifie l'inégalité (eql) suivante (étape test E30) :  For this purpose, for each server Sk of cluster 2, k = 1,..., K (initialization step E20, test step E50 then incrementation step E60), the determination module 3B determines whether the server Sk checks the following inequality (eql) (test step E30):
R_R_T + EU_R(Sk) < CL_R(Sk) (eql)  R_R_T + EU_R (Sk) <CL_R (Sk) (eql)
dans laquelle : in which :
— CL_R(Sk) désigne la capacité maximale du serveur Sk pour la ressource informatique R (i.e. quantité maximale de ressource R disponible sur le serveur Sk). Cette capacité maximale est remontée ici périodiquement au dispositif 3 de gestion par chaque serveur Sk ; et  - CL_R (Sk) denotes the maximum capacity of the server Sk for the computing resource R (i.e. maximum quantity of resource R available on the server Sk). This maximum capacity is raised here periodically to the management device 3 by each server Sk; and
— EU_R(Sk) désigne une estimation d'une quantité déjà utilisée de la ressource informatique R sur le serveur Sk.  - EU_R (Sk) denotes an estimate of an already used quantity of the computing resource R on the server Sk.
Si le serveur Sk vérifie l'inégalité (eql) (réponse oui à l'étape test E30), il est identifié par le module 3B de détermination comme un serveur susceptible d'exécuter la tâche T (étape E40).  If the server Sk checks the inequality (eql) (yes answer to the test step E30), it is identified by the determination module 3B as a server capable of performing the task T (step E40).
Sinon (réponse non à l'étape test E30 et étape test E50), le module 3B de détermination teste un nouveau serveur parmi les serveurs non encore testés du cluster 2 (réponse non à étape test E50 et étape d'incrémentation E60).  If not (answer no to the test step E30 and test step E50), the determination module 3B tests a new server among the servers that have not yet been tested in cluster 2 (answer no to test step E50 and step of incrementation E60).
Dans le premier mode de réalisation décrit ici, une fois que tous les serveurs Sk, k=l,..,K du cluster 2 ont été testés (réponse oui à l'étape test E50), le module 3C de sélection sélectionne un serveur SkO parmi les serveurs identifiés comme étant aptes à exécuter la tâche informatique T compte-tenu de ses besoins R_R_T en ressource R initialement fournis par l'utilisateur (étape E70). Aucune limitation n'est attachée aux critères utilisés par le dispositif 3 de gestion du cluster 2 pour sélectionner le serveur SkO. Ce choix peut être fait par exemple par rapport aux autres ressources requises pour l'exécution de la tâche et disponibles sur le serveur SkO, par rapport à des contraintes géographiques, etc. Suite à cette sélection, le dispositif 3 de gestion du cluster 2 ordonne (ou déclenche) le lancement de la tâche T sur le serveur SkO sélectionné (étape E80). En d'autres mots, il positionne la tâche T sur le serveur SkO et réserve sur ce serveur la quantité R_R_T de ressource R en vue de son exécution. In the first embodiment described here, once all the servers Sk, k = 1,..., K of the cluster 2 have been tested (yes answer to the test step E50), the selection module 3C selects a server SkO among the servers identified as being able to execute the computer task T taking into account its needs R_R_T R resource initially provided by the user (step E70). No limitation is attached to the criteria used by the cluster management device 2 to select the SkO server. This choice can be made for example compared to the other resources required for the execution of the task and available on the server SkO, with respect to geographical constraints, etc. Following this selection, the management device 3 of the cluster 2 orders (or triggers) the launch of the task T on the selected server SkO (step E80). In other words, it positions the task T on the server SkO and reserves on this server the quantity R_R_T of resource R for execution.
Le dispositif 3 de gestion du cluster 2 procède ainsi pour chaque tâche informatique qui lui est soumise.  Cluster 2 management device 3 thus proceeds for each computer task submitted to it.
On note que le processus asynchrone PI qui vient d'être décrit en référence à la figure 3A et qui est mis en œuvre par le dispositif 3 de gestion du cluster 2 se rapproche des traitements mis en œuvre par les systèmes de gestion de cluster de l'état de la technique, et notamment par les systèmes Borg et Hadoop Yarn cités précédemment. Dans les traitements mis en œuvre par ces systèmes de l'état de la technique, l'estimation EU_R(Sk) de la quantité de ressource R déjà utilisée sur le serveur Sk est prise égale, dans l'équation (eq l), à la quantité Q_R(Sk) de ressource R initialement réservée (i.e. allouée) par le système de gestion sur le serveur Sk pour l'exécution des tâches reçues antérieurement et toujours en cours de traitement par le serveur Sk, c'est-à-dire toujours positionnées sur le serveur Sk (ce nombre de tâches positionnées est supposé égal à JO, JO désignant un entier supérieur à 0). Cette quantité Q_R(Sk) se base sur les déclarations des besoins R_R_Tj en ressource R fournis par les utilisateurs pour ces tâches antérieures Tj, j= l,...,J0, autrement dit, elle est égale à la somme des besoins R_R_Tj, j= l,...,J0 en ressource R déclarés par les utilisateurs à l'origine de ces J0 tâches Tj, j = l,...,J0, soit encore :  Note that the asynchronous process PI which has just been described with reference to FIG. 3A and which is implemented by the management device 3 of the cluster 2 approaches the processes implemented by the cluster management systems of the cluster. state of the art, and in particular by the Borg and Hadoop Yarn systems mentioned above. In the processing implemented by these systems of the state of the art, the estimate EU_R (Sk) of the quantity of resource R already used on the server Sk is taken equal, in the equation (eq l), to the quantity Q_R (Sk) of resource R initially reserved (ie allocated) by the management system on the server Sk for the execution of the tasks received previously and still being processed by the server Sk, that is to say always positioned on the server Sk (this number of tasks positioned is supposed equal to JO, JO designating an integer higher than 0). This quantity Q_R (Sk) is based on the declarations of needs R_R_Tj in resource R provided by the users for these previous tasks Tj, j = l, ..., J0, in other words, it is equal to the sum of the needs R_R_Tj, j = l, ..., J0 in resource R declared by the users at the origin of these J0 tasks Tj, j = l, ..., J0, again:
Q_R(Sk) =∑J°=1 R_R_Tj . Q_R (Sk) = Σ J ° = 1 R_R_Tj.
En d'autres mots encore, les systèmes de gestion de l'état de la technique tels que ceux précités appliquent, pour l'attribution d'une ressource R à une tâche informatique T entrante qui leur est soumise, l'inégalité suivante (eq l :  In other words again, the management systems of the state of the art such as those mentioned above apply, for the allocation of a resource R to an incoming computer task T that is submitted to them, the following inequality (eq. l:
R_R_T + Q_R(Sk) < CL_R (Sk) (eql')  R_R_T + Q_R (Sk) <CL_R (Sk) (eql ')
Conformément à l'invention, le dispositif 3 de gestion du cluster 2 se distingue des systèmes de gestion de l'état de la technique en ce que certaines valeurs utilisées dans l'équation (eq l), et en particulier la valeur EU_R(Sk) et/ou la valeur de capacité limite CL_R(Sk), sont mises à jour sur détection de trois événements prédéterminés (définissant un ensemble prédéterminé d'événements au sens de l'invention) (étape F10). Ces trois événements comprennent :  According to the invention, the management device 3 of the cluster 2 differs from the management systems of the state of the art in that certain values used in the equation (eq l), and in particular the value EU_R (Sk and / or the limit capacitance value CL_R (Sk), are updated on detection of three predetermined events (defining a predetermined set of events in the sense of the invention) (step F10). These three events include:
— l'obtention de mesures d'utilisation réelle (courante) de la ressource informatique R sur les serveurs Sk, k= l,...,K du cluster 2 serveur ;  Obtaining real (current) usage measurements of the computing resource R on the servers Sk, k = 1,..., K of the cluster 2 server;
— la réservation par le dispositif 3 de gestion du cluster pour une tâche informatique d'une quantité de la ressource informatique R sur un serveur Sk, k= l,...,K du cluster 2 ; et The reservation by the cluster management device 3 for a computer task of a quantity of the computing resource R on a server Sk, k = 1,..., K of the cluster 2; and
— la libération par une tâche informatique d'une quantité de la ressource informatique R sur un serveur Sk, k= l,...,K du cluster 2. The release by a computer task of a quantity of the computing resource R on a server Sk, k = 1,..., K of the cluster 2.
Cette mise à jour est illustrée à la figure 3B décrite maintenant (processus continu P2) pour la quantité EU_R(Sk) (variable V au sens de l'invention). La prise en compte des trois événements précités permet au dispositif 3 de gestion du cluster 2 d'avoir une information plus précise sur la quantité de ressource R disponible sur chaque serveur lors de l'attribution des tâches informatiques via le processus Pl. Chaque événement désigné par EV détecté parmi ces trois événements entraine une mise à jour de la valeur courante de la variable V considérée (ici EU_R(Sk)). On note dans la suite de la description V(n) la valeur courante mise à jour de la variable V, n désignant un entier supérieur ou égal à 0 indexant la mise à jour (en d'autres mots, chaque événement détecté incrémente l'entier n (étapes d'initialisation F00 puis d'incrémentation F20)). Ainsi, lorsque cette variable est EU_R(Sk), la valeur courante de cette variable est notée EU_R(n,Sk). Il en est de même pour les autres variables considérées dans la description. On note qu'une valeur dite courante désigne une valeur disponible ou que l'on modifie à un instant considéré dit courant (c'est-à-dire à un instant en cours de réalisation). Dans le cas d'une mesure, celle-ci peut avoir été réalisée à un instant précédent (notamment en cas de périodicité de la mesure) ; si tel est le cas, la mesure courante désigne la mesure qui est disponible au moment courant où on l'utilise. This update is illustrated in FIG. 3B described now (continuous process P2) for the quantity EU_R (Sk) (variable V within the meaning of the invention). Taking into account the three aforementioned events allows the management device 3 of cluster 2 to have more precise information on the amount of resource R available on each server when assigning computer tasks via the process Pl. Each designated event by EV detected among these three events causes an update of the current value of the variable V considered (here EU_R (Sk)). In the remainder of the description V (n), the current updated value of the variable V is denoted by n denoting an integer greater than or equal to 0 indexing the update (in other words, each detected event increments the integer n (initialization steps F00 then incrementing F20)). Thus, when this variable is EU_R (Sk), the current value of this variable is denoted EU_R (n, Sk). It is the same for the other variables considered in the description. It is noted that a so-called current value designates a value that is available or that is modified at a considered instant called current (that is to say at a moment in progress). In the case of a measurement, it may have been carried out at a previous time (especially in case of periodicity of the measurement); if so, the current measure is the measure that is available at the current time when it is used.
Conformément à l'invention, suivant l'événement détecté, une mise à jour différente de la valeur courante de la variable V est envisagée. Nous allons détailler maintenant ces trois mises à jour.  According to the invention, according to the detected event, a different update of the current value of the variable V is envisaged. We will detail now these three updates.
Comme indiqué précédemment, dans le premier mode de réalisation décrit ici, on suppose que la remontée des mesures effectuées sur les serveurs Sk, k=l,...,K vers le dispositif 3 de gestion du cluster 2 est réalisée de façon périodique, selon une période Tupd. Par souci de simplification, on considère ici une même période Tupd pour tous les serveurs du cluster toutefois l'invention s'applique également à des périodes distinctes d'un serveur à l'autre. En outre, l'invention s'applique également lorsque les mesures sont remontées à des instants prédéterminés, pas nécessairement espacés de façon régulière, ou de façon totalement asynchrone.  As indicated above, in the first embodiment described here, it is assumed that the feedback of the measurements carried out on the servers Sk, k = 1,..., K to the management device 3 of the cluster 2 is carried out periodically, according to a Tupd period. For the sake of simplicity, here we consider the same Tupd period for all servers in the cluster, but the invention also applies to different periods from one server to another. In addition, the invention also applies when the measurements are reported at predetermined times, not necessarily spaced regularly, or completely asynchronously.
Cette obtention périodique des mesures d'utilisation réelle de la ressource R par le dispositif 3 de gestion est détectée par le dispositif 3 de gestion du cluster (réponse oui à l'étape F10 avec EV=UPD-U). Une telle mesure peut être réalisée par chaque serveur Sk au moyen d'outils connus en soi, comme par exemple au moyen d'une commande « top » lancée par le système d'exploitation de chaque serveur Sk périodiquement. On note U_R(n,Sk) la mesure de l'utilisation réelle de la ressource informatique R réalisée sur le serveur Sk et disponible à l'instant courant au niveau du dispositif 3 de gestion du cluster 2.  This periodic obtaining of the actual utilization measurements of the resource R by the management device 3 is detected by the cluster management device 3 (yes response to step F10 with EV = UPD-U). Such a measurement can be performed by each server Sk using tools known per se, for example by means of a "top" command launched by the operating system of each server Sk periodically. U_R (n, Sk) is a measure of the actual use of the computing resource R carried out on the server Sk and available at the current time at the level of the management device 3 of the cluster 2.
Chacune des mesures U_R(n,Sk), k=l,...,K obtenue par le dispositif 3 de gestion du cluster 2 est utilisée par le dispositif 3 de gestion du cluster comme une mesure de l'utilisation réelle courante de la ressource informatique R sur le serveur Sk.  Each of the measurements U_R (n, Sk), k = 1,..., K obtained by the cluster management device 2 2 is used by the cluster management device 3 as a measure of the actual current use of the cluster. computer resource R on the server Sk.
A partir de cette mesure, le dispositif 3 de gestion du cluster 2, via son module 3E de mise à jour, met à jour, dans le premier mode de réalisation décrit ici, la valeur courante de l'estimation EU_R(Sk) de la quantité déjà utilisée de la ressource informatique R sur le serveur Sk destinée à être prise en compte par le dispositif 3 de gestion au cours de l'étape E30 du processus PI (étape F30). From this measurement, the management device 3 of the cluster 2, via its update module 3E, updates, in the first embodiment described here, the current value of the estimate EU_R (Sk) of the used amount of the R computing resource on the Sk server intended to be taken into account by the management device 3 during step E30 of the process PI (step F30).
Dans le premier mode de réalisation décrit ici, le module 3E de mise à jour calcule la valeur courante EU_R(n,Sk) selon l'équation (eq2) suivante (étape F30) :  In the first embodiment described here, the update module 3E calculates the current value EU_R (n, Sk) according to the following equation (eq2) (step F30):
EU_R(n, Sk) = (1 - a)EU_R(n - l. Sk) + ai/_i?(n,5fe)(eq2) où a désigne un facteur de pondération réel compris entre 0 et 1. On note que dans cette équation, EU_R(0,Sk) est initialisé à la quantité de le ressource R réservée sur le serveur Sk à un instant t=0 pour l'ensemble des tâches positionnées sur ce serveur par le dispositif 3 de gestion du cluster 2.  EU_R (n, Sk) = (1 - a) EU_R (n-1 Sk) + ai / _i? (N, 5fe) (eq2) where a is a real weighting factor between 0 and 1. It is noted that in this equation, EU_R (0, Sk) is initialized to the quantity of the resource R reserved on the server Sk at a time t = 0 for all the tasks set on this server by the management device 3 of the cluster 2.
On note que l'équation (eq2) permet de mettre à jour l'estimation de la quantité déjà utilisée de la ressource informatique R sur le serveur Sk en calculant la valeur EU_R(n,Sk) à l'instant courant à partir d'une valeur Vpast(n) = EU_R(n - l,Sk) calculée (mise à jour) à un instant précédent (en l'espèce ici, lors de sa précédente mise à jour). Elle comprend une moyenne mobile exponentielle paramétrée par le facteur . Plus le facteur est choisi proche de 0, plus longtemps le dispositif 3 de gestion du cluster tient compte de la quantité de ressources réservée et retarde le moment où il utilise des ressources libres des serveurs qui semblent « indûment » réservées. Au contraire, plus le facteur est choisi proche de 1, plus le dispositif 3 de gestion du cluster oublie rapidement ces ressources réservées par les tâches, prenant le risque que ces ressources soient en fait nécessaires aux tâches pour lesquelles elles avaient été réservées mais utilisées ultérieurement. Le choix du facteur résulte donc d'un compromis entre ces différentes considérations.  Note that the equation (eq2) makes it possible to update the estimate of the quantity already used of the computing resource R on the server Sk by calculating the value EU_R (n, Sk) at the current instant from a value Vpast (n) = EU_R (n - 1, Sk) computed (updated) at a previous instant (in this case here, during its previous update). It includes an exponential moving average parameterized by the factor. The closer the factor is chosen to 0, the longer the cluster management device 3 takes into account the amount of resources reserved and delays the time when it uses free resources of the servers that seem "unduly" reserved. On the contrary, the closer the factor is chosen to 1, the more quickly the cluster management device 3 forgets these resources reserved by the tasks, taking the risk that these resources are in fact necessary for the tasks for which they were reserved but later used. . The choice of the factor therefore results from a compromise between these different considerations.
L'équation (eq2) permet avantageusement d'ajuster (i.e. de mettre à jour) le niveau EU_R(n,Sk) d'utilisation de la ressource R utilisé par le dispositif 3 de gestion du cluster 2 pour l'allocation des ressources aux tâches informatiques qui lui sont confiées en tenant compte de l'utilisation réelle des ressources sur les serveurs du cluster 2. Ceci permet, si une tâche s'exécutant sur un serveur Sk du cluster 2 requiert moins de ressource R pour s'exécuter que les besoins en cette ressource annoncés initialement par l'utilisateur dans la requête d'exécution de cette tâche, d'allouer à d'autres tâches de la ressource R non utilisée sur le serveur Sk, ou inversement de stopper l'allocation de ressource R à des tâches entrantes si le serveurs Sk n'a plus de ressource R disponible. On obtient donc une meilleure allocation par le dispositif 3 de gestion des ressources du cluster 2, tout en s'assurant d'une bonne exécution des tâches sur le cluster.  The equation (eq2) advantageously makes it possible to adjust (ie update) the level EU_R (n, Sk) of use of the resource R used by the management device 3 of cluster 2 for the allocation of resources to IT tasks that are entrusted to it taking into account the actual use of resources on cluster 2 servers. This allows, if a task running on a Sk server in cluster 2 requires less R resource to run than the needs in this resource initially announced by the user in the request to execute this task, to allocate to other tasks of the resource R not used on the server Sk, or conversely to stop the allocation of resource R to incoming tasks if the Sk server no longer has an available R resource. This results in a better allocation by the resource management device 3 of the cluster 2, while ensuring a good performance of the tasks on the cluster.
Dans le premier mode de réalisation décrit ici, la mise à jour de la valeur courante de la variable EU_R(Sk) au moyen de l'équation (eq2) est réalisée de façon périodique, à chaque remontée de mesures reçue par le dispositif 3 de gestion du cluster 2. En d'autres mots, l'événement d'obtention de mesures (EV=UPD-U) par le dispositif 3 de gestion se reproduit de façon périodique.  In the first embodiment described here, the updating of the current value of the variable EU_R (Sk) by means of the equation (eq2) is carried out periodically, at each measurement feedback received by the device 3 of In other words, the event of obtaining measurements (EV = UPD-U) by the management device 3 is reproduced periodically.
En plus de cette mise à jour périodique, conformément à l'invention, d'autres événements (EV=RESA et EV=FREE sur la figure 3B) sont susceptibles de déclencher des mises à jour asynchrones de la valeur courante de la variable V=EU_R(Sk) pour les différents serveurs Sk, k=l,...,K. Plus précisément, ces mises à jour asynchrones sont déclenchées par le module 3E de mise à jour à chaque fois que celui-ci détecte l'un et/ou l'autre des deux événements suivants pour l'un des serveurs Sk : In addition to this periodic update, according to the invention, other events (EV = RESA and EV = FREE in FIG. 3B) are capable of triggering updates. asynchronous day of the current value of the variable V = EU_R (Sk) for the different servers Sk, k = l, ..., K. Specifically, these asynchronous updates are triggered by the update module 3E each time it detects one and / or the other of the following two events for one of the servers Sk:
— la réservation par le dispositif 3 de gestion d'une quantité de la ressource R sur le serveur Sk, pour l'exécution d'une tâche informatique Tnew (suite à l'application du processus PI représenté sur la figure 3A par le dispositif 3 de gestion sur la tâche Tnew) (branche EV=RESA sur la figure 3B). La quantité de ressource réservée pour cette tâche Tnew par le dispositif 3 de gestion sur le serveur Sk correspond aux besoins R_R_Tnew en ressource R requis initialement par l'utilisateur dans la requête d'exécution de cette tâche transmise au dispositif 3 de gestion. Dans la suite de la description, on désigne cet événement par EV=RESA ; The reservation by the management device 3 of a quantity of the resource R on the server Sk, for the execution of a computer task Tnew (following the application of the process PI represented in FIG. 3A by the device 3 management on the task Tnew) (branch EV = RESA in Figure 3B). The amount of resource reserved for this task Tnew by the management device 3 on the server Sk corresponds to the needs R_R_Tnew R resource initially required by the user in the request for execution of this task transmitted to the device 3 management. In the remainder of the description, this event is designated by EV = RESA;
— la libération par une tâche informatique Told d'une quantité de la ressource R sur le serveur Sk, du fait notamment de l'achèvement de cette tâche Told ou de son interruption branche EV=FREE sur la figure 3B). Dans la suite de la description, on désigne par EV=FREE cet événement. The release by a computer task Told of a quantity of the resource R on the server Sk, in particular due to the completion of this task Told or its branch interruption EV = FREE in FIG. 3B). In the remainder of the description, EV = FREE denotes this event.
Pour chaque serveur Sk concerné pour lequel un événement EV=RESA est détecté par le dispositif 3 de gestion (via son module de détection 3D) en association avec une tâche Tnew (réponse oui à l'étape de détection F10, branche EV=RESA), la valeur courante de la variable EU_R(Sk) est mise à jour par le module 3E de mise à jour selon l'équation (eq3-RESA) suivante (étape F40) :  For each concerned server Sk for which an event EV = RESA is detected by the management device 3 (via its 3D detection module) in association with a task Tnew (yes response to the detection step F10, branch EV = RESA) , the current value of the variable EU_R (Sk) is updated by the update module 3E according to the following equation (eq3-RESA) (step F40):
EU_R(n,Sk) = EU_R(n - l.Sk) + R_R_Tnew (eq3-RESA) Le dispositif 3 de gestion du cluster 2 étant à l'origine du positionnement (attribution) des tâches sur les différents serveurs Sk du cluster, il peut informer sans délai via son module de sélection 3C, le module de détection 3D de la réservation de nouvelles ressources sur un serveur Sk.  EU_R (n, Sk) = EU_R (n - l.Sk) + R_R_Tnew (eq3-RESA) Cluster 2 management device 3 is responsible for the positioning (assignment) of tasks on the various servers Sk of the cluster, it can inform without delay via its selection module 3C, the 3D detection module of the reservation of new resources on a server Sk.
Pour chaque serveur Sk concerné pour lequel un événement EV=FREE est détecté par le dispositif 3 de gestion en association avec une tâche Told (réponse oui à l'étape de détection F10, branche EV=FREE), la valeur courante de la variable EU_R(Sk) est mise à jour par le module 3E de mise à jour selon l'équation (eq3-FREE) suivante (étape F50) :  For each concerned server Sk for which an event EV = FREE is detected by the management device 3 in association with a task Told (answer yes to the detection step F10, branch EV = FREE), the current value of the variable EU_R (Sk) is updated by the update module 3E according to the following equation (eq3-FREE) (step F50):
EU_R(n,Sk) = EU_R(n - l. Sk) - (1 - a)noldR_R_Told (eq3-FREE) où nold indexe le nombre de mises à jour de EU_R réalisées sur détection de l'événement UPD-U (nouvelle mesure remontée au dispositif 3 de gestion de l'utilisation réelle de la ressource) depuis l'instant où la quantité de ressource R_R_Told a été réservée pour la tâche Told sur le serveur Sk jusqu'à sa libération, la quantité R_R_Told correspondant aux besoins initialement requis en ressource R déclarés par l'utilisateur dans la requête d'exécution de la tâche Told adressée au dispositif 3 de gestion. EU_R (n, Sk) = EU_R (n. - the Sk) - (1 - a) nold R_R_Told (eq3-FREE) where indexes nold the number of updates to EU_R performed on detection of UPD-U event ( new measurement returned to the device 3 for managing the actual use of the resource) from the moment when the quantity of resource R_R_Told was reserved for the task Told on the server Sk until its release, the quantity R_R_Told corresponding to the needs initially required R resource declared by the user in the execution request of the Told task addressed to the management device 3.
Dans l'équation (eq3)-FREE, le facteur (1 - )noldR_R_Told permet de tenir compte du reliquat de ressource R qui est libérée par la tâche Told au niveau du serveur Sk du fait de la fin de son exécution par le serveur Sk. On note que la prise en compte de ce reliquat présente un intérêt privilégié pour des tâches dont l'exécution est de courte durée (par exemple inférieure à la période de mise à jour Tupd). In equation (eq3) -FREE, the factor (1 -) nold R_R_Told takes account of the balance of resource R that is released by the Told task at the server Sk due to end its execution by the server Sk. It is noted that the taking into account of this balance is of special interest for tasks whose execution is of short duration (for example less than the period of Tupd update).
Les mises à jour asynchrones de la variable EU_R(Sk) ainsi effectuées à chaque détection d'un événement EV=RESA et/ou EV=FREE visent à tenir compte des tâches allouées à chaque serveur Sk par le dispositif 3 de gestion du cluster 2 et des tâches qui se sont achevées sur chaque serveur Sk entre deux remontées de mesures du serveur Sk (et donc entre deux mises à jour périodiques de la variable EU_R(Sk)).  The asynchronous updates of the variable EU_R (Sk) thus carried out each time an event EV = RESA and / or EV = FREE are detected, are intended to take into account the tasks allocated to each server Sk by the device 3 for managing the cluster 2 and tasks that have been completed on each Sk server between two uploads of the server Sk (and therefore between two periodic updates of the variable EU_R (Sk)).
On note que, comme mentionné précédemment, les événements EV=RESA peuvent être détectés aisément par le dispositif 3 de gestion du cluster 2, celui-ci étant en charge de l'allocation des ressources aux tâches informatiques qui lui sont confiées. Les événements EV=FREE sont détectés ici par les serveurs Sk sur lesquelles les tâches Told avaient été distribuées (positionnées) et remontées par ces serveurs au dispositif 3 de gestion du cluster 2 (accompagnées des indices nold correspondant). La réception par le dispositif 3 de gestion d'une notification d'un serveur Sk de l'achèvement d'une tâche Told constitue une détection d'un événement EV=FREE pour ce serveur Sk au sens de l'invention. Le dispositif 3 de gestion dispose alors des informations nécessaires pour évaluer le facteur (1 - a)noldR_R_Told. Note that, as mentioned above, the events EV = RESA can be easily detected by the management device 3 of the cluster 2, the latter being in charge of the allocation of resources to the computer tasks entrusted to it. The events EV = FREE are detected here by the servers Sk on which the Told tasks had been distributed (positioned) and sent back by these servers to the management device 3 of the cluster 2 (accompanied by the corresponding nold indices). The reception by the management device 3 of a notification from a server Sk of the completion of a task Told constitutes a detection of an event EV = FREE for this server Sk within the meaning of the invention. 3 The management device then has the information necessary to evaluate the factor (1 - a) nold R_R_Told.
La valeur courante EU_R(n,Sk) mise à jour de la variable EU_R(Sk) est utilisée dès qu'elle est disponible (i.e. dès sa mise à jour terminée) par le module de détermination 3B du dispositif 3 de gestion du cluster 2 dans le cadre du processus PI, et plus précisément dans l'inégalité (eql) pour sélectionner un serveur du cluster 2 apte à exécuter une nouvelle tâche entrante reçue à compter de cette mise à jour.  The current value EU_R (n, Sk) updating the variable EU_R (Sk) is used as soon as it is available (ie as soon as it has been updated) by the determination module 3B of the device 3 for managing the cluster 2 as part of the PI process, and more precisely in the inequality (eql) for selecting a cluster 2 server capable of executing a new incoming task received as of this update.
Les étapes F10 à F50 du processus P2 sont ensuite réitérées à chaque détection d'un événement EV=UPD-U, RESA ou FREE par le module de détection 3D.  The steps F10 to F50 of the process P2 are then reiterated each time an event EV = UPD-U, RESA or FREE is detected by the detection module 3D.
Dans une première variante de ce premier mode de réalisation, le module 3E de mise à jour utilise lors de l'étape F30 pour calculer la valeur courante EU_R(n,Sk) l'équation (eq2 suivante à la place de l'équation (eq2) :  In a first variant of this first embodiment, the update module 3E uses in step F30 to calculate the current value EU_R (n, Sk) the equation (eq2 following instead of the equation ( eq2):
EU_R(n, Sk) = max((l - a)EU_R (n - l. Sfc) + aU_R(n, Sk~), U_R(n, Sk)) (eq2') où max(x,y) désigne la fonction qui fournit la valeur maximale parmi les valeurs x et y. Les processus de mise à jour décrits aux étapes F40 et F50 restent par ailleurs identiques à celui décrit précédemment. EU_R (n, Sk) = max ((l - a) EU_R (n - 1. Sfc) + aU_R (n, Sk ~ ), U_R (n, Sk)) (eq2 ') where max (x, y) designates the function that provides the maximum value among x and y values. The update processes described in steps F40 and F50 remain otherwise identical to that described above.
Cette première variante de réalisation permet de tenir compte plus rapidement de l'utilisation réelle des ressources sur le serveur Sk.  This first embodiment makes it possible to take account more quickly of the real use of the resources on the server Sk.
Dans une deuxième variante du premier mode de réalisation illustrée à la figure 3C, le module 3E de mise à jour utilise pour calculer la valeur courante EU_R(n,Sk) l'équation (eq2") suivante à la place de l'équation (eq2) (étape G30) :  In a second variant of the first embodiment illustrated in FIG. 3C, the updating module 3E uses to calculate the current value EU_R (n, Sk) the following equation (eq2 ") in place of the equation ( eq2) (step G30):
EU_R(n, Sk) = DR_R(n, Sk) + U_R(n, Sk) (eq2") où DR_R(n, Sk) désigne une valeur courante lissée de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif 3 de gestion sur le serveur Sk à l'instant courant. La valeur lissée DR_R(n, Sk) est calculée ici par le module 3E de mise à jour lors de l'étape G30, dans la deuxième variante, selon l'équation (eq4) suivante : EU_R (n, Sk) = DR_R (n, Sk) + U_R (n, Sk) (eq2 ") where DR_R (n, Sk) denotes a smoothed current value of the amount of the computer resource reserved for at least one computer task by the management device 3 on the server Sk at the current time. The smoothed value DR_R (n, Sk) is calculated here by the updating module 3E during step G30, in the second variant, according to the following equation (eq4):
DR_R(n, Sk) = (1 - )DR_R(n - l, Sk) (eq4)  DR_R (n, Sk) = (1 -) DR_R (n - 1, Sk) (eq4)
où β est un facteur de pondération réel compris entre 0 et 1. On note que le choix du facteur de pondération /? répond à un compromis similaire à celui évoqué précédemment pour le choix du facteur de pondération a (Le. rapidité d'oubli des ressources réservées versus utilisation réelle constatée de ces ressources). Dans cette équation, DR_R(0,Sk) est initialisé à la quantité de le ressource R réservée sur le serveur Sk à l'instant t=0 pour l'ensemble des tâches positionnées sur ce serveur. where β is a real weighting factor between 0 and 1. It is noted that the choice of the weighting factor /? responds to a compromise similar to the one mentioned above for the choice of the weighting factor a (the speed of forgetting the reserved resources versus the actual observed use of these resources). In this equation, DR_R (0, Sk) is initialized to the quantity of the resource R reserved on the server Sk at time t = 0 for all the tasks set on this server.
On suppose ici que la valeur de la variable DR_R est mise à jour périodiquement selon la même période Tupd que la remontée des mesures vers le dispositif 3 de gestion.  It is assumed here that the value of the variable DR_R is periodically updated according to the same period Tupd as the feedback of the measurements to the management device 3.
Toutefois cette hypothèse n'est pas limitative en soi, et la mise à jour de la valeur de DR_R selon l'équation (eq4) peut être réalisée selon une autre période, asynchrone par rapport à la remontée de U_R(n,Sk). Chaque mise à jour de la valeur de DR_R(Sk) entraîne alors une mise à jour de la valeur de EU-R(Sk). Il s'agit donc d'un autre événement (événement EV=UPD-D représenté en pointillés sur la figure 3C), au même titre que les événements EV=UPD-U, EV=RESA et EV=FREE décrits précédemment, susceptible dans la deuxième variante décrite ici d'être détecté par le module de détection 3D et de déclencher une mise à jour de la valeur courante de la variable V(=EU-R(Sk) ici) (étape G40).  However this assumption is not limiting in itself, and the update of the value of DR_R according to the equation (eq4) can be carried out according to another period, asynchronous with respect to the ascent of U_R (n, Sk). Each update of the value of DR_R (Sk) then causes an update of the value of EU-R (Sk). This is therefore another event (event EV = UPD-D shown in dashed lines in FIG. 3C), in the same way as the events EV = UPD-U, EV = RESA and EV = FREE described previously, susceptible in the second variant described here to be detected by the 3D detection module and to trigger an update of the current value of the variable V (= EU-R (Sk) here) (step G40).
En outre, dans cette deuxième variante, lors de la détection d'un événement EV=RESA ou EV=FREE, la valeur de DR_R est mise à jour suivant les équations (eq5-RESA) pour la détection d'un événement EV=RESA (étape G50) et (eq5-FREE) pour la détection d'un événement EV=FREE (étape G60) suivantes :  In addition, in this second variant, during the detection of an event EV = RESA or EV = FREE, the value of DR_R is updated according to the equations (eq5-RESA) for the detection of an event EV = RESA (step G50) and (eq5-FREE) for detecting an EV event EV = FREE (step G60):
D_R(n,Sk) = D_R(n - l,Sk) + R_R_Tnew (eq5-RESA) et  D_R (n, Sk) = D_R (n-1, Sk) + R_R_Tnew (eq5-RESA) and
D_R n, Sk) = D_R(n - l,Sk) - (1 - )noldR_R_Told (eq5-FREE) où nold indexe le nombre de mises à jour de D_R réalisées sur détection de l'événement UPD-U (nouvelle mesure remontée au dispositif 3 de gestion de l'utilisation réelle de la ressource) depuis l'instant où la quantité de ressource R_R_Told a été réservée pour la tâche Told sur le serveur Sk jusqu'à sa libération, la quantité R_R_Told correspondant aux besoins initialement requis en ressource R déclarés par l'utilisateur dans la requête d'exécution de la tâche Told adressée au dispositif 3 de gestion. D_R n, Sk) = D_R (n - l, Sk) - (1 -) nold R_R_Told (EQ5-FREE) where indexes nold the number of updates to D_R performed on detection of UPD-U event (new measure returned to the device 3 for managing the actual use of the resource) since the quantity of resource R_R_Told was reserved for the task Told on the server Sk until its release, the quantity R_R_Told corresponding to the initially required needs in resource R declared by the user in the execution request of the task Told addressed to the management device 3.
La valeur courante de EU-R est ensuite mise à jour durant les étapes G50 et G60 suivant l'équation (eq2") où U_R(n,Sk) désigne la valeur courante disponible au niveau du dispositif 3 de gestion de la mesure d'utilisation réelle de la ressource R. Dans une troisième variante du premier mode de réalisation, chaque mesure de l'utilisation réelle de la ressource informatique R est réalisée sur chaque serveur Sk du cluster 2, k= l,...,K, pour chaque tâche distincte Tj exécutée par ce serveur Sk utilisant la ressource informatique R, j=0,...,Jl, J l désignant un entier supérieur à 0 dénombrant les tâches positionnées sur le serveur Sk lors de la mesure. On se limite ici aux seules tâches Tj exécutées par le serveur Sk et gérées par le dispositif 3 de gestion du cluster 2 (c'est-à-dire qui ont été lancées sur le serveur Sk sur instruction du dispositif 3 de gestion du cluster 2 après exécution du processus PI). The current value of EU-R is then updated during the steps G50 and G60 according to the equation (eq2 ") where U_R (n, Sk) denotes the current value available at the device 3 for managing the measurement of actual use of resource R. In a third variant of the first embodiment, each measurement of the actual use of the computing resource R is performed on each server Sk of cluster 2, k = 1, ..., K, for each separate task Tj executed by this Sk server using the computer resource R, j = 0, ..., Jl, J l designating an integer greater than 0 counting the tasks positioned on the server Sk during the measurement. Here we limit ourselves to the tasks Tj executed by the server Sk and managed by the management device 3 of the cluster 2 (that is to say those which were launched on the server Sk on command 3 of the management of the cluster 2 after execution of the PI process).
On désigne par U_R(n,Sk,j) la mesure de l'utilisation réelle de la ressource informatique R réalisée sur le serveur Sk pour la tâche Tj à l'issue de l'intervalle de temps t(n-l). Chaque mesure U_R(n,Sk,j) réalisée sur un serveur Sk est envoyée à l'issue de l'intervalle de temps t(n) au dispositif 3 de gestion du cluster 2, et obtenue au cours de l'étape F20 par le module 3D d'obtention du dispositif 3 de gestion du cluster 2. Chaque mesure U_R(n,Sk,j) est utilisée par le dispositif 3 de gestion du cluster comme une mesure de l'utilisation réelle de la ressource informatique R sur le serveur Sk par la tâche Tj pour l'intervalle de temps t(n).  U_R (n, Sk, j) is a measure of the actual use of the computing resource R carried out on the server Sk for the task Tj at the end of the time interval t (n-1). Each measurement U_R (n, Sk, j) carried out on a server Sk is sent at the end of the time interval t (n) to the management device 3 of the cluster 2, and obtained during the step F20 by the 3D module for obtaining the cluster management device 3. Each U_R measurement (n, Sk, j) is used by the cluster management device 3 as a measure of the actual use of the computer resource R on the Sk server by the task Tj for the time interval t (n).
A partir de ces mesures, le dispositif 3 de gestion du cluster 2, via son module 3E de mise à jour, évalue dans la troisième variante, au cours de l'étape F30, une estimation EU_R(n,Sk,j) de la quantité déjà utilisée de la ressource informatique R sur chaque serveur Sk par chaque tâche informatique Tj gérée par le dispositif 3 de gestion du cluster 2 et exécutée sur le serveur Sk en utilisant l'équation (eq6) suivante :  From these measurements, the management device 3 of the cluster 2, via its update module 3E, evaluates in the third variant, during the step F30, an estimate EU_R (n, Sk, j) of the amount already used of the computing resource R on each server Sk by each computer task Tj managed by the management device 3 of the cluster 2 and executed on the server Sk using the following equation (eq6):
EU_R(n,Sk,j) = (1 - a)EU_R (n - l. Sk.j) + U_R(n,Sk,j) (eq 6) ou l'équation (eqô suivante :  EU_R (n, Sk, j) = (1 - a) EU_R (n - 1. Sk.j) + U_R (n, Sk, j) (eq 6) or the following equation (eqô:
EU_R(n, Sk,j) = max((l - a)EU_R (n - l.Sk.j) + aU_R(n,Sk,j), U_R(n,Sk,jj) (eq 6') dans lesquelles est un facteur de pondération réel compris entre 0 et 1, choisi comme décrit précédemment dans les autres variantes de réalisation. On note que dans cette troisième variante, EU_R(n0j,j) est initialisé à la quantité R_R_Tj de ressource informatique R requise initialement pour l'exécution de la tâche Tj, nOj désignant l'indice de mise à jour correspondant à l'attribution de la tâche informatique Tj au serveur Sk par le dispositif 3 de gestion.  EU_R (n, Sk, j) = max ((l - a) EU_R (n - l.Sk.j) + aU_R (n, Sk, j), U_R (n, Sk, jj) (eq 6 ') in which is a real weighting factor between 0 and 1, chosen as described previously in the other variant embodiments It should be noted that in this third variant, EU_R (n0j, j) is initialized to the quantity R_R_Tj of computing resource R initially required. for the execution of the task Tj, nOj denoting the updating index corresponding to the allocation of the computer task Tj to the server Sk by the management device 3.
Puis, dans la troisième variante décrite ici, au cours de l'étape F30, le module 3E de mise à jour évalue à partir des valeurs EU_R(n,Sk,fi obtenues pour chacune des tâches Tj la quantité EU_R(n, Sk) selon l'équation (eq2'") suivante :  Then, in the third variant described here, during the step F30, the update module 3E evaluates from the values EU_R (n, Sk, fi obtained for each task Tj the quantity EU_R (n, Sk) according to the following equation (eq2 '"):
Jlact  Jlact
EU_R(n, Sk) = ^ EU_R(n,Sk,j) (eq2"')  EU_R (n, Sk) = ^ EU_R (n, Sk, j) (eq2 "')
7 = 0  7 = 0
ou selon l'équation (eq2(4)) suivante : or according to the following equation (eq2 (4) ):
EU_R(n, Sk) = max(∑J j= 1a 0 ct EU_R(n,Sk,j) ,Σ^' U_R(n,Sk,j)) (eq2(4)) dans lesquelles Jlact désigne le nombre de tâches positionnées sur le serveur Sk (c'est-à-dire attribuées au serveur Sk par le dispositif 3 de gestion) parmi les Jl tâches pour lesquelles des mesures ont été remontées au dispositif 3 de gestion. Dans le premier mode de réalisation et dans ses trois variantes précédemment décrites, c'est le dispositif 3 de gestion du cluster 2 qui, à partir des mesures remontées par les serveurs Sk, k=l,...,K du cluster 2, met à jour la valeur de la quantité EU_R(Sk) utilisée par le module 3B de détermination du dispositif 3 de gestion du cluster 2 pour sélectionner un serveur du cluster pour exécuter une tâche entrante. EU_R (n, Sk) = max (Σ J j = 1a 0 ct EU_R (n, S k, j), Σ ^ 'U_r (n, S k, j)) (eq2 (4)) wherein Jlact denotes the number of tasks set on the server Sk (that is, allocated to the server Sk by the management device 3) among the Jl tasks for which measurements have been reported to the management device 3. In the first embodiment and in its three variants previously described, it is the management device 3 of the cluster 2 which, from the measurements sent by the servers Sk, k = 1,..., K of the cluster 2, updates the value of the quantity EU_R (Sk) used by the module 3B for determining the cluster management device 3 to select a server of the cluster to execute an incoming task.
Dans un second mode de réalisation, chaque serveur Sk du cluster 2 est un serveur conforme à l'invention. Il comprend :  In a second embodiment, each server Sk of cluster 2 is a server according to the invention. He understands :
— un module de mesure, configuré pour mesurer, périodiquement ici, l'utilisation réelle de sa ressource informatique R ;  A measurement module configured to periodically measure the actual use of its computing resource R;
— un module de détection configuré pour détecter un ensemble prédéfini d'événements (UPD-U, RESA et FREE) ; et  A detection module configured to detect a predefined set of events (UPD-U, RESA and FREE); and
— un module de mise à jour configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur et une capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection par le module de détection d'un événement parmi l'ensemble prédéfini d'événements et configuré pour :  An update module configured to update at least one current value of a variable rated V selected from an estimate of an already used quantity of the computing resource on the server and a maximum capacity of the server for the computing resource , said update module being activated on each detection by the detection module of an event among the predefined set of events and configured to:
o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;  o if the detected event is to obtain a measurement (U_R (n)) of a current real use of the computer resource on the server, update the current value of the variable V using said measure of the actual actual use of the computing resource on the server;
o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et  o if the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource; and
o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique libérée ; et  o if the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the released computing resource; and
— un module de transmission, configuré pour transmettre au dispositif de gestion ladite valeur courante de la variable V mise à jour.  A transmission module, configured to transmit to the management device said current value of the updated variable V.
Plus précisément, dans le second mode de réalisation, sur chaque détection d'un événement EV (EV=UPD-U, RESA, FREE ou UPD-D comme dans le premier mode de réalisation) chaque serveur Sk estime via son module de mise à jour la quantité courante EU_R(n,Sk) déjà utilisée de sa ressource informatique R. Il peut procéder à cet effet par exemple de façon similaire ou identique à ce qui a été décrit précédemment dans le premier mode de réalisation et mis en œuvre par le dispositif 3 de gestion en référence aux figures 3B et 3C.  More specifically, in the second embodiment, on each detection of an EV event (EV = UPD-U, RESA, FREE or UPD-D as in the first embodiment) each Sk server estimates via its update module. day the current amount EU_R (n, Sk) already used of its computer resource R. It can proceed for this purpose for example similarly or identically to what has been described previously in the first embodiment and implemented by the management device 3 with reference to FIGS. 3B and 3C.
Puis, à partir de la quantité EU_R(n,Sk) ainsi estimée par le serveur Sk, le module de mise à jour du serveur Sk met à jour la valeur de sa capacité maximale CL_R(Sk) pour la ressource R et pour l'intervalle de temps t(n) selon l'équation (eq7) suivante : CL_R (n, Sk) = CL_R (Sk) + Q_R (n, Sk) - EU(n, Sk) (eq7) où Q_R(n,Sk) désigne la quantité de ressource R réservée initialement par le dispositif 3 de gestion sur le serveur Sk pour l'exécution des tâches positionnées sur le serveur Sk à l'instant courant de mise à jour. Cette quantité Q_R(n,Sk) est donnée par, compte-tenu des besoins R_R_Tj, en ressource R déclarés par les utilisateurs à l'origine de ces tâches : Then, from the quantity EU_R (n, Sk) thus estimated by the server Sk, the update module of the server Sk updates the value of its maximum capacity CL_R (Sk) for the resource R and for the time interval t (n) according to the following equation (eq7): CL_R (n, Sk) = CL_R (Sk) + Q_R (n, Sk) - EU (n, Sk) (eq7) where Q_R (n, Sk) denotes the quantity of resource R initially reserved by the management device 3 on the server Sk for the execution of the tasks positioned on the server Sk at the current time of update. This quantity Q_R (n, Sk) is given by, taking into account the needs R_R_Tj, in resource R declared by the users at the origin of these tasks:
Q_R(n. Sk) = R_R_Tj .  Q_R (n Sk) = R_R_Tj.
où J2(n) désigne le nombre de tâches Tl,...,TJ2(n) positionnées sur le serveur Sk à l'instant courant de mise à jour. where J2 (n) denotes the number of tasks Tl, ..., TJ2 (n) positioned on the server Sk at the current update time.
La valeur courante de la capacité maximale CL_R(n,Sk) du serveur Sk pour la ressource R est alors remontée (périodiquement par exemple ici) par le serveur Sk au dispositif 3 de gestion du cluster 2, par exemple en utilisant le protocole de communication déjà utilisé dans les systèmes informatiques s'appuyant sur un système de gestion Hadoop Yarn.  The current value of the maximum capacity CL_R (n, Sk) of the server Sk for the resource R is then raised (periodically for example here) by the server Sk to the management device 3 of the cluster 2, for example using the communication protocol already used in computer systems based on a Hadoop Yarn management system.
Le dispositif 3 de gestion du cluster 2 utilise alors la valeur mise à jour CL_R(n,Sk) de la capacité maximale CL_R(Sk) du serveur Sk dans l'équation (eql') mentionnée précédemment pour déterminer, pour une tâche entrante T qui lui est soumise les serveurs Sk, k=l,...,K du cluster 2 aptes à exécuter cette tâche.  The management device 3 of the cluster 2 then uses the updated value CL_R (n, Sk) of the maximum capacity CL_R (Sk) of the server Sk in the equation (eql ') mentioned previously to determine, for an incoming task T it is subject to the servers Sk, k = l, ..., K of the cluster 2 capable of performing this task.
Il convient de noter que ce second mode de réalisation ne requiert aucune modification du traitement réalisé aujourd'hui par les systèmes de gestion de l'état de la technique (i.e. ils utilisent l'équation (eql ). Ainsi, dans ce second mode de réalisation, le dispositif 3 de gestion du cluster 2 peut être un système de gestion Hadoop Yarn ou un système de gestion Borg déjà connus. Seuls les serveurs Sk du cluster 2 doivent être modifiés pour implémenter l'invention. Ces modifications peuvent toucher tout ou partie des serveurs du cluster 2.  It should be noted that this second embodiment does not require any modification of the processing performed today by the management systems of the state of the art (ie they use the equation (eql). In this embodiment, the cluster management device 2 can be a Hadoop Yarn management system or a Borg management system already known, only the cluster 2 Sk servers must be modified to implement the invention. Cluster 2 servers.
Dans les deux modes de réalisation décrits ici, ainsi que dans leurs variantes, on a considéré pour mettre à jour la quantité EU_R(n,Sk) une moyenne mobile exponentielle. Toutefois cette hypothèse n'est pas limitative en soi, et d'autres types de lissage ou de moyennes glissantes peuvent être envisagés pour calculer la quantité EU_R(n,Sk). Ainsi par exemple, dans une variante de réalisation, on peut considérer une moyenne arithmétique des mesures d'utilisation réelle remontées sur une fenêtre glissante comprenant N intervalles de temps précédents l'intervalle de temps t(n).  In the two embodiments described here, as well as in their variants, it has been considered to update the quantity EU_R (n, Sk) an exponential moving average. However, this assumption is not limiting in itself, and other types of smoothing or sliding averages can be considered to calculate the quantity EU_R (n, Sk). For example, in an alternative embodiment, we can consider an arithmetic average of actual usage measurements sent back to a sliding window comprising N time intervals preceding the time interval t (n).
Dans une autre variante encore, on peut considérer une moyenne MMP(n, Sk) mobile pondérée des mesures d'utilisation réelle remontées sur une fenêtre glissante comprenant N intervalles de temps précédant l'instant courant de mise à jour, telle que par exemple :  In yet another variant, a weighted moving average MMP (n, Sk) may be considered of actual usage measurements sent back to a sliding window comprising N time intervals preceding the current update time, such as for example:
N'u R(n,Sk)+(N'-l)u R(n-l,Sk)+---+U R(n-N'+l,Sk)  R (n, Sk) + (N'-1) u R (n-1, Sk) + --- + U R (n-N '+ 1, Sk)
MMP(n, Sk) =— J—^- ,— — — MMP (n, Sk) = - J - ^ -, - - -
J N'+QV'-1)+---+1  J N '+ QV'-1) + --- + 1
où N' est le maximum du nombre de mesures U_R(n,Sk) disponibles précédant la mesure U_R(n,Sk) et de N. Cette moyenne MMP(n, Sk) s'écrit de façon équivalente, après avoir obtenu N mesures U_R(m,Sk), sous la forme : MMP(n, Sk) = MMP (n - 1, 57c) + ;— — where N 'is the maximum of the number of measurements U_R (n, Sk) available preceding measurement U_R (n, Sk) and of N. This average MMP (n, Sk) is written in an equivalent way, after obtaining N measurements. U_R (m, Sk), in the form: MMP (n, Sk) = MMP (n-1, 57c) +; - -
J J QV+l)/2 J J QV + l) / 2
On note que dans cette moyenne pondérée, les mesures U_R(n,Sk) ont d'autant plus de poids qu'elles sont récentes.  It should be noted that in this weighted average, the U_R (n, Sk) measures are all the more important as they are recent.
La valeur EU_R(n, Sk) peut alors être calculée selon l'équation suivante, à la réception d'une nouvelle mesure U_R(n,Sk) (détection d'un événement EV=UPD-U) :  The value EU_R (n, Sk) can then be calculated according to the following equation, on receipt of a new measurement U_R (n, Sk) (detection of an event EV = UPD-U):
„ (k + N - n) * R_R_Tj  "(K + N - n) * R_R_Tj
EU_R(n, Sk) = MMP(n,Sk) + > > - 'T EU_R (n, Sk) = MMP (n, Sk) +>> - ' T
^—' , N  ^ - ', N
k=n-N +1 al-k k = nN +1 to l- k
dj>n  dj> n
où aj indexe le début de la tâche Tj et dj la fin de la tâche Tj sur le serveur Sk. where aj indexes the beginning of the task Tj and already the end of the task Tj on the server Sk.
La valeur EU_R(n,Sk) peut en outre être mise à jour de la façon suivante lors de la détection d'un événement EV=RESA :  The value EU_R (n, Sk) may further be updated as follows when detecting an event EV = RESA:
EU_R(n, Sk) = EU_R(n, Sk) + R_R_Tnew  EU_R (n, Sk) = EU_R (n, Sk) + R_R_Tnew
Ces exemples ne sont donnés qu'à titre illustratif et d'autres exemples encore peuvent être envisagés pour mettre à jour la valeur EU_R(n,Sk).  These examples are given for illustrative purposes only and other examples may be considered to update the EU_R (n, Sk) value.

Claims

REVENDICATIONS
1. Procédé de mise à jour, pour au moins un serveur (Sk) d'un cluster de serveurs, d'au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée d'une ressource informatique sur le serveur ou une capacité maximale du serveur pour ladite ressource informatique, ladite au moins une valeur courante étant destinée à être prise en compte par un dispositif de gestion du cluster de serveurs pour sélectionner, sur réception d'une requête d'exécution d'une tâche informatique associée à une quantité prédéterminée de ladite ressource informatique (R) requise initialement pour son exécution, un serveur dit cible du cluster pour exécuter cette tâche informatique, ledit procédé étant tel que ladite mise à jour est réalisée à chaque détection (F10) d'un événement (EV) parmi un ensemble prédéfini d'événements et : 1. Method for updating, for at least one server (Sk) of a server cluster, at least one current value of a variable V denoted from an estimate of an already used quantity of a resource computing on the server or a maximum capacity of the server for said computing resource, said at least one current value being intended to be taken into account by a server cluster management device to select, upon receipt of a execution request d a computer task associated with a predetermined quantity of said computer resource (R) initially required for its execution, a server said target of the cluster to perform this computer task, said method being such that said update is performed at each detection (F10 ) an event (EV) from a predefined set of events and:
— si l'événement détecté (UPD-U) est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, ladite mise à jour (F30,G30) de la valeur courante de la variable V utilise ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;  If the detected event (UPD-U) is obtaining a measurement (U_R (n)) of a current real use of the computing resource on the server, said updating (F30, G30) of the value current variable V uses said measure of the actual actual usage of the computing resource on the server;
— si l'événement détecté (RESA) est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour (F40,G50) de la valeur courante de la variable V utilise ladite quantité de la ressource informatique réservée ; et  If the detected event (RESA) is a reservation by the management device for a computer task of a quantity of the computer resource on the server, said update (F40, G50) of the current value of the variable V uses said amount of the reserved computing resource; and
— si l'événement détecté (FREE) est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, ladite mise à jour (F50,G60) de la valeur courante de la variable V utilise ladite quantité de la ressource informatique libérée. If the detected event (FREE) is a release by a computer task of a quantity of the computing resource on the server, said updating (F50, G60) of the current value of the variable V uses said quantity of the released computer resource.
2. Procédé de mise à jour selon la revendication 1 dans lequel si l'événement détecté (UPD-U) est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite mise à jour de la valeur courante de la variable V utilise en outre au moins une valeur de la variable V notée Vpast mise à jour à un instant précédent. The updating method according to claim 1, wherein if the detected event (UPD-U) is obtaining the measurement of the actual current usage of the computing resource on the server, said update of the The current value of the variable V also uses at least one value of the variable V noted Vpast updated at a previous time.
3. Procédé de mise à jour selon la revendication 2 dans lequel si l'événement détecté (UPD-U) est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, lors de ladite mise à jour la mesure de l'utilisation réelle courante de la ressource informatique est pondérée par un facteur réel a compris entre 0 et 1, et ladite au moins une valeur Vpast est pondérée par un facteur égal à (1-et). 3. An updating method according to claim 2 wherein if the detected event (UPD-U) is obtaining the measurement of the actual current use of the computer resource on the server, during said update. the actual current usage metric of the computing resource is weighted by a real factor a between 0 and 1, and said at least one Vpast value is weighted by a factor equal to (1-and).
4. Procédé de mise à jour selon la revendication 3 dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation : The updating method according to claim 3 wherein the updated variable V is the EU_R estimate of the amount already used of the computing resource on the server, and if the detected event is obtaining the measure. the actual actual use of the resource on the server, said current value denoted EU_R (n) of variable V is updated according to the equation:
EU_R(n) = max((l - a)EU_R(n - 1) + aU_R(n), U_R(n)) où n désigne un entier supérieur à 1, EU_R(n - 1) est la valeur de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur mise à jour à un instant précédent, et U_R(n) désigne la mesure obtenue de l'utilisation réelle courante de la ressource informatique sur le serveur.  EU_R (n) = max ((l - a) EU_R (n - 1) + aU_R (n), U_R (n)) where n denotes an integer greater than 1, EU_R (n - 1) is the value of estimating the previously used amount of the computer resource on the server updated at a previous time, and U_R (n) is the measurement obtained from the actual current usage of the computing resource on the server.
5. Procédé de mise à jour selon la revendication 1, dans lequel ladite mesure de l'utilisation réelle courante de la ressource informatique est une mesure de l'utilisation réelle de la ressource informatique sur le serveur par une ou plusieurs tâches informatiques s'exécutant sur le serveur et toutes gérées par le dispositif de gestion du cluster. The updating method of claim 1, wherein said measuring the actual actual usage of the computing resource is a measure of the actual use of the computing resource on the server by one or more computing tasks executing. on the server and all managed by the cluster management appliance.
6. Procédé de mise à jour selon la revendication 5 dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur : The updating method according to claim 5 wherein the updated variable V is the EU_R estimate of the amount already used of the computing resource on the server, and if the detected event is obtaining the measure the actual current usage of the IT resource on the server:
— la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur comprend une pluralité de valeurs notées U_R(n,fi, j=l,...J, associées respectivement à une pluralité de tâches informatiques Tj, j=l,...J, positionnées par le dispositif de gestion du cluster sur le serveur, J et n désignant des entiers supérieurs ou égaux à 1, chaque valeur The measurement of the current real use of the computing resource on the server comprises a plurality of values denoted U_R (n, f 1, j = 1, ... J, associated respectively with a plurality of computer tasks Tj, j = l , ... J, set by the cluster management device on the server, where J and n denote integers greater than or equal to 1, each value
U_R(n,fi correspondant à une mesure de l'utilisation réelle de la ressource informatique sur le serveur par la tâche Tj ; U_R (n, fi corresponding to a measurement of the actual use of the computer resource on the server by the task Tj;
— ladite mise à jour (F30) comprend :  Said update (F30) comprises:
o une première étape d'évaluation pour chaque tâche Tj, d'une valeur courante EU_R(n,j) d'une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur par la tâche informatique Tj selon l'équation :  o a first evaluation step for each task Tj, of a current value EU_R (n, j) of an estimate of a quantity already used of the computer resource on the server by the computer task Tj according to the equation:
EU_R(n,j) = max((l - a)EU_R ( - 1, ;) + U_R(n,j), U_R(n,j)) ou selon l'équation :  EU_R (n, j) = max ((l - a) EU_R (- 1,;) + U_R (n, j), U_R (n, j)) or according to the equation:
EU_R(n,j) = (1 - a)EU_R (n - 1, ;) + U_R(n,j)  EU_R (n, j) = (1 - a) EU_R (n - 1,;) + U_R (n, j)
où : or :
EU_R ( - lj) désigne une valeur évaluée à un instant précédent de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur par cette tâche informatique Tj ; et  EU_R (- lj) designates a value evaluated at a previous instant of the estimation of the quantity already used of the computing resource on the server by this computing task Tj; and
■ est un facteur réel compris entre 0 et 1 ;  ■ is a real factor between 0 and 1;
o une deuxième étape d'évaluation de la valeur courante notée EU_R(n) de l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur selon l'équation : EU_R(n) = ^ EU_R(n,j) ou selon l'équation : EU_R(n) = max U_R(n,j)a second step of evaluating the current value denoted EU_R (n) of the estimate of the quantity already used of the computing resource on the server according to the equation: EU_R (n) = ^ EU_R (n, j) or according to the equation: EU_R (n) = max U_R (n, j)
Figure imgf000031_0001
Figure imgf000031_0001
où J désigne le nombre de tâches informatiques positionnées sur le serveur par le dispositif de gestion du cluster au moment de la deuxième étape d'évaluation.  where J denotes the number of computer tasks set on the server by the cluster management device at the time of the second evaluation step.
7. Procédé de mise à jour selon la revendication 1 dans lequel la variable V mise à jour est l'estimation EU_R de la quantité déjà utilisée de la ressource informatique sur le serveur, et si l'événement détecté est l'obtention de la mesure de l'utilisation réelle courante de la ressource informatique sur le serveur, ladite valeur courante notée EU_R(n) de la variable V est mise à jour selon l'équation : The updating method according to claim 1, wherein the updated variable V is the EU_R estimate of the amount already used of the computing resource on the server, and if the detected event is obtaining the measure. of the actual current use of the computing resource on the server, said current value denoted EU_R (n) of the variable V is updated according to the equation:
EU_R(n) = U_R(n) + DR_R(n)  EU_R (n) = U_R (n) + DR_R (n)
où U_R(n) désigne une mesure courante de l'utilisation réelle de la ressource informatique sur le serveur, et DR_R(n) désigne une valeur courante d'une quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur. where U_R (n) denotes a current measure of the actual use of the computing resource on the server, and DR_R (n) denotes a current value of a quantity of the computing resource reserved for at least one computing task by the computing device. management on the server.
8. Procédé de mise à jour selon la revendication 7 comprenant en outre : — une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur est obtenue selon l'équation : 8. Update method according to claim 7, further comprising: a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for at least one computer task by the management device; the server is obtained according to the equation:
DR_R(n) = (1 - )DR_R(n - 1)  DR_R (n) = (1 -) DR_R (n - 1)
où β désigne un facteur réel compris entre 0 et 1 et DR_R(n - 1) désigne une quantité de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent ;  where β denotes a real factor of between 0 and 1 and DR_R (n - 1) denotes an amount of the computer resource reserved by the management device on the server obtained at a previous instant;
— une étape de détection (G10) de la mise à jour (UPD-D) de la valeur courante DR_R(n) ; et A step of detecting (G10) the update (UPD-D) of the current value DR_R (n); and
— une étape de mise à jour (G40) de la valeur courante de la variable EU_R selon l'équation : A step of updating (G40) the current value of the variable EU_R according to the equation:
EU_R(n) = U_R(n) + DR_R(n).  EU_R (n) = U_R (n) + DR_R (n).
9. Procédé de mise à jour selon la revendication 7 ou 8 comprenant en outre : The updating method of claim 7 or 8 further comprising:
— si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité R_R_Tnew de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Tnew et une quantité DR_R(n - 1) de la ressource informatique réservée par le dispositif de gestion sur le serveur obtenue à un instant précédent, If the detected event is a reservation by the management device for a computer task of a quantity R_R_Tnew of the computer resource on the server, a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for at least one computer task by the management device on the server using said quantity R_R_Tnew and a quantity DR_R (n - 1) of the computer resource reserved by the management device on the server obtained at a previous instant,
— si l'événement détecté est une libération par une tâche informatique d'une quantité R_R_Told de la ressource informatique sur le serveur, une étape de mise à jour de la valeur courante DR_R(n) de la quantité de la ressource informatique réservée pour au moins une tâche informatique par le dispositif de gestion sur le serveur utilisant ladite quantité R_R_Told et la quantité DR_R(n - 1) ;  If the detected event is a release by a computer task of a quantity R_R_Told of the computing resource on the server, a step of updating the current value DR_R (n) of the quantity of the computer resource reserved for the at least one computer task by the management device on the server using said quantity R_R_Told and the quantity DR_R (n - 1);
et dans lequel ladite mise à jour de la valeur courante de la variable EU_R utilise ladite quantité de la ressource informatique réservée selon l'équation : and wherein said update of the current value of the variable EU_R uses said amount of the reserved computer resource according to the equation:
EU_R(n) = U_R(n) + DR_R(n).  EU_R (n) = U_R (n) + DR_R (n).
10. Procédé de gestion de tâches informatiques comprenant, sur réception (E10) par un dispositif (3) de gestion d'un cluster (2) de serveurs (S1,S2,...,SK) d'une requête (REQ(T,R_R_T)) d'exécution d'une tâche informatique (T), cette tâche informatique étant associée à une quantité prédéterminée (R_R_T) d'une ressource informatique (R) requise initialement pour son exécution : 10. A method for managing computer tasks comprising, on reception (E10) by a device (3) for managing a server cluster (2) (S1, S2, ..., SK) of a request (REQ ( T, R_R_T)) execution of a computer task (T), this computer task being associated with a predetermined quantity (R_R_T) of a computer resource (R) initially required for its execution:
— une étape de détermination (E40), par le dispositif de gestion du cluster, d'au moins un serveur du cluster apte à exécuter la tâche informatique, cette étape de détermination utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;  A step of determining (E40), by the cluster management device, at least one server of the cluster capable of executing the computer task, this determining step using the predetermined quantity of the computer resource initially required for the execution the computing task, a maximum server capacity for the computing resource and an estimate of an already used amount of the computing resource on the server;
— une étape de sélection (E70), par le dispositif de gestion du cluster, d'un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé ;  A step of selecting (E70), by the cluster management device, a server for executing the computer task among said at least one server of the determined cluster;
ledit procédé étant caractérisé en ce que, pour au moins un serveur du cluster, au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique est mise à jour conformément à un procédé de mise à jour selon l'une quelconque des revendications 1 à 9. said method being characterized in that, for at least one server of the cluster, at least one current value of a variable rated V selected from the estimate of the amount already used of the computing resource on the server and the maximum capacity of the server for the computer resource is updated according to an updating method according to any one of claims 1 to 9.
11. Procédé de gestion selon la revendication 10 dans lequel le procédé de mise à jour est mis en œuvre par le dispositif (3) de gestion du cluster. 11. Management method according to claim 10 wherein the update process is implemented by the device (3) for managing the cluster.
12. Procédé de gestion selon la revendication 10 dans lequel le procédé de mise à jour est mis en œuvre par ledit au moins un serveur (Sk), ledit procédé de gestion comprenant en outre une étape de transmission de ladite valeur courante de la variable V mise à jour par ledit au moins un serveur au dispositif de gestion du cluster. 12. Management method according to claim 10 wherein the updating method is implemented by said at least one server (Sk), said management method further comprising a step of transmitting said current value of the variable V updated by said at least one server to the cluster management device.
13. Programme d'ordinateur (PROG) comportant des instructions pour l'exécution des étapes du procédé de mise à jour selon l'une quelconque des revendications 1 à 9 ou des instructions pour l'exécution des étapes du procédé de gestion selon la revendication 10 lorsque ledit programme est exécuté par un ordinateur. Computer program (PROG) comprising instructions for performing the steps of the updating method according to any one of claims 1 to 9 or instructions for carrying out the steps of the management method according to the claim When said program is executed by a computer.
14. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de mise à jour selon l'une quelconque des revendications 1 à 9 ou des instructions pour l'exécution des étapes du procédé de gestion selon la revendication 10. 14. A computer-readable recording medium on which is recorded a computer program comprising instructions for performing the steps of the updating method according to any one of claims 1 to 9 or instructions for the execution of the steps of the management method according to claim 10.
15. Dispositif de gestion (3) d'un cluster (2) de serveurs (S1,...,SK) comprenant :15. Device for managing (3) a server cluster (2) (S1, ..., SK) comprising:
— un module (3A) de réception ; A receiving module (3A);
— un module (3B) de détermination, activé sur réception par le module de réception d'une requête d'exécution d'une tâche informatique, ladite tâche informatique étant associée à une quantité prédéterminée d'une ressource informatique requise initialement pour son exécution, le module de détermination étant configuré pour déterminer au moins un serveur du cluster apte à exécuter la tâche informatique en utilisant la quantité prédéterminée de la ressource informatique requise initialement pour l'exécution de la tâche informatique, une capacité maximale du serveur pour la ressource informatique et une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur ;  A module (3B) for determining, activated on reception by the reception module of a request for execution of a computer task, said computer task being associated with a predetermined quantity of a computer resource initially required for its execution, the determination module being configured to determine at least one cluster server capable of performing the computing task using the predetermined amount of the IT resource initially required for the execution of the computing task, a maximum server capacity for the computing resource and an estimate of an already used amount of the computing resource on the server;
— un module (3C) de sélection configuré pour sélectionner un serveur pour exécuter la tâche informatique parmi ledit au moins un serveur du cluster déterminé par le module de détermination ;  A selection module (3C) configured to select a server to execute the computer task among said at least one server of the cluster determined by the determination module;
ledit dispositif de gestion étant caractérisé en ce qu'il comprend en outre : said management device being characterized in that it further comprises:
— un module de détection configuré pour détecter un ensemble prédéfini d'événements ; etA detection module configured to detect a predefined set of events; and
— un module de mise à jour activé pour au moins un serveur du cluster, et configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi l'estimation de la quantité déjà utilisée de la ressource informatique sur le serveur et la capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection d'un événement parmi l'ensemble prédéfini d'événements par le module de détection, et configuré pour : An update module activated for at least one server of the cluster, and configured to update at least one current value of a variable rated V chosen from the estimate of the quantity already used of the computing resource on the server and the maximum capacity of the server for the computing resource, said update module being activated on each detection of an event among the predefined set of events by the detection module, and configured to:
o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;  o if the detected event is to obtain a measurement (U_R (n)) of a current real use of the computer resource on the server, update the current value of the variable V using said measure of the actual actual use of the computing resource on the server;
o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et o if the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, update the current value of the variable V using said amount of the reserved computer resource; and
o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique libérée.  o if the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V using said amount of the released computing resource.
16. Serveur (Sk) appartenant à un cluster (2) de serveurs géré par un dispositif (3) de gestion, ledit serveur étant apte à exécuter au moins une tâche informatique gérée par ledit dispositif de gestion, ladite au moins une tâche informatique utilisant lors de son exécution au moins une ressource informatique du serveur, ledit serveur comprenant : 16. Server (Sk) belonging to a cluster (2) of servers managed by a management device (3), said server being able to execute at least one computer task managed by said management device, said at least one computer task using when executing at least one computer resource of the server, said server comprising:
— un module de mesure configuré pour mesurer une utilisation réelle de la ressource informatique sur le serveur ;  A measurement module configured to measure a real use of the computer resource on the server;
— un module de détection configuré pour détecter un ensemble prédéfini d'événements ; et A detection module configured to detect a predefined set of events; and
— un module de mise à jour configuré pour mettre à jour au moins une valeur courante d'une variable notée V choisie parmi une estimation d'une quantité déjà utilisée de la ressource informatique sur le serveur et une capacité maximale du serveur pour la ressource informatique, ledit module de mise à jour étant activé sur chaque détection par le module de détection d'un événement parmi l'ensemble prédéfini d'événements et configuré pour : An update module configured to update at least one current value of a variable rated V selected from an estimate of an already used quantity of the computing resource on the server and a maximum capacity of the server for the computing resource , said update module being activated on each detection by the detection module of an event among the predefined set of events and configured to:
o si l'événement détecté est une obtention d'une mesure (U_R(n)) d'une utilisation réelle courante de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite mesure de l'utilisation réelle courante de la ressource informatique sur le serveur ;  o if the detected event is to obtain a measurement (U_R (n)) of a current real use of the computer resource on the server, update the current value of the variable V using said measure of the actual actual use of the computing resource on the server;
o si l'événement détecté est une réservation par le dispositif de gestion pour une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique réservée ; et  o if the detected event is a reservation by the management device for a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the reserved computer resource; and
o si l'événement détecté est une libération par une tâche informatique d'une quantité de la ressource informatique sur le serveur, mettre à jour la valeur courante de la variable V en utilisant ladite quantité de la ressource informatique libérée ; et  o if the detected event is a release by a computer task of a quantity of the computing resource on the server, updating the current value of the variable V by using said quantity of the released computing resource; and
— un module de transmission, configuré pour transmettre au dispositif de gestion ladite valeur courante de la variable V mise à jour. A transmission module, configured to transmit to the management device said current value of the updated variable V.
17. Système informatique (1) comprenant : Computer system (1) comprising:
— un cluster (2) de serveurs comprenant une pluralité de serveurs, chaque serveur comprenant au moins une ressource informatique permettant l'exécution de tâches informatiques ;  A cluster (2) of servers comprising a plurality of servers, each server comprising at least one computer resource allowing the execution of computer tasks;
— un dispositif (3) de gestion du cluster de serveurs ;  A device (3) for managing the server cluster;
dans lequel ledit dispositif de gestion du cluster est conforme à la revendication 15 et/ou au moins un serveur du cluster est conforme à la revendication 16. wherein said cluster management device is in accordance with claim 15 and / or at least one server of the cluster is in accordance with claim 16.
PCT/FR2017/053585 2016-12-16 2017-12-14 Method and device for updating WO2018109407A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1662694A FR3060791B1 (en) 2016-12-16 2016-12-16 UPDATE METHOD AND DEVICE
FR1662694 2016-12-16

Publications (1)

Publication Number Publication Date
WO2018109407A1 true WO2018109407A1 (en) 2018-06-21

Family

ID=58669884

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2017/053585 WO2018109407A1 (en) 2016-12-16 2017-12-14 Method and device for updating

Country Status (2)

Country Link
FR (1) FR3060791B1 (en)
WO (1) WO2018109407A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324872A (en) * 2018-09-21 2019-02-12 张家口浩扬科技有限公司 The method and system that the request that a kind of pair of virtual machine changes is verified

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066331A1 (en) * 2003-09-19 2005-03-24 Shuji Inoue Dynamic resource management for distributed retrieval system for security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066331A1 (en) * 2003-09-19 2005-03-24 Shuji Inoue Dynamic resource management for distributed retrieval system for security

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YAO YI ET AL: "OpERA: Opportunistic and Efficient Resource Allocation in Hadoop YARN by Harnessing Idle Resources", 2016 25TH INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION AND NETWORKS (ICCCN), IEEE, 1 August 2016 (2016-08-01), pages 1 - 9, XP032961038, DOI: 10.1109/ICCCN.2016.7568553 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324872A (en) * 2018-09-21 2019-02-12 张家口浩扬科技有限公司 The method and system that the request that a kind of pair of virtual machine changes is verified
CN109324872B (en) * 2018-09-21 2020-12-25 北京隆普智能科技有限公司 Method and system for verifying virtual machine change request

Also Published As

Publication number Publication date
FR3060791A1 (en) 2018-06-22
FR3060791B1 (en) 2020-02-28

Similar Documents

Publication Publication Date Title
EP2314018B1 (en) Method for communicating between a plurality of nodes
FR3119060A1 (en) DYNAMIC APPLICATION INTERFACE BASED ON BOTTOM-UP INTENT
EP3338409A1 (en) Method for dynamically managing a network service in a communication network
WO2018109407A1 (en) Method and device for updating
WO2021260312A1 (en) Method for scheduling tasks in a processing system, associated scheduling device
EP2667302B1 (en) Method for managing the starting of instances of applications on virtual machines of a distributed network
WO2016198762A1 (en) Method and system for determining a target configuration of servers for deployment of a software application
FR2995424A1 (en) METHOD AND DEVICE FOR DEPTH TIME DEPTH FOR A PROCESSING UNIT IN AN INFORMATION PROCESSING SYSTEM
FR3078462A1 (en) METHOD AND DEVICE FOR CONTROLLING ACCESS TO A RESOURCE OF A COMPUTER SYSTEM BY SOFTWARE APPLICATIONS
EP2497235B1 (en) Diagnostic tool for broadband networks
EP3539259B1 (en) Method and device for updating a predictive model of a variable relating to a mobile terminal
FR3064772A1 (en) METHOD FOR ASSISTING DETECTION OF SERVICES DENIS ATTACKS
EP2798498B1 (en) Performance measurement of a computing infrastructure
EP2706753B1 (en) Technique for processing a content distribution request
FR2992809A1 (en) Method for estimating quality of experience of user with respect to e.g. watching of real-time video, involves providing parameters related to context and quality of service of connection of terminal to network independent of service
FR2854753A1 (en) Low resolution version digital document archiving method for use in multi-resolution digital document distribution system server, involves sending request to processing system destination for obtaining low resolution version of document
WO2011151569A1 (en) Method of pseudo-dynamic routing in a cluster comprising static communication links and computer program implementing this method
EP3437406B1 (en) Method for managing the allocation of carrier frequencies
EP4113297A1 (en) Method for managing work in a computer system and associated system
EP2860630A1 (en) Data transfer method in a dynamic environment
EP3228070B1 (en) Method of managing contents in a contents distribution network
FR3118247A1 (en) Method for training an artificial neural network to identify digital usage, and related system
FR3065824A1 (en) METHOD FOR PROCESSING BY SUPERVISION DEVICE ACQUIRED AND TRANSMITTED DATA BY A SENSOR
FR2812099A1 (en) Self-regulation in an information system of consumption of computing resources by a program, uses monitoring agent measuring resource usage and using a resource use model to predict where demand will occur
FR3140229A1 (en) Method, device and system for selecting at least one device capable of hosting a process of an application

Legal Events

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

Ref document number: 17822427

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17822427

Country of ref document: EP

Kind code of ref document: A1