WO2021260312A1 - Procédé d'ordonnancement de tâches dans un système de traitement, dispositif d'ordonnancement associé - Google Patents
Procédé d'ordonnancement de tâches dans un système de traitement, dispositif d'ordonnancement associé Download PDFInfo
- Publication number
- WO2021260312A1 WO2021260312A1 PCT/FR2021/051120 FR2021051120W WO2021260312A1 WO 2021260312 A1 WO2021260312 A1 WO 2021260312A1 FR 2021051120 W FR2021051120 W FR 2021051120W WO 2021260312 A1 WO2021260312 A1 WO 2021260312A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- execution
- processing system
- scheduling
- tasks
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 204
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 132
- 238000005259 measurement Methods 0.000 claims description 65
- 238000013508 migration Methods 0.000 claims description 27
- 230000005012 migration Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 24
- 238000013400 design of experiment Methods 0.000 claims description 13
- 241000257303 Hymenoptera Species 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 239000003016 pheromone Substances 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 7
- 230000004807 localization Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 32
- 230000014509 gene expression Effects 0.000 description 13
- 238000002474 experimental method Methods 0.000 description 12
- 238000005457 optimization Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000035945 sensitivity Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013401 experimental design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001704 evaporation Methods 0.000 description 1
- 230000008020 evaporation Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000003875 gradient-accelerated spectroscopy Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Definitions
- the present invention belongs to the general field of the scheduling of tasks, such as for example computer tasks, industrial tasks, etc. It relates more particularly to a method of scheduling at least one task in a processing system configured to execute said at least one task. It also relates to a scheduling device configured to implement such a method.
- the invention finds a particularly advantageous application, although in no way limiting, in the context of the scheduling of applications for measuring the state of a communication network or the quality of a service supported by said communication network. , each measurement application being for example integrated into a container.
- processing system By “processing system”, reference is made here to a plurality of processors which can be distributed between one or more processing devices belonging to a computer system, each processing device being configured in a hardware and software manner to execute one or more several computer tasks that have been transmitted to him.
- a processing device can correspond for example to a computer, server, router, and more generally any network equipment, etc.
- said processing device (s) forming the processing system can belong to one or more communication networks and can be grouped together in clusters within a data center (“datacenter” in the English literature).
- the scheduling of a task in a processing system refers to the fact of assigning (ie assigning) to said task, with a view to its execution and as a function of any attributes associated with it (date of execution, duration of execution, etc.):
- a task can conventionally refer to a unit task corresponding to one of the stages of the implementation of an application process, or even in an equally conventional manner, and according to a definition more generally, to all the unit tasks involved in this application process.
- the application process whose task or tasks must be scheduled can for example result from the use by a company, by an individual, etc. of a software application.
- Measurement applications are typically used by network administrators and which make it possible to measure the state of a communication network (monitoring of the bandwidth, latency in the transmission of information packets, etc.) or the quality of a service supported by said communication network.
- Such measurement applications are today often deployed in virtualized processing systems (virtualization platform, virtual machine, IT container, etc.) using scheduling techniques, as is for example detailed in the following document: “Enhanced edf scheduling algorithms for orchestrating network-wide active measurements”, P. Calyam, C.-G. Lee, P. K. Arava, and D. Krymskiy, in 26th IEEE International Real-Time Systems Symposium (RTSS'05). IEEE, 2005.
- scheduling techniques capable of taking these characteristics into account, subject however to allocating processing resources. only over long periods of time (weeks or months), thus causing a lack of responsiveness which proves to be problematic in view of the ever more intensive use of the applications in question.
- scheduling techniques have also been proposed which are able to deal more reactively with the demands imposed by applications, in particular via the implementation of dynamic reallocations (migrations) between processing devices.
- migrations dynamic reallocations
- the object of the present invention is to remedy all or part of the drawbacks of the prior art, in particular those set out above, by proposing a solution which makes it possible to reactively schedule one or more tasks in a system of treatment, this solution also being simpler to implement than the solutions of the prior art.
- the solution proposed by the invention is particularly suited to the scheduling of tasks executed thanks to one or more measurement applications in a virtualized environment (each application being able for example to be integrated into a container), it does not It remains nonetheless applicable to the scheduling of any type of task in a virtualized or non-virtualized environment (eg IT tasks, industrial tasks, etc.).
- the invention relates to a method of scheduling at least one task in a processing system configured to execute said at least one task.
- Said method comprises, for a first set of tasks associated with the processing system, a step of determining values of execution parameters of a metaheuristic algorithm configured to schedule, in said processing system, at least one task associated with said processing system. processing by optimizing an objective function.
- the method further comprises, for at least a second set of tasks associated with said processing system, a scheduling step comprising:
- the solution proposed by the invention for scheduling one or more tasks (for example measurement tasks) in the processing system is based on a metaheuristic algorithm.
- set of tasks reference is made to a set which may include one or more tasks.
- this expression “set of tasks” is, within the meaning of the present invention, equivalent to the expression “set comprising at least one task”.
- the search for a scheduling solution for one or more tasks in the processing system is in the form of a highly constrained problem for which it is particularly advantageous to have recourse to an algorithm.
- metaheuristic Indeed, such an optimization algorithm adopts a search behavior within a space called "search space" (for example a graph in the case of an ant algorithm) with a view to learning the characteristics. of the problem to which a solution is sought. The inventors have therefore noted that such behavior was particularly appropriate in the context of the search for a solution to the scheduling problem.
- a metaheuristic algorithm is configured by means of one or more execution parameters.
- the values assigned to these execution parameters more precisely determine the search behavior adopted by the metaheuristic algorithm.
- An appropriate choice of said values makes it possible for example to minimize the risk of absence of convergence of the metaheuristic algorithm (example: to avoid convergence only towards local optima) but also to minimize certain defects inherent in the operation of the latter (example: possible lack of robustness with respect to disturbances of said execution parameters).
- the method according to the invention therefore proposes to determine the values of the execution parameters of the metaheuristic algorithm, thus offering the possibility of parameterizing the behavior of the latter as accurately as possible, in particular to avoid faults such as those mentioned. above.
- the method according to the invention offers the possibility of controlling the operation of the metaheuristic algorithm, and therefore ultimately the way in which solutions are sought. scheduling tasks associated with the processing system (for example which have been submitted to it for scheduling).
- the scheduling step is implemented for at least a second set of tasks, which offers the possibility of executing the metaheuristic algorithm iteratively as soon as one or more tasks are newly associated with the system. treatment.
- Such arrangements are advantageous in that they make it possible to schedule the tasks on a recurring basis, thus leading to a particularly reactive solution.
- the scheduling method may further include one or more of the following characteristics, taken in isolation or in any technically possible combination.
- each task is associated with a desired execution date, and, for each candidate scheduling found by the metaheuristic algorithm, with a time limit, known as the “actual execution time”, representative of the duration according to which the execution of said task is deferred with respect to said desired execution date, said objective function comprising a term equal to the sum of the effective execution times respectively associated with the tasks taken into account by the metaheuristic algorithm, said term being intended to be minimized by said metaheuristic algorithm.
- the processing system comprises a plurality of processors
- each task is associated with an attribute "said localization constraint" defining at least one processor among said plurality of processors, so that said task is intended to be executed by any processor among said at least one processor defined by said constraint of location,
- the metaheuristic algorithm is configured so as to authorize the migration of each task between processors defined by the location constraint attached to said task, said objective function comprising a term equal to a number of task migrations taken into account by the metaheuristic algorithm, said term being intended to be minimized by said metaheuristic algorithm.
- migration of a task reference is made here to the fact that a task can be assigned, for a first time interval, to a first processor belonging to the processors defined by the location constraint attached to this task. , then, for a second time interval subsequent to said first time interval, to a second processor belonging to the processors defined by the location constraint attached to this task.
- minimization of this term of the objective function amounts to minimizing the complexity of the scheduling solution likely to be provided by the metaheuristic algorithm, and therefore also to minimizing the resources used by the processing system .
- the minimization of this term also amounts, in a manner similar to what was mentioned above for the case of a term equal to the sum of the actual execution times, to minimizing the risk that at least one task cannot be not be executed on time (a migration is indeed time consuming, and a task cannot be executed during its migration between two processing devices).
- the values of execution parameters are determined by means of an algorithm implementing a design of experiments method parameterized by said objective function.
- a design of experiments method refers to an ordered series of tests, each of these tests making it possible to acquire new knowledge as to the operation (behavior) of the metaheuristic algorithm on which s' supports said design of experiments method, this knowledge being acquired with respect to the parameters which characterize said metaheuristic algorithm.
- each test corresponds to an experiment (ie an implementation) of said metaheuristic algorithm for a given set of values of execution parameters, one of the objects of the design of experiments method then being to understand how variations in these parameters influence the behavior of the metaheuristic algorithm. It should be noted that the behavior of the metaheuristic algorithm is evaluated with regard to the value taken by the objective function during the various experiments.
- improvement of the robustness one refers here to the minimization of the sensitivity of the metaheuristic algorithm with respect to variations of its execution parameters (these variations being able to follow disturbances of the system. processing, such as for example: delay in the effective transmission of a task, failure of a processing device thus modifying the location constraints, etc.).
- improving the robustness of an algorithm amounts, on the one hand, to guaranteeing the continuity of the solutions provided by such a metaheuristic algorithm with respect to the execution parameters (the objective is to avoid that values very close to the execution parameters lead to solutions completely different scheduling), but also, on the other hand, to maintain a level of performance despite the occurrence of disturbances.
- said design of experiments method is the Taguchi method.
- said Taguchi method is a statistical method making it possible to carry out experimental designs having the objective of reducing the sensitivity to external disturbances of an algorithm which is the subject of said experiments.
- This method provides a simple and systematic approach for determining optimal values of the execution parameters of said algorithm, so as to optimize their robustness.
- the meta heuristic algorithm is an ant colony algorithm implemented from a graph, each node of which corresponds to a scheduling of a task in the processing system.
- the execution parameters include a parameter making it possible to control a minimum quantity of pheromones which can be associated with a node.
- the use of such a parameter is advantageous in that it makes it possible to avoid the stagnation of the ant algorithm at the start of its implementation by promoting the diversification of the paths traveled by the ants as well as 'by avoiding convergence towards a local optimum. It is noted that the quantity of pheromones associated with a node depends on a quantity which can be deposited and / or evaporate during the passage of an ant over said node.
- said at least one task removed during said update is the task whose association with the processing system is the most recent among the tasks of said at least one second set of tasks .
- the scheduling step is implemented as soon as M tasks are newly associated with the processing system with respect to the previous implementation of said scheduling step, M being an integer greater than or equal to 1.
- the determination step is iterated recurrently so as to update the values of said execution parameters.
- a task corresponds to a measurement of the state of a communication network to which at least part of the processing system belongs or of the quality of a service supported by said network. Communication.
- Each task can be executed, for example, by means of a measurement application integrated into a container.
- the invention relates to a computer program comprising instructions for the implementation of a scheduling method according to the invention when said computer program is executed by a computer.
- This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in n ' any other desirable shape.
- the invention relates to an information or recording medium readable by a computer on which a computer program according to the invention is recorded.
- the information or recording medium can be any entity or device capable of storing the program.
- the medium may include a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a floppy disk or a disk. hard.
- the information or recording medium can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means.
- the program according to the invention can in particular be downloaded from an Internet type network.
- the information or recording medium can 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 relates to a device for scheduling at least one task in a processing system configured to execute said at least one task, said scheduling device comprising a determination module configured to determine , for a first set of tasks associated with the processing system, values of execution parameters of a metaheuristic algorithm configured to schedule, in said processing system, at least one task associated with said processing system by optimizing an objective function.
- Said scheduling device further comprises a scheduling module comprising:
- an execution sub-module configured to execute the metaheuristic algorithm parameterized by said values for at least a second set of tasks associated with said processing system, a verification sub-module configured to check whether or not a stopping criterion is reached at the end of an execution of the meta heuristic algorithm implemented by said execution sub-module for said at least one second together,
- an update sub-module configured to update said at least one second set, by removing at least one task from said at least one second set, when said stopping criterion is not reached.
- the invention relates to a computer system comprising a scheduling device according to the invention as well as a processing system configured to execute at least one task intended to be scheduled by said scheduling device.
- the invention relates to a method of executing at least one task by a processing system configured to execute said at least one task.
- Said method of execution comprises:
- FIG. 1 schematically represents, in its environment, a particular embodiment of a computer system according to the invention
- FIG. 2 schematically represents an example of the hardware architecture of a scheduling device 12 according to the invention belonging to the computer system 10 of FIG. 1;
- FIG. 3 represents, in the form of a flowchart, a particular mode of implementation of a scheduling method according to the invention by the scheduling device 12 of FIG. 2;
- FIG. 4 represents a table TAB of values of execution parameters of an ant algorithm used in an example of implementation of the scheduling method
- FIG. 5 represents a matrix L25 of a Taguchi method used in said exemplary implementation
- FIG. 6 schematically represents an example of implementation of an execution method according to the invention. Description of the embodiments
- FIG. 1 schematically shows, in its environment, a particular embodiment of a computer system 10 according to the invention.
- the computer system 10 comprises a processing system 11.
- Said processing system 11 is for example deployed in a virtualized environment, a user can have access to the latter by logging on. to a virtualization platform of a type known per se by means of a terminal (laptop, PC, tablet, etc.) in the possession of said user.
- the processing system 11 is deployed in a non-virtualized environment, so that a user can have access to it without it being necessary for the latter to connect to a virtualization platform.
- the processing system 11 is further configured to perform at least one task.
- said processing system 11 comprises a plurality of processing devices 11 J (i being an integer greater than 1).
- Said ll_i processing devices belong to a communication network (not illustrated in Figure 1) on which they can rely to communicate with each other.
- said communication network may correspond to a LAN (Local Area Network), WAN (Wide Area Network), WLAN (Wireless LAN), Internet, etc.
- LAN Local Area Network
- WAN Wide Area Network
- WLAN Wireless LAN
- Internet etc.
- the nature of said communication network is not a limiting factor of the invention, since the processing devices 11 J can exchange data with each other, this data possibly taking the form of a software application, such as for example a measurement application.
- processing devices 11 J belong to one and the same communication network, nothing excludes considering a distribution of said processing devices ll_i between several separate communication networks between them, said communication networks therefore being connected to each other in a manner known per se to allow the processing devices 11 J to exchange data.
- Said processing devices ll_i are configured to perform one or more tasks which are associated with the processing system 11.
- task associated with the processing system 11 reference is made here to the fact that a request has been sent, for example by a user, so that said task is executed by said processing system 11, that is to say by one of the processing devices II_i belonging to said system 11.
- each processing device 11 J comprises for example one or more processors and storage means (magnetic hard disk, electronic memory, optical disc, etc.) in which data and a computer program are stored, in the form of a set of program code instructions to be executed in order to implement a method of executing the or tasks which have been transmitted to said processing device ll_i.
- processors and storage means magnetic hard disk, electronic memory, optical disc, etc.
- each processing device 11 J also comprises one or more programmable logic circuits, of the FPGA, PLD, etc. type, and / or specialized integrated circuits (ASIC), and / or a set of electronic components discrete, etc. adapted to implement said execution method.
- programmable logic circuits of the FPGA, PLD, etc. type, and / or specialized integrated circuits (ASIC), and / or a set of electronic components discrete, etc. adapted to implement said execution method.
- each processing device 11 J comprises a set of means configured in software (specific computer program) and / or hardware (FPGA, PLD, ASIC, etc.) to implement said means. execution process.
- the processing devices 11 J can include one or more processors. It may be network equipment, such as for example servers, mobile terminals, such as for example a telephone of the “smartphone” type, a PC, a laptop computer, a tablet, etc. In general, no limitation is attached to the nature of said processing devices 11 J since the latter are able to perform the tasks which have been transmitted to them.
- a task can refer to a unit task corresponding to one of the steps of the implementation of an application method, this application method can be of any type (industrial control method, for example controlling the operation of a machine; method of processing data, for example stock market data; method of processing audio or video streams, for example in the case of audio / video coding or classification; etc.). It is therefore understood that the nature of a task results from the nature of the application process with which said task is associated. As a result, a task can be IT, industrial, etc. Within the meaning of the present invention, no limitation is attached to the nature of the tasks intended to be executed by the processing system 11.
- a task can designate all the unit tasks involved in the implementation of an application process, in which case reference is made to a so-called “general” task. ".
- an application method grouping together a set of unit tasks can for example result from the use of a software application, so that the general task associated with this application method also designates the software application itself.
- the task is identified with the software application which is dedicated to it.
- Each task is conventionally associated with a desired execution date.
- a desired execution date is for example defined by a user wishing to benefit from the result resulting from the execution of said task on said desired execution date.
- a desired execution date is defined automatically by the application method with which said task is associated.
- each task is associated with a plurality of attributes, these attributes being able to define specific constraints for the execution of said task.
- each task is associated with an attribute defining an earliest execution date of said task. Said earliest execution date therefore designates the first instant in which the execution of the task can take place, taking into account a possible periodicity of execution of said task. It emerges from the foregoing that said execution date at the earliest is lower than the desired execution date.
- each task is associated with an attribute defining a time limit, called "maximum execution time", representative of the maximum time following which the execution of said task can be deferred. in relation to said desired execution date.
- said maximum execution time corresponds to an upper bound of a time margin granted in the execution of the task, thus making it possible to relax the constraint defined by the desired execution date.
- each task is associated with a so-called "location constraint" attribute defining at least one processing device among said plurality of processing devices 11 J, so that said task is intended to be executed by any processing device 11 J among said at least one device defined by said location constraint.
- Said location constraint can define said at least one processing device indirectly, for example by referring to a given geographical area in which said at least one processing device is implemented.
- geographical area in which said at least one processing device is implemented.
- the expression "geographical area” here refers to any type of area delimited in space. No limitation being attached to the delimitation of such a zone within the meaning of the present invention, since it is possible to identify the processing device (s) belonging to said geographical zone.
- said location constraint can define said at least one processing device directly, by example by precisely designating said at least one processing device via an identifier of the latter.
- at least one given processing device is specifically designated (if a geographic area is also designated, then it is a specific processing device for this geographic area).
- this aspect may for example depend on the extent of the communication network, the number of processing devices, user preferences, etc. This being the case, and for reasons of simplification of the description, it is now considered that a location constraint directly defines said at least processing device 11 J from among the plurality of processing devices integrated into the processing system 11, without making reference to other aspects (geographical area, etc.).
- this attribute defines a piece of data making it possible to identify a task among the other tasks. It may for example be an integer, the number assigned to a task newly associated with the processing system 11 possibly being equal to the number of the task previously considered to be the most recent incremented by one unit. In this way, it is possible to define an order relation on all the tasks associated with the processing system 11;
- this attribute defines the periodicity according to which a task is executed
- this attribute defines, for a TA task with which said attribute is associated, the other task or tasks to be executed on the same processing device 11 J as that intended to execute said TA task;
- this attribute defines, for a TA task with which said attribute is associated, the other task (s) not having to be executed on the same processing device II_i as that intended to execute said TA task.
- each measurement task is executed thanks to a measurement application integrated into a container.
- a container is for example already deployed (ie installed) on a processing device II_i, or else, according to another example, is intended to be deployed there following the implementation of a scheduling method according to the invention. .
- migration of a task reference is made here to the fact that a task can be assigned, for a first time interval, to a first processing device 11 J belonging to the devices defined by the location constraint. attached to this task, then, for a second time interval subsequent to said first time interval, to a second processing device 11 J (the index j being different from the index i) belonging to the devices defined by the location constraint attached to this task.
- this process can take a long time, leading to more migrations, knowing that nothing excludes a task from migrating to a device to which it has already been assigned before.
- - C_1 is representative of the identifier of said measurement task, this identifier corresponding to an integer.
- the task identifiers are incremented by one unit according to the chronological order of transmission of said tasks to the processing system 11;
- C_2 and C_3 are respectively representative of the earliest execution date and the latest execution date;
- C_4 are respectively representative of the execution period, the execution time and the maximum execution time
- - C_7, C_8 and C_9 are respectively representative of the computation, memory and bandwidth resources necessary for the execution of said measurement task;
- - C_10, C_ll and C_12 are respectively representative of the computation, memory and bandwidth resources necessary for a migration of said measurement task;
- C_ 13 are respectively representative of identifiers of processing devices 11 J associated with a location constraint (in other words, k - 13 + 1 is less than or equal to the number of processing devices ll_i included in the processing system 11);
- C_ ⁇ k + 1 ⁇ , ..., C_ ⁇ k + j ⁇ are respectively representative of identifiers of measurement tasks associated with an affinity constraint
- C_ ⁇ k + j +1 ⁇ , ..., C_ ⁇ n ⁇ are respectively representative of identifiers of measurement tasks associated with an anti-affinity constraint.
- Said measurement task has as an identifier the number 1. Its execution date at the earliest (respectively at the latest) is equal to 1 (respectively equal to 6). Its execution period, its execution time and its maximum execution time are respectively equal to 3, 2 and 0 (i.e. the execution of this measurement task cannot be shifted in time). Its resources (calculations, memory, bandwidth) for execution are all equal to 60. The resources (calculations, memory, bandwidth) for a migration are all equal to 1.
- said measurement task is associated with a location constraint according to which it must be executed by any one of two processing devices 11_i (here it is more particularly the devices 11_1 and 11_2). Finally, no affinity / anti-affinity constraint is attached to said measurement task.
- the computer system 10 also comprises a scheduling device 12 configured to perform processing making it possible to schedule one or more measurement tasks in the processing system 11, by implementing said scheduling method.
- the scheduling of a measurement task in the processing system 11 refers to the fact of assigning (ie assigning) to said measurement task, with a view to its execution and as a function of the associated attributes to said measurement task:
- the scheduling device 12 according to the invention as well as the scheduling method according to the invention, nevertheless differ from the devices and methods of the state of the art in that they make it possible to schedule reactively (ie with very little latency) one or more tasks in the processing system 11, while being simple to implement.
- FIG. 2 schematically represents an example of the hardware architecture of the scheduling device 12 according to the invention belonging to the computer system 10 of FIG. 1.
- the scheduling device 12 has the hardware architecture of a computer.
- the scheduling device 12 comprises, in particular, a processor 1, a random access memory 2, a read only memory 3 and a non-volatile memory 4. It also comprises a communication module 5.
- the read only memory 3 of the scheduling device 12 constitutes a recording medium according to the invention, readable by the processor 1 and on which is recorded a computer program PROG according to the invention, comprising instructions for the execution of steps of the scheduling method according to the invention.
- the PROG program defines functional modules of the scheduling device 12, which are based on or control the hardware elements 1 to 5 of the scheduling device 12 mentioned above, and which include in particular:
- a MOD_DET determination module configured to determine, for a first set of tasks associated with the processing system 11, values of execution parameters of a metaheuristic algorithm configured to schedule, in said processing system 11, at least one task measurement associated with said processing system 11 by optimizing an objective function
- Said MOD_ORD scheduling module comprises:
- an SS_MOD_EXEC execution sub-module configured to execute the metaheuristic algorithm parameterized by said values for at least a second set of tasks associated with said processing system
- a verification sub-module SS_MOD_VERIF configured to check whether or not a stop criterion CR_STOP is reached at the end of an execution of the metaheuristic algorithm implemented by said execution sub-module for said at least one second set
- an SS_MOD_MAJ update sub-module configured to update said at least one second set, by removing at least one task from said at least one second set, when said stopping criterion is not reached.
- the SS_MOS_EXEC execution and SS_MOD_MAJ update sub-modules are iteratively activated as long as the SS_MOD_VERIF verification sub-module determines that the stopping criterion has not been reached.
- the communication module 5 allows in particular the scheduling device 12 to communicate, via the communication network, with the processing devices 11 J, in particular to transmit to them the measurement tasks to be executed (in other words, in the case of in particular, reference is made to the transmission of the measurement applications respectively associated with said measurement tasks) as well as the dates on which these measurement tasks must be executed in accordance with the result obtained by the scheduling method.
- the communication module 5 comprises a communication interface, wired or wireless, capable of implementing any protocol suitable for the communication network and known to those skilled in the art.
- the scheduling of one or more measurement tasks in the processing system 11, by the scheduling device 12, is based on a metaheuristic algorithm.
- the use of a metaheuristic algorithm is due to the fact that the search for an optimal ordering (ie of an ordering solution optimizing the objective function) turns out to be a particularly complex optimization problem to solve (NP- difficult) .
- This complexity results fundamentally from the very nature of said optimization problem which here depends on the fact that said tasks are conventionally associated with said attributes defining specific constraints for the execution of each of these tasks.
- This complexity inherent in the optimization problem thus posed is of course further increased when the number of tasks to be scheduled in the processing system is large.
- the search for a scheduling solution therefore represents a highly constrained problem.
- the metaheuristic algorithm makes it possible to search for a solution to the scheduling problem in an iterative manner. More particularly, candidate scheduling solutions are determined at each iteration taking place during the execution of the metaheuristic algorithm.
- candidate scheduling solutions are determined at each iteration taking place during the execution of the metaheuristic algorithm.
- candidate scheduling solutions or also “candidate scheduling”
- the final objective of the metaheuristic algorithm therefore consists in finding, among these candidate solutions, the one which optimizes the objective function.
- the notion of optimality of the metaheuristic algorithm is defined with regard to the objective function considered. It is noted that the expression “objective function” is still equivalent to the expression “function (of) cost”.
- each task can also be associated, for each candidate scheduling found by the metaheuristic algorithm, with a time limit, called "effective execution time", representative of the time after which the execution of said task is deferred from said desired execution date.
- an effective execution time therefore corresponds to an actual execution time used in a candidate schedule.
- a task can be associated with as many effective execution times as there are candidate schedules (considering that an effective execution time can be zero), these effective execution times can be distinct from each other. .
- the metaheuristic algorithm is configured so as to authorize the migration of each task (taken into account by the latter) between the devices 11 J of said plurality of processing devices defined by the constraint of location attached to said task.
- the objective function comprises two terms which are summed together.
- said objective function comprises a term equal to the sum of the effective execution times respectively associated with the tasks taken into account by the metaheuristic algorithm, that is to say the tasks which are associated with the system of processing 11 during the execution of said metaheuristic algorithm and which are therefore taken as input to the latter.
- said first term is intended to be minimized by said metaheuristic algorithm. We understand that the minimization of this first term amounts to minimizing the risk that at least one task cannot be executed on time (ie in the time interval whose limits are defined by the execution dates at the earliest and at the latest, while taking into account a possible execution time limited by the maximum execution time).
- the objective function includes a second term equal to a number of migrations of the tasks taken into account by the metaheuristic algorithm (ie the number of migrations of each task taken into account by the metaheuristic algorithm is counted, and we sum the numbers of migrations thus compatibilized), said second term also being intended to be minimized by said metaheuristic algorithm.
- the minimization of this second term amounts to minimizing the complexity of the scheduling solution likely to be provided by the metaheuristic algorithm, and therefore also to minimizing the resources used by the processing system 11.
- the minimization of this term also comes back, once again , to minimize the risk that at least one task cannot be executed in time (a migration in fact consuming time and a task that cannot be executed during its migration between two processing devices 11 J).
- the choice according to which the objective function comprises said two terms constitutes only one variant of implementation of the invention. Thus, nothing excludes the objective function comprising only one of said two terms or more generally any weighted sum of these two terms. It is understood, however, that if the objective function comprises only the second term, it is necessary for the metaheuristic algorithm to be configured so as to authorize the migrations of tasks.
- the objective function comprises one or more terms which differ from the first and second terms, whether said first and second terms are taken into account or not in the objective function.
- the objective function is defined, the latter possibly depending or not on the attributes associated with the tasks capable of being executed by the processing system 11, but also on possible constraints. execution which can be attached to said processing system 11 (limitation of the computational load, maximization of the number of tasks to be executed between two given dates, etc.).
- the metaheuristic algorithm used to schedule the task (s) associated with the processing system 11 is an ant colony algorithm.
- such an ant colony algorithm is considered to be a population metaheuristic, where each solution capable of being provided is represented by an ant moving in a search space that can be modeled by means of 'a graph.
- the ants move within said graph by marking the best solutions (the term "best" here characterizing the solutions which tend towards optimality measured by means of the objective function) by means of pheromones, and taking into account the markings previously performed to optimize their search.
- the graph within which the ants are intended to move is a graph of which each node corresponds to the scheduling of a task in the processing system 11. More particularly, and given in view of the fact that the processing system 11 comprises a plurality of processing devices 11 J in accordance with the present embodiment, each node of the graph corresponds to the assignment (ie the assignment) to a given task of at least one of said 11 J devices (a plurality of devices that can be assigned if migrations are planned) as well as a date execution (the execution of the task can possibly be repeated if it is associated with an execution period).
- an ant colony algorithm can be implemented according to different variants, in particular a variant called “MMAS” (acronym of the Anglo-Saxon expression “Max-Min Ant System”), a variant called “ACS” (acronym of the Anglo-Saxon expression “Ant Colony System”), etc. which can finally all be grouped together in a category called “ACO” (acronym of the English expression “Ant Colony Optimization”).
- MMAS acronym of the Anglo-Saxon expression "Max-Min Ant System”
- ACS cronym of the Anglo-Saxon expression "Ant Colony System”
- ACO acronym of the English expression “Ant Colony Optimization”.
- Such variants are well known to those skilled in the art and are for example described in the document: “Ant colony optimization”, Dorigo M., Stutzle T., MIT Press, Cambridge, MA, 2004.
- the ACS ant algorithm implemented in the context of the present invention is conventionally configured by means of various execution parameters which include, in particular:
- this parameter makes it possible to control the relative importance of the pheromones in the choice of a path during the course of the graph;
- this parameter is also called “visibility” in the state of the art and makes it possible to control the importance given to the choice of a node when an ants is positioned on another node. In other words, this parameter controls the relative importance of the heuristic information in the choice of a path during the course of the graph;
- this parameter is used to control the relative importance given to the intensification or diversification of the search for a solution when browsing the graph. It is a random variable uniformly distributed between 0 and 1;
- this parameter makes it possible to control the quantity of pheromones evaporated on the nodes at each iteration;
- this parameter defines the number of ants exploring the graph.
- the ACS algorithm used for the scheduling is also parameterized by means of an execution parameter min_eva making it possible to control a minimum quantity of pheromones which can be associated with a node (by deposit and / or evaporation during the passage of an ant over said node).
- an execution parameter min_eva is optional, and is shown to be advantageous in that it makes it possible to avoid the stagnation of the ACS algorithm at the start of its implementation by favoring the diversification of the paths traveled by the ants as well as by avoiding a convergence towards a local optimum.
- the invention is described here by considering that the ant algorithm is of the ACS type, it should however be noted that it remains applicable whatever the variant of the ant algorithm considered.
- the choice consisting in considering an ant algorithm as a metaheuristic algorithm constitutes only one example of implementation of the invention. Indeed, the invention remains applicable whatever the metaheuristic algorithm considered, the latter being in all cases parameterized by means of various execution parameters.
- it can be a simulated annealing algorithm, a GRASP algorithm (acronym of the English expression "Greedy Randomized Adaptive Search Procedure"), an evolutionary algorithm (example: genetic algorithm) , etc.
- GRASP algorithm acronym of the English expression "Greedy Randomized Adaptive Search Procedure”
- an evolutionary algorithm example: genetic algorithm
- FIG. 3 represents, in the form of a flowchart, a particular mode of implementation of the scheduling method according to the invention by the scheduling device 12 of FIG. 2.
- the scheduling method comprises, for a first set E_1 of tasks associated with the processing system 11, a step E10 of determining values of the execution parameters of the algorithm. ants ACS. Said step E10 is implemented by the determination module MOD_DET equipping the scheduling device 12.
- the values of execution parameters are determined by means of an algorithm implementing a design of experiments method parameterized by said objective function.
- the design of experiments method used during step E10 to determine the values of the execution parameters is the Taguchi method.
- said Taguchi method is a statistical method making it possible to produce experimental designs having the objective of reducing the sensitivity to external disturbances of an algorithm which is the subject of said experiments.
- This method provides a simple and systematic approach for determining optimal values of the execution parameters of said algorithm, so as to optimize their robustness.
- the implementation of the Taguchi method consists in defining a set of values that can be taken by each of the execution parameters. (a, b, Q_0, p, N_ant, min_eva) then to carry out a series of experiments of the ACS ant algorithm. More particularly, each experiment corresponds to an implementation of said ACS ant algorithm, the values of the execution parameters of which are chosen from said set of values.
- the specificity of the Taguchi method consists in not testing all the possible combinations of values in said set of values, so as to reduce the number of experiments to be carried out to find the respective values of the execution parameters making it possible to optimize the robustness of the ACS ant algorithm with regard to the hitherto known tasks (ie the tasks of said first set E_1).
- the fact of seeking to optimize the robustness of the ACS ant algorithm for said first set E_1 of tasks also makes it possible to guarantee the robustness for other tasks likely to be subsequently associated with the processing system 11.
- the Taguchi method is based on orthogonal matrices referenced in the state of the art which make it possible to determine which combinations of values of the execution parameters should be favored for said experiments.
- the Taguchi method is not further described here insofar as it is known and very widely documented. For more details, you can consult the document: “The Taguchi methodology: introduction to technological research-functional quality management or“ off-line ”management”, Constant C., Revue de statistique Applied, 37 (2 ), 47-77, 1989.
- a detailed example of the implementation of the scheduling method is described later.
- the scheduling method also comprises, for at least a second set E_2 of tasks associated with said processing system 11, a scheduling step E20.
- Said step E20 is implemented by the scheduling module MOD_ORD equipping the scheduling device 12.
- step E10 aims only to determine values of the execution parameters of the metaheuristic algorithm and therefore does not provide a scheduling solution as such.
- steps E20 aims only to determine values of the execution parameters of the metaheuristic algorithm and therefore does not provide a scheduling solution as such.
- steps other than those in the first set E_1 can be taken into account during the execution of step E20 for the second set E_2, the number of said other tasks not being a limiting factor of the invention. .
- Said scheduling step E20 comprises:
- a sub-step E20_l of execution of the metaheuristic algorithm parameterized by the values determined during step E10 is implemented by the execution sub-module SS_MOD_EXEC
- said sub-step E20_l is implemented by the execution sub-module SS_MOD_EXEC
- a stop criterion CR_STOP of the metaheuristic algorithm is not reached at the end of said execution (sub-step E20_2 of verification of the achievement or not of the stop criterion CR_STOP) (ie no scheduling solution n 'is found by the metaheuristic algorithm with regard to said stop criterion CR_STOP)
- said sub-step E20_2 is implemented by the verification sub-module SS_MOD_VERIF
- a sub-step E20_3 for updating said at least one second set E_2, by removing at least one task from said at least one second set E_2 (said sub-step E20_3 is implemented by the implementation sub-module up to date SS_MOD_MAJ).
- said execution sub-step E20_l, as well as said update sub-step E20_3 where appropriate, are iterated as long as the stop criterion CR_STOP is not reached (which does indeed mean understood that the verification sub-step E20_2 is also iterated).
- the stop criterion CR_STOP is not reached, the set of tasks considered during an iteration of said substeps is the set of tasks updated during the previous iteration.
- the fact of iterating the scheduling step E20 makes it possible, because of the updates of the sets of tasks considered during said iterations, to guarantee that a scheduling solution is obtained. Indeed, the more the scheduling step E20 is iterated, the fewer tasks there are to schedule due to said updates.
- the stop criterion CR_STOP corresponds to a given duration of execution of the metaheuristic algorithm, so that if no scheduling solution is provided by said metaheuristic algorithm once said duration exceeded, it is considered that the latter has not converged.
- the stop criterion CR_STOP can correspond to a given number of iterations of said metaheursitic algorithm. Once again, if this number of iterations is exceeded during said sub-step E20_1, it is considered that the latter has not converged.
- the stop criterion CR_STOP can correspond to a threshold of the objective function, so that if this threshold is not reached by the possible scheduling solutions found by the metaheuristic algorithm, these are considered unsatisfactory.
- said at least one task removed during said update sub-step E20_3 is the task whose association with the processing system 11 is the most recent among the tasks of said at least one. at least a second set E_2 of tasks (for example, the task last transmitted to the processing system 11 for scheduling).
- the task possibly withdrawn is that of which the identifier is the largest among the identifiers of the tasks considered during an implementation of the scheduling step E20.
- the implementation of this example is justified, in particular, by the fact that it can be considered as a higher priority to execute an old task compared to a recent task.
- each task can be associated with an attribute determining a priority level of execution of said task, this priority level not being correlated with the date of transmission of a task to the processing system 11. Therefore, the task removed during said update sub-step E20_3 is the task with the lowest priority. More generally, no limitation is attached to the task that can be removed during said update sub-step E20_3.
- N is an integer strictly greater than 1.
- No limitation is attached to the value of said number N, nor, moreover, also to the criterion as the basis of which the withdrawal of a plurality of tasks is envisaged.
- the scheduling step E20 is implemented as soon as M tasks are newly associated with the processing system 11 with respect to the previous implementation of said scheduling step, M being an integer greater than or equal to 1. For example, M is equal to 3.
- step E10 of determining values of the execution parameters was executed only once.
- the invention is not however limited to such an implementation. In fact, nothing excludes considering, according to other implementation modes (not shown in FIG. 3), that the determination step E10 is iterated on a recurring basis.
- the fact of iterating said step E10 in this way makes it possible to update the values of said execution parameters. Indeed, the tasks which are considered during an iteration of said step E10 are a priori different from those considered during the previous implementation of step E10. Proceeding in this way makes it possible to best configure the metaheuristic algorithm with regard to the evolution of the tasks transmitted to the processing system 11.
- step E10 is iterated daily, for example at a fixed time.
- the invention also relates to a method of executing at least one task by the processing system 11.
- Said method of execution (not shown in the figures) comprises:
- processing devices 11_1, 11_2 can be described according to a convention similar to that used for the measurement tasks. More particularly, each processing device 11_1 is written here by means of different fields P_l, ..., P_k (k being an integer index specific to each processing device):
- - P_1 is representative of an identifier of the processing device (in the present case, it is the index “i” used in the acronym “11 J”);
- P_2, P_3 and P_4 are respectively representative of the nominal resources (i.e. apart from any solicitation) of calculations, memory and bandwidth of said processing device;
- P_5 are respectively representative of the identifiers associated with the measurement applications (they are therefore also the identifiers of the measurement tasks respectively associated with said measurement applications) which have already been assigned to said processing device awaiting their execution, for example following a previous implementation of the scheduling method.
- a first set E_1 formed of the tasks TA_1 and TA_2 is associated with the processing system 11 More particularly, the task TA_1 is associated with the device 11_1, and the task TA_2 is associated with the device 11_2.
- the execution method firstly implements the scheduling method.
- the implementation of the determination step E10, for the first set E_1 is carried out using the Taguchi method.
- the set of values that can be taken by each of the execution parameters (a, b, Q_0, p, N_ant, min_eva) is given by a table TAB illustrated in FIG. 4. It is noted that each execution parameter is associated with 5 possible values.
- L25 L25 matrix illustrated in FIG. 5.
- Said L25 matrix is read as follows:
- each row corresponds to an experiment for a set of values of the execution parameters (in other words, in the present example, 25 experiments are taken into account);
- each column j (j varying from 1 to 6) of the matrix L25 contains 25 indices making it possible to know which value of the execution parameter considered in row j (j therefore varying again from 1 to 6) of the table TAB is used in the experiment associated with this column j of said matrix L25. More precisely, an index k (k varying from 1 to 5 since each execution parameter can take 5 values) of a column j of the matrix L25 denotes the value of the execution parameter located in row j and column k of the table TAB.
- the Taguchi method is also executed by carrying out three iterations of the experiments associated with the matrix L25.
- the fact of considering three iterations is of course only an execution variant, and any other value is possible, in particular a number of iterations greater than three depending on the noise sources considered for the execution parameters of l. 'ACS algorithm as well as the extreme values that can be taken by these noise sources (examples of noise sources: biased probabilistic exploration of the graph by ants, order of travel of the ants in the graph based on the maximum execution time associated with a task, CPU / RAM availability, processor failure, etc.).
- the inventors have nevertheless observed that the fact of using three iterations made it possible to consolidate the results provided at the output of step E10 while preserving the computational burden.
- the order of association of the measurement tasks with the processing system 11 is determined by the respective identifiers of said tasks.
- the task TA_3 (respectively TA_5) is the first task (respectively the last task) associated with the processing system 11 among said three tasks TA_3, TA_4, TA_5.
- E_1 has not yet been scheduled in the processing system 11.
- E_2 denotes a new set of tasks formed by the tasks TA_1, TA_2, TA_3, TA_4 and TA_5, the objective therefore consisting in scheduling the tasks of said set E_2 since these are all the tasks henceforth associated with the processing system 11.
- the scheduling step E20 leads, in this detailed example and for said set E_2, to the fact that the ACS algorithm does not converge (test carried out during the sub- step E20_2) during the execution sub-step E20_1. Therefore, the set E_2 is updated. More particularly, in this example, the most recent task, therefore task TA_5, is removed from said set E_2 during sub-step E20_3. The sub-step E20_1 is then iterated for the updated set of tasks which comprises the tasks TA_1, TA_2, TA_3 and TA_4, and a scheduling solution is obtained, this solution being executed by the processing system 11.
- FIG. 6 schematically represents said scheduling solution as well as its execution.
- a time frame of reference made up of six distinct instants is considered. Each of these times designates the start time of a time interval.
- the various time intervals thus considered all have the same duration, namely a duration equal to one unit of time of said time frame of reference.
- the invention has been described so far by considering that the processing system 11 included a plurality of processing devices 11 J.
- the invention is also applicable in the case where said processing system 11 comprises a single multiprocessor processing device, the scheduling of tasks therefore consisting in assigning tasks to the different processors of said single processing device. Therefore, in this case, and when each task is associated with a location constraint, said location constraint can define at least one processor among the plurality of processors of said single processing device.
- the meta heuristic algorithm is configured so as to authorize the migration of each task between the processors of said single processing device defined by the location constraint attached to said task.
- the invention can also be applied in the case where a plurality of processing devices are considered, at least some of which are multiprocessor devices.
- the scheduling of tasks therefore consisting in assigning tasks according to different levels: a first level aimed at allocating only a processing device to a task, and a second level, finer than said first level, aimed at allocating a processor to said task when said processing device comprises a plurality of processors.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
L'invention concerne un procédé d'ordonnancement d'au moins une tâche dans un système de traitement configuré pour exécuter ladite au moins une tâche. Ledit procédé comporte, pour un premier ensemble de tâches associé audit système, une étape de détermination de valeurs de paramètres d'exécution d'un algorithme métaheuristique configuré pour ordonnancer au moins une tâche associée audit système. Ledit procédé comporte en outre, pour au moins un deuxième ensemble de tâches associé audit système, une étape d'ordonnancement comprenant : - une exécution de l'algorithme métaheuristique paramétré par lesdites valeurs, et, si un critère d'arrêt (CR_STOP) de l'algorithme métaheuristique n'est pas atteint (E20_2), - une mise à jour dudit au moins un deuxième ensemble, par retrait d'au moins une tâche parmi ladite au moins deuxième ensemble, ladite exécution, et ladite mise à jour le cas échéant, étant itérées tant que le critère d'arrêt n'est pas atteint.
Description
Description
Titre de l'invention : Procédé d'ordonnancement de tâches dans un système de traitement, dispositif d'ordonnancement associé
Technique antérieure
[0001] La présente invention appartient au domaine général de l'ordonnancement de tâches, telles que par exemple des tâches informatiques, des tâches industrielles, etc. Elle concerne plus particulièrement un procédé d'ordonnancement d'au moins une tâche dans un système de traitement configuré pour exécuter ladite au moins une tâche. Elle concerne également un dispositif d'ordonnancement configuré pour mettre en œuvre un tel procédé. L'invention trouve une application particulièrement avantageuse, bien que nullement limitative, dans le cadre de l'ordonnancement d'applications de mesure de l'état d'un réseau de communication ou de la qualité d'un service supporté par ledit réseau de communication, chaque application de mesure étant par exemple intégrée à un conteneur (ou « container » en anglais).
[0002] Par « système de traitement », on fait référence ici à une pluralité de processeurs pouvant être répartis entre un ou plusieurs dispositifs de traitement appartenant à un système informatique, chaque dispositif de traitement étant configuré de manière matérielle et logicielle pour exécuter une ou plusieurs tâches informatiques qui lui ont été transmises. Un tel dispositif de traitement peut correspondre par exemple à un ordinateur, serveur, routeur, et plus généralement tout équipement réseau, etc. En outre, le ou lesdits dispositifs de traitement formant le système de traitement peuvent appartenir à un ou plusieurs réseaux de communication et peuvent être regroupés en clusters au sein d'un centre de données (« datacenter » dans la littérature anglo-saxonne).
[0003] Il est aujourd'hui largement répandu d'avoir recours à des techniques d'ordonnancement de tâches dans les systèmes de traitement. L'utilisation de ces techniques est d'ailleurs la plupart du temps rendue nécessaire, par exemple chez les principaux fournisseurs mondiaux de services et/ou d'équipements réseaux, pour plusieurs raisons, dont :
- la complexité des tâches à traiter,
- le nombre de tâches à traiter,
- la finitude matérielle des systèmes de traitement, ces derniers ne pouvant donc pas exécuter une infinité de tâches de manière simultanée.
[0004] De manière conventionnelle, l'ordonnancement d'une tâche dans un système de traitement fait référence au fait d'affecter (i.e. attribuer) à ladite tâche, en vue de son exécution et en fonction d'éventuels attributs qui lui sont associés (date d'exécution, durée d'exécution, etc.) :
- au moins un dispositif de traitement donné appartenant au système de traitement apte à exécuter ladite tâche,
- une date à laquelle ladite tâche de mesure doit être exécutée par le dispositif de traitement qui lui a été ainsi affecté.
[0005] Il est à noter qu'une tâche peut classiquement faire référence à une tâche unitaire correspondant à l'une des étapes de la mise en œuvre d'un procédé applicatif, ou bien encore de manière toute aussi classique, et selon une définition plus générale, à l'ensemble des tâches unitaires impliquées dans ce procédé applicatif. Le procédé applicatif dont la ou les tâches doivent être ordonnancées peut par exemple résulter de l'utilisation par une entreprise, par un particulier, etc. d'une application logicielle.
[0006] Le fait que les techniques d'ordonnancement, et plus particulièrement leurs perfectionnements éventuels, fassent aujourd'hui l'objet d'une attention soutenue résulte notamment du développement et de l'utilisation massifs d'applications logicielles destinées à offrir toujours plus de services à des utilisateurs dont le nombre ne cesse également de croître.
[0007] Parmi les applications logicielles ainsi visées, on connaît par exemple des applications, dites « applications de mesure », qui sont typiquement utilisées par des administrateurs réseaux et qui permettent de mesurer l'état d'un réseau de communication (surveillance de la bande passante, latence dans la transmission de paquets d'information, etc.) ou la qualité d'un service supporté par ledit réseau de communication. De telles applications de mesure sont aujourd'hui souvent déployées dans des systèmes de traitement virtualisés (plateforme de virtualisation, machine virtuelle, conteneur informatique, etc.) en utilisant des techniques d'ordonnancement, comme cela est par exemple détaillé dans le document suivant : « Enhanced edf scheduling algorithms for orchestrating network-wide active measurements », P. Calyam, C.-G. Lee, P. K. Arava, and D. Krymskiy, in 26th IEEE International Real-Time Systems Symposium (RTSS'05). IEEE, 2005.
[0008] Le recours à un environnement virtualisé présente, de manière connue en soi, des avantages en termes d'accessibilité aux applications (par exemple depuis un terminal mobile comme un smartphone, une tablette, un PC, etc.), de sécurisation des données et de mutualisation des ressources matérielles nécessaires aux exécutions des applications de mesure.
[0009] Ces avantages sont néanmoins contrebalancés par le fait que la plupart des techniques d'ordonnancement anciennement utilisées n'étaient pas encore suffisamment adaptées à certaines caractéristiques des applications de mesure, comme par exemple : la possibilité de déclencher une exécution de manière périodique et/ou avec un délai d'exécution (avance ou retard), l'existence éventuelle de contraintes de localisation d'une application de mesure (i.e. affectation forcée d'une application de mesure à un dispositif de traitement donné), l'existence d'éventuelles interférences entre différentes applications de mesure (i.e. deux applications de mesure interfèrent entre elles lorsque des paquets destinés à sonder l'état du réseau et transmis par l'une des applications sont considérés comme du trafic réseau par l'autre application, ce qui peut entraîner des mesures erronées).
[0010] Plus récemment, il a été proposé des techniques d'ordonnancement aptes à prendre en compte ces caractéristiques, sous réserve toutefois d'allouer des ressources de traitement
uniquement sur de longues périodes de temps (semaines ou mois), occasionnant ainsi un manque de réactivité qui s'avère être problématique au regard de l'utilisation toujours plus intensive des applications en question. Encore plus récemment, il a également été proposé des techniques d'ordonnancement aptes à traiter de manière plus réactive les sollicitations imposées par des applications, via notamment la mise en œuvre de réaffectations dynamiques (migrations) entre des dispositifs de traitement. Cela étant, ces dernières techniques demeurent très complexes à implémenter, en particulier d'un point de vue algorithmique. [0011] Il importe de noter que les différents désavantages présentés par les solutions actuelles de l'art antérieur ont été détaillés ci-avant dans le cadre spécifique des applications de mesure. Néanmoins, ces désavantages concernent en définitive tout type de tâche (tâche résultant de l'utilisation d'une application quelconque, tâche unitaire d'un procédé applicatif, etc.).
Exposé de l'invention
[0012] La présente invention a pour objectif de remédier à tout ou partie des inconvénients de l'art antérieur, notamment ceux exposés ci-avant, en proposant une solution qui permette d'ordonnancer de manière réactive une ou plusieurs tâches dans un système de traitement, cette solution étant en outre plus simple à mettre en œuvre que les solutions de l'art antérieur. De plus, bien que la solution proposée par l'invention soit particulièrement adaptée à l'ordonnancement de tâches exécutées grâce à une ou plusieurs applications de mesure dans un environnement virtualisé (chaque application pouvant par exemple être intégrée à un conteneur), elle n'en reste pas moins applicable à l'ordonnancement de tout type de tâche dans un environnement virtualisé ou non (ex. tâches informatiques, tâches industrielles, etc.). [0013] A cet effet, et selon un premier aspect, l'invention concerne un procédé d'ordonnancement d'au moins une tâche dans un système de traitement configuré pour exécuter ladite au moins une tâche. Ledit procédé comporte, pour un premier ensemble de tâches associé au système de traitement, une étape de détermination de valeurs de paramètres d'exécution d'un algorithme métaheuristique configuré pour ordonnancer, dans ledit système de traitement, au moins une tâche associée audit système de traitement en optimisant une fonction objectif. Le procédé comporte en outre, pour au moins un deuxième ensemble de tâches associé audit système de traitement, une étape d'ordonnancement comprenant :
- une exécution de l'algorithme métaheuristique paramétré par lesdites valeurs, et, si un critère d'arrêt de l'algorithme métaheuristique n'est pas atteint à l'issue de ladite exécution,
- une mise à jour dudit au moins un deuxième ensemble, par retrait d'au moins une tâche dudit au moins un deuxième ensemble, ladite exécution, et ladite mise à jour le cas échéant, étant itérées tant que le critère d'arrêt n'est pas atteint.
[0014] Ainsi, la solution proposée par l'invention pour ordonnancer une ou plusieurs tâches (par exemple des tâches de mesure) dans le système de traitement s'appuie sur un algorithme métaheuristique.
[0015] Il convient de noter que par « ensemble de tâches », il est fait référence à un ensemble pouvant comporter une ou plusieurs tâches. Dit autrement, cette expression « ensemble de tâches » est, au sens de la présente invention, équivalente à l'expression « ensemble comportant au moins une tâche ».
[0016] La recherche d'un ordonnancement optimal (i.e. d'une solution d'ordonnancement optimisant la fonction objectif) se révèle en effet être un problème d'optimisation particulièrement complexe (NP-difficile) à résoudre. Cette complexité résulte de manière fondamentale de la nature même dudit problème d'optimisation qui est ici dépendante du fait que lesdites tâches sont classiquement associées à des attributs définissant des contraintes spécifiques d'exécution de chacune de ces tâches (contraintes de ressources d'exécution, de date d'exécution, d'allocation à tel ou tel processeur, etc.). Cette complexité inhérente au problème d'optimisation ainsi posé est bien entendu encore accrue lorsque le nombre de tâches à ordonnancer dans le système de traitement est important.
[0017] Autrement dit, la recherche d'une solution d'ordonnancement d'une ou plusieurs tâches dans le système de traitement se présente sous la forme d'un problème fortement contraint pour lequel il est particulièrement avantageux d'avoir recours à un algorithme métaheuristique. En effet, un tel algorithme d'optimisation adopte un comportement de recherche au sein d'un espace dit « espace de recherche » (par exemple un graphe dans le cas d'un algorithme de fourmis) dans l'optique d'apprendre les caractéristiques du problème auquel une solution est recherchée. Les inventeurs ont dès lors noté qu'un tel comportement était particulièrement approprié dans le cadre de la recherche d'une solution au problème d'ordonnancement.
[0018] De manière conventionnelle, un algorithme métaheuristique est paramétré au moyen d'un ou plusieurs paramètres d'exécution. Les valeurs affectées à ces paramètres d'exécution déterminent plus précisément le comportement de recherche adopté par l'algorithme métaheuristique. Un choix approprié desdites valeurs permet par exemple de minimiser le risque d'absence de convergence de l'algorithme métaheuristique (exemple : éviter une convergence uniquement vers des optimums locaux) mais également de minimiser certains défauts inhérents au fonctionnement de ce dernier (exemple : possible manque de robustesse vis-à-vis de perturbations desdits paramètres d'exécution).
[0019] Le procédé selon l'invention propose donc de déterminer des valeurs des paramètres d'exécution de l'algorithme métaheuristique, offrant ainsi la possibilité de paramétrer le comportement de ce dernier au plus juste, notamment pour éviter des défauts tels que ceux mentionnés ci-avant. Dit encore autrement, en permettant de déterminer lesdites valeurs, le procédé selon l'invention offre la possibilité de contrôler le fonctionnement de l'algorithme métaheuristique, et donc in fine la manière dont sont recherchées des solutions
d'ordonnancement des tâches qui sont associées au système de traitement (par exemple qui lui ont été soumises pour ordonnancement).
[0020] La combinaison entre la détermination desdites valeurs et l'exécution de l'algorithme métaheuristique est aisée à mettre en œuvre, et ne requiert aucun traitement coûteux en temps. Qui plus est, l'étape d'ordonnancement est mise en œuvre pour au moins un deuxième ensemble de tâches, ce qui offre la possibilité d'exécuter l'algorithme métaheuristique de manière itérative dès qu'une ou plusieurs tâches sont nouvellement associées au système de traitement. De telles dispositions sont avantageuses en ce qu'elles permettent d'ordonnancer de manière récurrente les tâches, conduisant ainsi à une solution particulièrement réactive.
[0021] Dans des modes particuliers de mise en œuvre, le procédé d'ordonnancement peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles.
[0022] Dans des modes particuliers de mise en œuvre, chaque tâche est associée à une date d'exécution souhaitée, et, pour chaque ordonnancement candidat trouvé par l'algorithme métaheuristique, à un délai, dit « délai d'exécution effectif », représentatif de la durée suivant laquelle l'exécution de ladite tâche est différée par rapport à ladite date d'exécution souhaitée, ladite fonction objectif comportant un terme égal à la somme des délais d'exécution effectifs respectivement associés aux tâches prises en compte par l'algorithme métaheuristique, ledit terme étant destiné à être minimisé par ledit algorithme métaheuristique.
[0023] On comprend que la minimisation de ce terme de la fonction objectif revient à satisfaire au mieux les dates d'exécution souhaitées, ces dernières étant par exemple émises par des utilisateurs du système de traitement. Ainsi, la prise en compte de ce terme dans la fonction objectif permet d'influencer le comportement de l'algorithme métaheuristique pour que ce dernier converge vers une solution tendant à éviter un ou plusieurs décalages d'exécution, une accumulation trop importante de décalages d'exécution pouvant en effet entraîner le fait qu'une ou plusieurs tâches ne puissent pas être ordonnancées dans le système de traitement.
[0024] Dans des modes particuliers de mise en œuvre :
- le système de traitement comporte une pluralité de processeurs,
- chaque tâche est associée à un attribut « dit contrainte de localisation » définissant au moins un processeur parmi ladite pluralité de processeurs, de sorte que ladite tâche est destinée à être exécutée par un processeur quelconque parmi ledit au moins un processeur défini par ladite contrainte de localisation,
- l'algorithme métaheuristique est configuré de sorte à autoriser la migration de chaque tâche entre des processeurs définis par la contrainte de localisation attachée à ladite tâche, ladite fonction objectif comportant un terme égal à un nombre de migrations des tâches prises en compte par l'algorithme métaheuristique, ledit terme étant destiné à être minimisé par ledit algorithme métaheuristique.
[0025] Par « migration d'une tâche », on fait référence ici au fait qu'une tâche peut être affectée, pour un premier intervalle de temps, à un premier processeur appartenant aux processeurs définis par la contrainte de localisation attachée à cette tâche, puis, pour un deuxième intervalle de temps ultérieur audit premier intervalle de temps, à un deuxième processeur appartenant aux processeurs définis par la contrainte de localisation attachée à cette tâche.
[0026] On comprend que la minimisation de ce terme de la fonction objectif revient à minimiser la complexité de la solution d'ordonnancement susceptible d'être fournie par l'algorithme métaheuristique, et donc aussi à minimiser les ressources utilisées par le système de traitement. La minimisation de ce terme revient également, de manière similaire à ce qui a été évoqué ci-avant pour le cas d'un terme égal à la somme des délais d'exécution effectifs, à minimiser le risque qu'au moins une tâche ne puisse pas être exécutée à temps (une migration étant en effet consommatrice en temps, et une tâche ne pouvant pas être exécutée lors de sa migration entre deux dispositifs de traitement).
[0027] Dans des modes particuliers de mise en œuvre, les valeurs de paramètres d'exécution sont déterminées au moyen d'un algorithme mettant en œuvre une méthode de plan d'expériences paramétrée par ladite fonction objectif.
[0028] De manière connue, une méthode de plan d'expériences fait référence à une suite ordonnée d'essais, chacun de ces essais permettant d'acquérir de nouvelles connaissances quant au fonctionnement (comportement) de l'algorithme métaheuristique sur lequel s'appuie ladite méthode de plan d'expériences, ces connaissances étant acquises vis-à-vis des paramètres qui caractérisent ledit algorithme métaheuristique. Plus particulièrement, chaque essai correspond à une expérimentation (i.e. une mise en œuvre) dudit algorithme métaheuristique pour un jeu donné de valeurs de paramètres d'exécution, un des objets de la méthode de plan d'expériences étant dès lors de comprendre de quelle manière les variations de ces paramètres influencent le comportement de l'algorithme métaheuristique. Il convient de noter que le comportement de l'algorithme métaheuristique est évalué au regard de valeur prise par la fonction objectif lors des différentes expérimentations.
[0029] Le fait d'acquérir une telle connaissance du fonctionnement de l'algorithme métaheuristique permet de déterminer des valeurs des paramètres d'exécution de sorte, par exemple, à améliorer la robustesse dudit algorithme métaheuristique.
[0030] Par « amélioration de la robustesse », on fait référence ici à la minimisation de la sensibilité de l'algorithme métaheuristique vis-à-vis de variations de ses paramètres d'exécution (ces variations pouvant faire suite à des perturbations du système de traitement, comme par exemple : retard dans la transmission effective d'une tâche, panne d'un dispositif de traitement modifiant ainsi les contraintes de localisation, etc.). Autrement dit, améliorer la robustesse d'un algorithme revient, d'une part, à garantir la continuité des solutions fournies par un tel algorithme métaheuristique vis-à-vis des paramètres d'exécution (l'objectif est d'éviter que des valeurs très proches des paramètres d'exécution conduisent à des solutions
d'ordonnancement complètement différentes), mais également, d'autre part, à maintenir un niveau de performances malgré l'occurrence de perturbations.
[0031] Dans des modes particuliers de mise en œuvre, ladite méthode de plan d'expériences est la méthode Taguchi.
[0032] De manière générale, ladite méthode Taguchi est une méthode statistique permettant de réaliser des plans d'expériences ayant pour objectif de réduire la sensibilité aux perturbations externes d'un algorithme faisant l'objet desdites expériences. Cette méthode fournit une approche simple et systématique pour déterminer des valeurs optimales des paramètres d'exécution dudit algorithme, de sorte à en optimiser la robustesse.
[0033] Dans des modes particuliers de mise en œuvre, l'algorithme méta heuristique est un algorithme de colonies de fourmis mis en œuvre à partir d'un graphe dont chaque nœud correspond à un ordonnancement d'une tâche dans le système de traitement.
[0034] Les inventeurs ont en effet constaté que ce type d'algorithme méta heuristique, notamment dans sa variante dite « ACS » (acronyme de l'expression anglo-saxonne « Ant Colony System ») fournit de très bons résultats en terme de qualité des solutions d'ordonnancement (minimisation globale de la fonction objectif), ainsi que de simplicité et de rapidité de mise en œuvre. Ces résultats sont encore améliorés lorsque les paramètres d'exécution dudit algorithme de fourmis sont déterminés au moyen de la méthode Taguchi.
[0035] Dans des modes particuliers de mise en œuvre, les paramètres d'exécution comportent un paramètre permettant de contrôler une quantité minimale de phéromones pouvant être associée à un nœud.
[0036] L'utilisation d'un tel paramètre se montre avantageuse en ce qu'elle permet d'éviter la stagnation de l'algorithme de fourmis au début de sa mise en œuvre en favorisant la diversification des chemins parcourus par les fourmis ainsi qu'en évitant une convergence vers un optimum local. On note que la quantité de phéromones associée à un nœud dépend d'une quantité pouvant être déposée et/ou s'évaporer lors du passage d'une fourmi sur ledit nœud.
[0037] Dans des modes particuliers de mise en œuvre, ladite au moins une tâche retirée lors de ladite mise à jour est la tâche dont l'association au système de traitement est la plus récente parmi les tâches dudit au moins un deuxième ensemble de tâches.
[0038] Dans des modes particuliers de mise en œuvre, l'étape d'ordonnancement est mise en œuvre dès que M tâches sont nouvellement associées au système de traitement par rapport à la mise en œuvre précédente de ladite étape d'ordonnancement, M étant un entier supérieur ou égal à 1.
[0039] Dans des modes particuliers de mise en œuvre, l'étape de détermination est itérée de manière récurrente de sorte à mettre à jour les valeurs desdits paramètres d'exécution.
[0040] Procéder ainsi permet de paramétrer au mieux l'algorithme métaheuristique au regard de l'évolution des tâches transmises au système de traitement.
[0041] Dans des modes particuliers de mise en œuvre, une tâche correspond à une mesure de l'état d'un réseau de communication auquel appartient au moins une partie du système de traitement ou de la qualité d'un service supporté par ledit réseau de communication. Chaque tâche peut être exécutée par exemple grâce à une application de mesure intégrée à un conteneur.
[0042] Selon un deuxième aspect, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre d'un procédé d'ordonnancement selon l'invention lorsque ledit programme d'ordinateur est exécuté par un ordinateur.
[0043] Ce programme 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.
[0044] Selon un troisième aspect, l'invention concerne un support d'informations ou d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur selon l'invention.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] Selon un quatrième aspect, l'invention concerne un dispositif d'ordonnancement d'au moins une tâche dans un système de traitement configuré pour exécuter ladite au moins une tâche, ledit dispositif d'ordonnancement comportant un module de détermination configuré pour déterminer, pour un premier ensemble de tâches associées au système de traitement, des valeurs de paramètres d'exécution d'un algorithme métaheuristique configuré pour ordonnancer, dans ledit système de traitement, au moins une tâche associée audit système de traitement en optimisant une fonction objectif. Ledit dispositif d'ordonnancement comporte en outre un module d'ordonnancement comprenant :
- un sous-module d'exécution configuré pour exécuter l'algorithme métaheuristique paramétré par lesdites valeurs pour au moins un deuxième ensemble de tâches associé audit système de traitement,
- un sous-module de vérification configuré pour vérifier si un critère d'arrêt est atteint ou non à l'issue d'une exécution de l'algorithme méta heuristique mise en œuvre par ledit sous-module d'exécution pour ledit moins un deuxième ensemble,
- un sous-module de mise à jour configuré pour mettre à jour ledit au moins un deuxième ensemble, par retrait d'au moins une tâche dudit au moins un deuxième ensemble, lorsque ledit critère d'arrêt n'est pas atteint.
[0049] Selon un cinquième aspect, l'invention concerne un système informatique comportant un dispositif d'ordonnancement selon l'invention ainsi qu'un système de traitement configuré pour exécuter au moins une tâche destinée à être ordonnancée par ledit dispositif d'ordonnancement.
[0050] Selon un sixième aspect, l'invention concerne un procédé d'exécution d'au moins une tâche par un système de traitement configuré pour exécuter ladite au moins une tâche. Ledit procédé d'exécution comporte :
- une étape d'ordonnancement d'au moins une tâche dans ledit système de traitement conformément à un procédé d'ordonnancement selon l'invention,
- une étape d'exécution de ladite au moins une tâche selon l'ordonnancement déterminé au cours de ladite étape d'ordonnancement.
Brève description des dessins
[0051] 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 :
[Fig. 1] la figure 1 représente schématiquement, dans son environnement, un mode particulier de réalisation d'un système informatique selon l'invention ;
[Fig. 2] la figure 2 représente schématiquement un exemple d'architecture matérielle d'un dispositif d'ordonnancement 12 selon l'invention appartenant au système informatique 10 de la figure 1 ;
[Fig. 3] la figure 3 représente, sous forme d'ordinogramme, un mode particulier de mise en œuvre d'un procédé d'ordonnancement selon l'invention par le dispositif d'ordonnancement 12 de la figure 2 ;
[Fig. 4] la figure 4 représente un tableau TAB de valeurs de paramètres d'exécution d'un algorithme de fourmis utilisé dans un exemple de mise en œuvre du procédé d'ordonnancement ;
[Fig. 5] la figure 5 représente une matrice L25 d'une méthode Taguchi utilisée dans ledit exemple de mise en œuvre ;
[Fig. 6] la figure 6 représente schématiquement un exemple de mise en œuvre d'un procédé d'exécution selon l'invention.
Description des modes de réalisation
[0052] La figure 1 représente schématiquement, dans son environnement, un mode particulier de réalisation d'un système informatique 10 selon l'invention.
[0053] Dans le mode de réalisation illustré par la figure 1, le système informatique 10 comporte un système de traitement 11. Ledit système de traitement 11 est par exemple déployé dans un environnement virtualisé, un utilisateur pouvant avoir accès à ce dernier en se connectant à une plateforme de virtualisation de type connue en soi au moyen d'un terminal (ordinateur portable, PC, tablette, etc.) en possession dudit utilisateur. Selon un autre exemple, le système de traitement 11 est déployé dans un environnement non virtualisé, de sorte qu'un utilisateur puisse y avoir accès sans qu'il soit nécessaire pour ce dernier de se connecter à une plateforme de virtualisation.
[0054] Le système de traitement 11 est en outre configuré pour exécuter au moins une tâche. A cet effet, ledit système de traitement 11 comporte une pluralité de dispositif de traitement 11 J (i étant un indice entier supérieur à 1).
[0055] Dans l'exemple illustré par la figure 1, le nombre de dispositifs de traitement est égal à N, ou N est un nombre entier donné (i=l,...,N). Il importe toutefois de noter qu'aucune limitation n'est attachée au nombre total de dispositifs de traitement 11 J pouvant être inclus dans le système de traitement 11.
[0056] Lesdits dispositifs de traitement ll_i appartiennent à un réseau de communication (non illustré sur la figure 1) sur lequel ils peuvent s'appuyer pour communiquer entre eux. Par exemple, ledit réseau de communication peut correspondre à un réseau LAN (Local Area Network), WAN (Wide Area Network), WLAN (Wireless LAN), Internet, etc. D'une manière générale, la nature dudit réseau de communication n'est pas un facteur limitant de l'invention, dès lors que les dispositifs de traitement 11 J peuvent échanger des données entre eux, ces données pouvant éventuellement prendre la forme d'une application logicielle, comme par exemple une application de mesure.
[0057] En outre, bien qu'il soit considéré ici que les dispositifs de traitement 11 J appartiennent à un seul et même réseau de communication, rien n'exclut d'envisager une répartition desdits dispositifs de traitement ll_i entre plusieurs réseaux de communication distincts entre eux, lesdits réseaux de communication étant dès lors raccordés entre eux de manière connue en soi pour permettre aux dispositifs de traitement 11 J d'échanger des données.
[0058] Lesdits dispositifs de traitement ll_i sont configurés pour exécuter une ou plusieurs tâches qui sont associées au système de traitement 11. Par « tâche associée au système de traitement 11 », on fait référence ici au fait qu'une requête a été émise, par exemple par un utilisateur, pour que ladite tâche soit exécutée par ledit système de traitement 11, c'est-à-dire par l'un des dispositifs de traitement ll_i appartenant audit système 11.
[0059] Pour exécuter une ou plusieurs tâches, chaque dispositif de traitement 11 J comporte par exemple un ou plusieurs processeurs et des moyens de mémorisation (disque dur magnétique,
mémoire électronique, disque optique, etc.) dans lesquels sont mémorisés des données et un programme d'ordinateur, sous la forme d'un ensemble d'instructions de code de programme à exécuter pour mettre en œuvre un procédé d'exécution de la ou des tâches qui ont été transmises audit dispositif de traitement ll_i.
[0060] Alternativement ou en complément, chaque dispositif de traitement 11 J comporte également un ou des circuits logiques programmables, de type FPGA, PLD, etc., et/ou circuits intégrés spécialisés (ASIC), et / ou un ensemble de composants électroniques discrets, etc. adaptés à mettre en œuvre ledit procédé d'exécution.
[0061] En d'autres termes, chaque dispositif de traitement 11 J comporte un ensemble de moyens configurés de façon logicielle (programme d'ordinateur spécifique) et/ou matérielle (FPGA, PLD, ASIC, etc.) pour mettre en œuvre ledit procédé d'exécution.
[0062] Les aspects techniques concernant l'exécution en tant que telle d'une tâche par un dispositif de traitement 11 J sont connus de l'homme du métier et sortent du cadre de la présente invention, si bien qu'ils ne sont pas davantage détaillés ici.
[0063] Comme mentionné ci-dessus, les dispositifs de traitement 11 J peuvent comporter un ou plusieurs processeurs. Il peut s'agir d'équipements réseau, comme par exemple des serveurs, de terminaux mobiles, comme par exemple un téléphone de type « smartphone », un PC, un ordinateur portable, une tablette, etc. De manière générale, aucune limitation n'est attachée à la nature desdits dispositifs de traitement 11 J dès lors que ces derniers sont en mesure d'exécuter les tâches qui leur ont été transmises.
[0064] De manière conventionnelle, une tâche peut faire référence à une tâche unitaire correspondant à l'une des étapes de la mise en œuvre d'un procédé applicatif, ce procédé applicatif pouvant être de tout type (procédé de contrôle industriel, par exemple le contrôle du fonctionnement d'une machine ; procédé de traitement de données, par exemple des données boursières ; procédé de traitement de flux audio ou vidéo, par exemple dans le cas du codage ou de la classification audio/vidéo ; etc.). On comprend donc que la nature d'une tâche découle de la nature du procédé applicatif auquel ladite tâche est associée. En conséquence, une tâche peut être de nature informatique, industrielle, etc. Au sens de la présente invention, aucune limitation n'est attachée à la nature des tâches destinées à être exécutées par le système de traitement 11.
[0065] De manière tout aussi conventionnelle, et selon une définition plus générale, une tâche peut désigner l'ensemble des tâches unitaires impliquées dans la mise en œuvre d'un procédé applicatif, auquel cas il est fait référence à une tâche dite « générale ».
[0066] Il convient de noter que la mise en œuvre d'un procédé applicatif regroupant un ensemble de tâches unitaires peut par exemple résulter de l'utilisation d'une application logicielle, de sorte que la tâche générale associée à ce procédé applicatif désigne également l'application logicielle elle-même. Dit autrement, la tâche s'identifie à l'application logicielle qui lui est dédiée.
[0067] Chaque tâche est classiquement associée à une date d'exécution souhaitée. Une telle date d'exécution souhaitée est par exemple définie par un utilisateur souhaitant bénéficier du résultat découlant de l'exécution de ladite tâche à ladite date d'exécution souhaitée. Selon un autre exemple, une date d'exécution souhaitée est définie de manière automatique par le procédé applicatif auquel est associée ladite tâche.
[0068] Par ailleurs, chaque tâche est associée à une pluralité d'attributs, ces attributs pouvant définir des contraintes spécifiques d'exécution de ladite tâche. Par exemple, chaque tâche est associée à un attribut définissant une date d'exécution au plus tôt de ladite tâche. Ladite date d'exécution au plus tôt désigne donc le premier instant en lequel l'exécution de la tâche peut avoir lieu en prenant en compte une éventuelle périodicité d'exécution de ladite tâche. Il ressort de ce qui précède que ladite date d'exécution au plus tôt borne inférieurement la date d'exécution souhaitée.
[0069] Selon un autre exemple, éventuellement en complément du précédent, chaque tâche est associée à un attribut définissant un délai, dit « délai maximal d'exécution », représentatif de la durée maximale suivant laquelle l'exécution de ladite tâche peut être différée par rapport à ladite date d'exécution souhaitée. Autrement dit, ledit délai maximal d'exécution correspond à un majorant d'une marge temporelle accordée dans l'exécution de la tâche, permettant ainsi de relâcher la contrainte définie par la date d'exécution souhaitée.
[0070] Selon encore un autre exemple, éventuellement en complément des précédents, chaque tâche est associée à un attribut dit « contrainte de localisation » définissant au moins un dispositif de traitement parmi ladite pluralité de dispositifs de traitement 11 J, de sorte que ladite tâche est destinée à être exécutée par un dispositif de traitement 11 J quelconque parmi ledit au moins un dispositif défini par ladite contrainte de localisation.
[0071] Ladite contrainte de localisation peut définir ledit au moins un dispositif de traitement de manière indirecte, par exemple en faisant référence à une zone géographique donnée en laquelle est implémenté ledit au moins un dispositif de traitement. Il convient de noter que l'expression « zone géographique » fait référence ici à tout type de zone délimitée dans l'espace. Aucune limitation n'étant attachée à la délimitation d'une telle zone au sens de la présente invention, dès lors qu'il est possible d'identifier le ou les dispositifs de traitement appartenant à ladite zone géographique.
[0072] De manière alternative à l'exemple précédent dans lequel la contrainte de localisation porte sur une zone géographique, ou bien éventuellement en complément de cet exemple précédent, ladite contrainte localisation peut définir ledit au moins un dispositif de traitement de manière directe, par exemple en désignant précisément ledit au moins un dispositif de traitement via un identifiant de ce dernier. Autrement dit, dans cet exemple, au moins un dispositif de traitement donné est spécifiquement désigné (si une zone géographique est également désignée, il s'agit alors d'un dispositif de traitement spécifique de cette zone géographique).
[0073] Bien entendu, encore d'autres types de localisation peuvent être définies par la contrainte de localisation, cet aspect pouvant par exemple dépendre de l'étendue du réseau de communication, du nombre de dispositifs de traitement, de préférences d'utilisation, etc. Cela étant, et pour des raisons de simplification de la description, on considère désormais qu'une contrainte de localisation définit de manière directe ledit au moins dispositif de traitement 11 J parmi la pluralité de dispositifs de traitement intégrés au système de traitement 11, sans faire référence à d'autres aspects (zone géographique, etc.).
[0074] D'une manière générale, aucune limitation n'est attachée au nombre d'attributs pouvant être associés à une tâche, ni même à la nature de ces attributs, ces aspects étant bien connus de l'homme du métier. A titre d'exemple, tout ou partie des attributs listés ci-après peuvent être envisagés, éventuellement en complément de tout ou partie des attributs déjà mentionnés ci-avant (date d'exécution au plus tôt, délai d'exécution, localisation) :
- identifiant : cet attribut définit une donnée permettant d'identifier une tâche parmi les autres tâches. Il peut s'agir par exemple d'un nombre entier, le nombre affecté à une tâche nouvellement associée au système de traitement 11 pouvant être égal au nombre de la tâche précédemment considérée comme étant la plus récente incrémenté d'une unité. De cette manière, il est possible de définir une relation d'ordre sur l'ensemble des tâches associées au système de traitement 11 ;
- ressources en termes de calculs (cpu) et/ou de mémoire (ram) et/ou de bande passante nécessaires à l'exécution d'une tâche ;
- ressources en termes de calculs (cpu) et/ou de mémoire (ram) et/ou de bande passante nécessaires à la migration d'une tâche d'un dispositif de traitement 11 J vers un autre dispositif de traitement 11 J (i différent de j) ;
- date d'exécution au plus tard ;
- période d'exécution : cet attribut définit la périodicité selon laquelle une tâche est exécutée ;
- durée d'exécution ;
- contrainte d'affinité : cet attribut définit, pour une tâche TA à laquelle est associée ledit attribut, le ou les autres tâches devant être exécutées sur le même dispositif de traitement 11 J que celui destiné à exécuter ladite tâche TA ;
- contrainte d'anti-affinité : cet attribut définit, pour une tâche TA à laquelle est associée ledit attribut, le ou les autres tâches ne devant pas être exécutées sur le même dispositif de traitement ll_i que celui destiné à exécuter ladite tâche TA.
[0075] La suite de la description vise de manière plus spécifique le cas d'une tâche de type informatique, et plus particulièrement le cas où une telle tâche informatique correspond à une mesure de l'état du réseau de communication auquel appartient le système de traitement 11 ou de la qualité d'un service supporté par ledit réseau de communication. Une telle tâche est dénommée ci-après « tâche de mesure » (l'expression « élément de mesure » peut également être employée dans l'état de l'art). On considère en outre que chaque tâche de mesure est
exécutée grâce à une application de mesure intégrée à un conteneur. Un tel conteneur est par exemple déjà déployé (i.e. installé) sur un dispositif de traitement ll_i, ou bien, selon un autre exemple, est destiné à y être déployé suite à la mise en œuvre d'un procédé d'ordonnancement selon l'invention.
[0076] Autrement dit, on adopte désormais ici la définition plus générale donnée ci-avant selon laquelle une tâche de mesure s'identifie à l'application de mesure (et donc en définitive aussi au conteneur comprenant cette application de mesure) à laquelle elle est attachée. En conséquence, et au sens de la présente invention, les expressions suivantes « tâche de mesure transmise » et « migration de tâche de mesure » sont respectivement équivalentes aux expressions suivantes « application logicielle transmise (conteneur transmis) » et « migration d'application logicielle (migration de conteneur) ».
[0077] Par « migration d'une tâche », on fait référence ici au fait qu'une tâche peut être affectée, pour un premier intervalle de temps, à un premier dispositif de traitement 11 J appartenant aux dispositifs définis par la contrainte de localisation attachée à cette tâche, puis, pour un deuxième intervalle de temps ultérieur audit premier intervalle de temps, à un deuxième dispositif de traitement 11 J (l'indice j étant différent de l'indice i) appartenant aux dispositifs définis par la contrainte de localisation attachée à cette tâche. Bien entendu, ce processus peut se prolonger, menant ainsi à davantage de migrations, sachant que rien n'exclut qu'une tâche migre vers un dispositif auprès duquel elle a déjà été affectée auparavant.
[0078] Pour la suite de la description, on adopte également la convention selon laquelle une tâche de mesure peut être représentée au moyen d'une succession de champs CJ, I étant un indice entier, de la manière suivante :
C_1 (C_2 C_3) C_4 C_5 C_6 (C_7 C_8 C_9) (C_10 C_ll C_12) [C_13 ... C_{k}] [C_{k + 1} ... C_{k + j}] [C_{k + j +1} ... C_{n}], chaque champ étant représentatif d'un attribut associé à ladite tâche de mesure. On note que les parenthèses « ( «, « ) », ainsi que les crochets « [« , « ] » sont utilisés ici comme délimiteurs afin de regrouper entre eux des attributs de même nature. Bien entendu, d'autres délimiteurs peuvent être utilisés, voire également aucun délimiteur.
[0079] Plus particulièrement, on considère que :
- C_1 est représentatif de l'identifiant de ladite tâche de mesure, cet identifiant correspondant à un nombre entier. En outre, les identifiants des tâches sont incrémentés d'une unité suivant l'ordre chronologique de transmission desdites tâches au système de traitement 11 ;
- C_2 et C_3 sont respectivement représentatifs de la date d'exécution au plus tôt et de la date d'exécution au plus tard ;
- C_4, C_5 et C_6 sont respectivement représentatifs de la période d'exécution, de la durée d'exécution et du délai maximal d'exécution ;
- C_7, C_8 et C_9 sont respectivement représentatifs des ressources de calculs, de mémoire et de bande passante nécessaires à l'exécution de ladite tâche de mesure ;
- C_10, C_ll et C_12 sont respectivement représentatifs des ressources de calculs, de mémoire et de bande passante nécessaires à une migration de ladite tâche de mesure ;
- C_13, ... , C_{k} sont respectivement représentatifs d'identifiants de dispositifs de traitement 11 J associés à une contrainte de localisation (autrement dit, k - 13 + 1 est inférieur ou égal au nombre de dispositifs de traitement ll_i inclus dans le système de traitement 11) ;
- C_{k + 1}, ..., C_{k + j} sont respectivement représentatifs d'identifiants de tâches de mesure associées à une contrainte d'affinité ;
- C_{k + j +1}, ..., C_{n} sont respectivement représentatifs d'identifiants de tâches de mesure associées à une contrainte d'anti-affinité.
[0080] A titre illustratif, considérons la tâche de mesure suivante : 1 (1 6) 3 2 0 (60 60 60) (1 1 1) [1 2] [ ] [ ]
Dans cet exemple, on suppose que les nombres donnés pour des champs temporels (i.e. des champs associés à des attributs faisant référence à une quantité temporelle) sont normalisés par rapport à un référentiel temporel commun à toutes les autres tâches de mesure associées au système de traitement 11. Ladite tâche de mesure a pour identifiant le nombre 1. Sa date d'exécution au plus tôt (respectivement au plus tard) est égal à 1 (respectivement égal à 6). Sa période d'exécution, sa durée d'exécution et son délai maximal d'exécution sont respectivement égaux à 3, 2 et 0 (i.e. l'exécution de cette tâche de mesure ne peut pas être décalée dans le temps). Ses ressources (calculs, mémoire, bande passante) pour l'exécution sont toutes égales à 60. Les ressources (calculs, mémoire, bande passante) pour une migration sont quant à elles toutes égales à 1. Par ailleurs, ladite tâche de mesure est associée à une contrainte de localisation selon laquelle elle doit être exécutée par l'un quelconque parmi deux dispositifs de traitement ll_i (ici il s'agit plus particulièrement des dispositifs 11_1 et 11_2). Enfin, aucune contrainte d'affinité/d'anti-affinité n'est attachée à ladite tâche de mesure.
[0081] Bien que l'invention soit désormais décrite en considérant qu'une tâche correspond à une tâche de mesure, il importe de noter que l'invention reste applicable indépendamment de la nature des tâches considérées, ces dernières pouvant donc être unitaires et/ou générales, sans limitation quant au procédé applicatif auquel elles peuvent se référer.
[0082] Le système informatique 10 comporte également un dispositif d'ordonnancement 12 configuré pour réaliser des traitements permettant d'ordonnancer une ou plusieurs tâches de mesure dans le système de traitement 11, en mettant en œuvre ledit procédé d'ordonnancement.
[0083] De manière conventionnelle, l'ordonnancement d'une tâche de mesure dans le système de traitement 11 fait référence au fait d'affecter (i.e. attribuer) à ladite tâche de mesure, en vue de son exécution et en fonction des attributs associés à ladite tâche de mesure :
- au moins un dispositif de traitement 11 J donné appartenant au système de traitement 11,
- une date à laquelle ladite tâche de mesure doit être exécutée par le dispositif de traitement affecté.
[0084] Le dispositif d'ordonnancement 12 selon l'invention, ainsi que le procédé d'ordonnancement selon l'invention, se distinguent néanmoins des dispositifs et procédés de l'état de l'art en ce qu'ils permettent d'ordonnancer de manière réactive (i.e. avec très peu de latence) une ou plusieurs tâches dans le système de traitement 11, tout en étant simples à implémenter.
[0085] La figure 2 représente schématiquement un exemple d'architecture matérielle du dispositif d'ordonnancement 12 selon l'invention appartenant au système informatique 10 de la figure 1.
[0086] Tel qu'illustré par la figure 2, le dispositif d'ordonnancement 12 dispose de l'architecture matérielle d'un ordinateur. Ainsi, le dispositif d'ordonnancement 12 comporte, notamment, un processeur 1, une mémoire vive 2, une mémoire morte 3 et une mémoire non volatile 4. Il comporte en outre d'un module de communication 5.
[0087] La mémoire morte 3 du dispositif d'ordonnancement 12 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1 et sur lequel est enregistré un programme d'ordinateur PROG conforme à l'invention, comportant des instructions pour l'exécution d'étapes du procédé d'ordonnancement selon l'invention. Le programme PROG définit des modules fonctionnels du dispositif d'ordonnancement 12, qui s'appuient ou commandent les éléments matériels 1 à 5 du dispositif d'ordonnancement 12 cités précédemment, et qui comprennent notamment :
- un module de détermination MOD_DET configuré pour déterminer, pour un premier ensemble de tâches associées au système de traitement 11, des valeurs de paramètres d'exécution d'un algorithme métaheuristique configuré pour ordonnancer, dans ledit système de traitement 11, au moins une tâche de mesure associée audit système de traitement 11 en optimisant une fonction objectif,
- un module d'ordonnancement MOD_ORD.
[0088] Ledit module d'ordonnancement MOD_ORD comprend :
- un sous-module d'exécution SS_MOD_EXEC configuré pour exécuter l'algorithme métaheuristique paramétré par lesdites valeurs pour au moins un deuxième ensemble de tâches associé audit système de traitement,
- un sous-module de vérification SS_MOD_VERIF configuré pour vérifier si un critère d'arrêt CR_STOP est atteint ou non à l'issue d'une exécution de l'algorithme métaheuristique mise en œuvre par ledit sous-module d'exécution pour ledit moins un deuxième ensemble,
- un sous-module de mise à jour SS_MOD_MAJ configuré pour mettre à jour ledit au moins un deuxième ensemble, par retrait d'au moins une tâche dudit au moins un deuxième ensemble, lorsque ledit critère d'arrêt n'est pas atteint.
[0089] Les sous-modules d'exécution SS_MOS_EXEC et de mise à jour SS_MOD_MAJ sont activés de façon itérative tant que le sous-module de vérification SS_MOD_VERIF détermine que le critère d'arrêt n'est pas atteint.
[0090] Le module de communication 5 permet notamment au dispositif d'ordonnancement 12 de communiquer, via le réseau de communication, avec les dispositifs de traitement 11 J, pour notamment leur transmettre les tâches de mesure à exécuter (autrement dit, dans le cas d'espèce, il est fait référence à la transmission des applications de mesure respectivement associées auxdites tâches de mesure) ainsi que les dates en lesquelles ces tâches de mesure doivent être exécutées conformément au résultat obtenu par le procédé d'ordonnancement. A cet effet, le module de communication 5 comporte une interface de communication, filaire ou non filaire, apte à mettre en œuvre tout protocole adapté au réseau de communication et connu de l'homme du métier.
[0091] Ainsi, et selon l'invention, l'ordonnancement d'une ou plusieurs tâches de mesure dans le système de traitement 11, par le dispositif d'ordonnancement 12, s'appuie sur un algorithme métaheuristique. L'utilisation d'un algorithme métaheuristique tient au fait que la recherche d'un ordonnancement optimal (i.e. d'une solution d'ordonnancement optimisant la fonction objectif) se révèle être un problème d'optimisation particulièrement complexe à résoudre (NP- difficile). Cette complexité résulte de manière fondamentale de la nature même dudit problème d'optimisation qui est ici dépendante du fait que lesdites tâches sont classiquement associées auxdits attributs définissant des contraintes spécifiques d'exécution de chacune de ces tâches. Cette complexité inhérente au problème d'optimisation ainsi posé est bien entendu encore accrue lorsque le nombre de tâches à ordonnancer dans le système de traitement est important.. La recherche d'une solution d'ordonnancement représente donc un problème fortement contraint.
[0092] De manière conventionnelle, l'algorithme métaheuristique permet de rechercher une solution au problème d'ordonnancement de manière itérative. Plus particulièrement, des solutions d'ordonnancement candidates sont déterminées à chaque itération ayant lieu lors de l'exécution de l'algorithme métaheuristique. Par « solution candidate » (ou encore « ordonnancement candidat »), on fait référence à une solution permettant d'ordonnancer les tâches associées au système de traitement 11 en respectant les contraintes d'exécution respectivement associées auxdites tâches du fait de leurs attributs. L'objectif final de l'algorithme métaheuristique consiste dès lors à trouver, parmi ces solutions candidates, celle qui optimise la fonction objectif. Ainsi, la notion d'optimalité de l'algorithme métaheuristique est définie au regard de la fonction objectif considérée. On note que l'expression « fonction objectif » est encore équivalente à l'expression « fonction (de) coût ».
[0093] Il convient de noter que chaque tâche peut également être associée, pour chaque ordonnancement candidat trouvé par l'algorithme métaheuristique, à un délai, dit « délai d'exécution effectif », représentatif de la durée suivant laquelle l'exécution de ladite tâche est
différée par rapport à ladite date d'exécution souhaitée. Un tel délai d'exécution effectif correspond donc à un délai réel d'exécution utilisée dans un ordonnancement candidat. Ainsi, une tâche peut être associée à autant de délais d'exécution effectifs qu'il y d'ordonnancements candidats (en considérant qu'un délai d'exécution effectif peut être nul), ces délais d'exécution effectifs pouvant être distincts entre eux.
[0094] Dans le présent mode de réalisation, l'algorithme métaheuristique est configuré de sorte à autoriser la migration de chaque tâche (prise en compte par ce dernier) entre les dispositifs 11 J de ladite pluralité de dispositifs de traitement définie par la contrainte de localisation attachée à ladite tâche.
[0095] Par exemple, en reprenant l'exemple précédent dans lequel une tâche de mesure s'écrit :
1 (1 6) 3 2 0 (60 60 60) (1 1 1) [1 2] [ ] [ ] on a que la contrainte de localisation définit les dispositifs de traitement 11_1 et 11_2. Dès lors, la mise en œuvre de l'algorithme métaheurisitique peut mener, par exemple, à une solution d'ordonnancement dans laquelle ladite tâche est affectée au dispositif 11_1 pour les temps t=l et t=2, puis être migrée vers le dispositif 11_2 pour y être finalement affectée pour les temps t=3, t=4 et t=6.
[0096] Il convient toutefois de noter que le fait de considérer que des migrations de tâches sont autorisés entre dispositifs de traitement 11 J, sous respect de contraintes de localisation et au moyen d'une configuration idoine de l'algorithme métaheuristique, ne constitue pas une limitation de l'invention. Ainsi, rien n'exclut d'envisager que les migrations soient interdites pour tout ou partie des tâches prises en compte par l'algorithme métaheuristique.
[0097] De plus, dans le mode de réalisation considéré ici, la fonction objectif comporte deux termes qui sont sommés entre eux.
[0098] Plus particulièrement, ladite fonction objectif comporte un terme égal à la somme des délais d'exécution effectifs respectivement associés aux tâches prises en compte par l'algorithme métaheuristique, c'est-à-dire les tâches qui sont associées au système de traitement 11 lors de l'exécution dudit algorithme métaheuristique et qui sont donc prises en entrée ce dernier. En outre, ledit premier terme est destiné à être minimisé par ledit algorithme métaheuristique. On comprend que la minimisation de ce premier terme revient à minimiser le risque qu'au moins une tâche ne puisse pas être exécutée à temps (i.e. dans l'intervalle de temps dont les bornes sont définies par les dates d'exécution au plus tôt et au plus tard, tout en prenant en compte un éventuel délai d'exécution borné par le délai maximal d'exécution).
[0099] De plus, la fonction objectif comporte un deuxième terme égal à un nombre de migrations des tâches prises en compte par l'algorithme métaheuristique (i.e. on comptabilise le nombre de migrations de chaque tâche prise en compte par l'algorithme métaheuristique, et on somme les nombres de migrations ainsi compatibilisés), ledit deuxième terme étant également destiné à être minimisé par ledit algorithme métaheuristique. On comprend que la minimisation de ce
deuxième terme revient à minimiser la complexité de la solution d'ordonnancement susceptible d'être fournie par l'algorithme métaheuristique, et donc aussi à minimiser les ressources utilisées par le système de traitement 11. La minimisation de cet terme revient également, encore une fois, à minimiser le risque qu'au moins une tâche ne puisse pas être exécutée à temps (une migration étant en effet consommatrice en temps et une tâche ne pouvant pas être exécutée lors de sa migration entre deux dispositifs de traitement 11 J).
[0100] Le choix selon lequel la fonction objectif comporte lesdits deux termes ne constitue qu'une variante d'implémentation de l'invention. Ainsi, rien n'exclut que la fonction objectif ne comporte que l'un desdits deux termes ou plus généralement n'importe quelle somme pondérée de ces deux termes. On comprend toutefois que si la fonction objectif comporte uniquement le deuxième terme, il est nécessaire que l'algorithme métaheuristique soit configuré de sorte à autoriser les migrations de tâches.
[0101] Par ailleurs, rien n'exclut non plus de considérer que la fonction objectif comporte un ou plusieurs termes qui diffèrent des premier et deuxième termes, que lesdits premier et deuxième termes soient pris en compte ou non dans la fonction objectif. D'une manière générale, aucune limitation n'est attachée à la manière dont est définie la fonction objectif, cette dernière pouvant dépendre ou non des attributs associés aux tâches aptes à être exécutées par le système de traitement 11, mais aussi d'éventuelles contraintes d'exécution qui peuvent être attachées audit système de traitement 11 (limitation de la charge de calculs, maximisation du nombre de tâches à exécuter entre deux dates données, etc.).
[0102] Dans le présent mode de réalisation, l'algorithme métaheuristique utilisé pour ordonnancer le ou les tâches associées au système de traitement 11 est un algorithme de colonies de fourmis.
[0103] De manière connue en soi, un tel algorithme de colonies de fourmis est considéré comme une métaheuristique à population, où chaque solution susceptible d'être fournie est représentée par une fourmi se déplaçant dans un espace de recherche pouvant être modélisé au moyen d'un graphe. Ainsi, les fourmis se déplacent au sein dudit graphe en marquant les meilleures solutions (le terme « meilleures » caractérisant ici les solutions qui tendent vers l'optimalité mesurée au moyen de la fonction objectif) au moyen de phéromones, et en tenant compte des marquages précédemment effectués pour optimiser leur recherche.
[0104] Dans le contexte de l'invention, le graphe au sein duquel les fourmis sont destinées à se déplacer est un graphe dont chaque nœud correspond à l'ordonnancement d'une tâche dans le système de traitement 11. Plus particulièrement, et eu égard au fait que le système de traitement 11 comporte une pluralité de dispositifs de traitement 11 J conformément au présent mode de réalisation, chaque nœud du graphe correspond à l'affectation (i.e. l'attribution) à une tâche donnée d'au moins un desdits dispositifs 11 J (une pluralité de dispositifs pouvant être attribués si des migrations sont envisagées) ainsi que d'une date
d'exécution (l'exécution de la tâche pouvant éventuellement se répéter si elle est associée à une période d'exécution).
[0105] Il importe de noter que l'ensemble des nœuds accessibles à une fourmi évolue au cours de son déplacement dans le graphe. En effet, le déplacement d'une fourmi s'effectue sous le respect des contraintes d'exécution associées aux tâches. Ainsi, lorsqu'une fourmi se trouve sur un nœud, seuls les nœuds permettant de définir une solution candidate respectueuse desdites contraintes d'exécution sont accessibles dans la poursuite du déplacement de la fourmi. De telles dispositions permettent classiquement de limiter la charge de calcul générée par l'exécution de l'algorithme de fourmis, en évitant un parcours exhaustif du graphe.
[0106] De manière conventionnelle, un algorithme de colonies de fourmis peut être mis en œuvre suivant différentes variantes, notamment une variante dite « MMAS » (acronyme de l'expression anglo-saxonne « Max-Min Ant System »), une variante dite « ACS » (acronyme de l'expression anglo-saxonne « Ant Colony System »), etc. qui peuvent finalement être toutes regroupées dans une catégorie dite « ACO » (acronyme de l'expression anglo-saxonne « Ant Colony Optimization »). De telles variantes sont bien connues de l'homme du métier et sont par exemple décrites dans le document : « Ant colony optimization », Dorigo M., Stutzle T., MIT Press, Cambridge, MA, 2004.
[0107] Pour la suite de la description, on considère de manière nullement limitative que l'algorithme de fourmis utilisé pour ordonnancer la ou les tâches transmises au système de traitement 11 est de type ACS. Dès lors, l'algorithme de fourmis ACS mis en œuvre dans le cadre de la présente invention est classiquement paramétré au moyen de différents paramètres d'exécution qui comprennent, notamment :
- a : ce paramètre permet de contrôler l'importance relative des phéromones dans le choix d'un chemin lors du parcours du graphe ;
- b : ce paramètre est encore appelé « visibilité » dans l'état de l'art et permet de contrôler l'importance accordée au choix d'un nœud lorsqu'une fourmis est positionnée sur un autre nœud. Dit encore autrement, ce paramètre contrôle l'importance relative des informations heuristiques dans le choix d'un chemin lors du parcours du graphe ;
- Q_0 : ce paramètre permet de contrôler l'importance relative donnée à l'intensification ou à la diversification de la recherche d'une solution lors du parcours du graphe. Il s'agit d'une variable aléatoire uniformément distribuée entre 0 et 1 ;
- p : ce paramètre permet de contrôler la quantité de phéromones évaporée sur les nœuds à chaque itération ;
- N_ant : ce paramètre définit le nombre de fourmis explorant le graphe.
[0108] Dans le présent mode réalisation, l'algorithme ACS utilisé pour l'ordonnancement est également paramétré au moyen d'un paramètre d'exécution min_eva permettant de contrôler une quantité minimale de phéromones pouvant être associée à un nœud (par dépôt et/ou évaporation lors du passage d'une fourmi sur ledit nœud). L'utilisation d'un tel paramètre
min_eva est optionnelle, et se montre avantageuse en ce qu'elle permet d'éviter la stagnation de l'algorithme ACS au début de sa mise en œuvre en favorisant la diversification des chemins parcourus par les fourmis ainsi qu'en évitant une convergence vers un optimum local.
[0109] Bien que l'invention soit ici décrite en considérant que l'algorithme de fourmis est de type ACS, il convient cependant de noter qu'elle reste applicable quelle que soit la variante d'algorithme de fourmis considérée. En outre, et de manière plus générale, le choix consistant à considérer un algorithme de fourmis en tant qu'algorithme métaheuristique ne constitue qu'un exemple d'implémentation de l'invention. En effet, l'invention reste applicable quel que soit l'algorithme métaheuristique considéré, ce dernier étant dans tous les cas paramétré au moyen de différents paramètres d'exécution. Par exemple, il peut s'agir d'un algorithme de recuit simulé, d'un algorithme GRASP (acronyme de l'expression anglo-saxonne « Greedy Randomized Adaptative Search Procedure »), d'un algorithme évolutionniste (exemple : algorithme génétique), etc. En tout état de cause, l'homme du métier sait adapter la présente description en fonction de l'algorithme métaheuristique choisi.
[0110] La suite de la description vise à décrire un mode particulier de mise en œuvre du procédé d'ordonnancement selon l'invention.
[0111] La figure 3 représente, sous forme d'ordinogramme, un mode particulier de mise en œuvre du procédé d'ordonnancement selon l'invention par le dispositif d'ordonnancement 12 de la figure 2.
[0112] Tel qu'illustré par la figure 3, le procédé d'ordonnancement comporte, pour un premier ensemble E_1 de tâches associé au système de traitement 11, une étape E10 de détermination de valeurs des paramètres d'exécution de l'algorithme de fourmis ACS. Ladite étape E10 est mise en œuvre par le module de détermination MOD_DET équipant le dispositif d'ordonnancement 12.
[0113] La détermination de telles valeurs des paramètres d'exécution de l'algorithme ACS est une étape cruciale du procédé d'ordonnancement, en ce qu'elle offre la possibilité de paramétrer l'algorithme de fourmis ACS. Autrement dit, déterminer de telles valeurs permet de contrôler le fonctionnement de l'algorithme ACS, et donc in fine la manière dont sont recherchées des solutions d'ordonnancement des tâches qui ont été associées au système de traitement 11, et qui sont donc connues de ce dernier, non seulement au moment de l'exécution de l'étape E10, mais également ultérieurement pour éventuellement un ou plusieurs autres ensembles de tâches.
[0114] Dans le mode de mise en œuvre illustré par la figure 3, les valeurs de paramètres d'exécution sont déterminées au moyen d'un algorithme mettant en œuvre une méthode de plan d'expériences paramétrée par ladite fonction objectif.
[0115] Il est connu que l'algorithme de fourmis, selon l'une quelconque de ses variantes, donc en particulier l'algorithme ACS, peut présenter une sensibilité importante par rapport à ses
paramètres d'exécution. C'est pourquoi la mise en œuvre d'une méthode de plan d'expériences appropriée peut permettre d'en améliorer la robustesse.
[0116] A cet effet, et selon un exemple préféré de mise en œuvre, la méthode de plan d'expériences utilisée au cours de l'étape E10 pour déterminer les valeurs des paramètres d'exécution est la méthode Taguchi.
[0117] De manière générale, ladite méthode Taguchi est une méthode statistique permettant de réaliser des plans d'expériences ayant pour objectif de réduire la sensibilité aux perturbations externes d'un algorithme faisant l'objet desdites expériences. Cette méthode fournit une approche simple et systématique pour déterminer des valeurs optimales des paramètres d'exécution dudit algorithme, de sorte à en optimiser la robustesse.
[0118] Dans son principe général, et en prenant en compte le contexte défini par le présent mode de mise en œuvre, la mise en œuvre de la méthode Taguchi consiste à définir un ensemble de valeurs pouvant être prises par chacun des paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva) puis à réaliser une suite d'expérimentations de l'algorithme de fourmis ACS. Plus particulièrement, chaque expérimentation correspond à une mise en œuvre dudit algorithme de fourmis ACS dont les valeurs des paramètres d'exécution sont choisies dans ledit ensemble de valeurs.
[0119] Le propre de la méthode Taguchi consiste à ne pas tester toutes les combinaisons possibles de valeurs dans ledit ensemble de valeurs, de sorte à réduire le nombre d'expérimentations à faire pour trouver les valeurs respectives des paramètres d'exécution permettant d'optimiser la robustesse de l'algorithme de fourmis ACS au regard des tâches jusqu'alors connues (i.e. les tâches dudit premier ensemble E_l). Le fait de chercher à optimiser la robustesse de l'algorithme de fourmis ACS pour ledit premier ensemble E_1 de tâches permet également de garantir la robustesse pour d'autres tâches susceptibles d'être ultérieurement associées au système de traitement 11.
[0120] Pour ce faire, la méthode Taguchi s'appuie sur des matrices orthogonales référencées dans l'état de l'art qui permettent de déterminer quelles combinaisons de valeurs des paramètres d'exécution il convient de privilégier pour lesdites expérimentations. La méthode Taguchi n'est toutefois pas davantage décrite ici dans la mesure où elle est connue et très largement documentée. Pour plus de détails, il est possible de consulter le document : « La méthodologie Taguchi : introduction à la recherche technologique-gestion fonctionnelle de la qualité ou gestion «off-line» », Constant C., Revue de statistique appliquée, 37(2), 47-77, 1989. En outre, un exemple détaillé de mise en œuvre du procédé d'ordonnancement est décrit ultérieurement.
[0121] Il est à noter que le choix selon lequel la méthode de plan d'expériences est la méthode Taguchi ne constitue qu'une variante d'implémentation de l'invention. L'invention reste en effet applicable indépendamment de la méthode de plan d'expériences considérée (plan en étoile, plan factoriel, plan avec matrices de Hadamard, etc.).
[0122] En outre, et bien que le présent mode de mise en œuvre soit décrit en considérant que les valeurs de paramètres d'exécution sont déterminées au moyen d'un algorithme mettant en œuvre une méthode de plan d'expériences, rien n'exclut non plus de considérer que la détermination desdites valeurs soient mise en œuvre différemment. Par exemple, lesdites valeurs peuvent être déterminées de manière forcée (par exemple par un utilisateur), ou bien encore par des méthodes d'apprentissage supervisées ou non supervisées, etc. D'une manière générale, aucune limitation n'est attachée à la manière dont sont déterminées les valeurs des paramètres d'exécution.
[0123] Le procédé d'ordonnancement comporte également, pour au moins un deuxième ensemble E_2 de tâches associé audit système de traitement 11, une étape E20 d'ordonnancement. Ladite étape E20 est mise en œuvre par le module d'ordonnancement MOD_ORD équipant le dispositif d'ordonnancement 12.
[0124] Il est à noter que les tâches comprises dans le deuxième ensemble considéré immédiatement après l'ensemble E_1 comportent au moins les tâches déjà comprises dans ledit premier ensemble E_l. En effet, l'étape E10 vise uniquement à déterminer des valeurs des paramètres d'exécution de l'algorithme métaheuristique et ne fournit donc pas une solution d'ordonnancement en tant que tel. Bien entendu, des tâches autres que celles dans le premier ensemble E_1 peuvent être prises en compte lors de l'exécution de l'étape E20 pour le deuxième ensemble E_2, le nombre desdites autres tâches n'étant pas un facteur limitant de l'invention.
[0125] Ladite étape E20 d'ordonnancement comporte :
- une sous-étape E20_l d'exécution de l'algorithme métaheuristique paramétré par les valeurs déterminées lors de l'étape E10 (ladite sous-étape E20_l est mise en œuvre par le sous- module d'exécution SS_MOD_EXEC), et, si un critère d'arrêt CR_STOP de l'algorithme métaheuristique n'est pas atteint à l'issue de ladite exécution (sous-étape E20_2 de vérification de l'atteinte ou non du critère d'arrêt CR_STOP) (i.e. aucune solution d'ordonnancement n'est trouvée par l'algorithme métaheuristique au regard dudit critère d'arrêt CR_STOP) (ladite sous-étape E20_2 est mise en œuvre par le sous-module de vérification SS_MOD_VERIF),
- une sous-étape E20_3 de mise à jour dudit au moins un deuxième ensemble E_2, par retrait d'au moins une tâche dudit au moins un deuxième ensemble E_2 (ladite sous-étape E20_3 est mise en œuvre par le sous-module de mise à jour SS_MOD_MAJ).
[0126] En outre, ladite sous-étape d'exécution E20_l, ainsi que ladite sous-étape E20_3 de mise à jour le cas échéant, sont itérées tant que le critère d'arrêt CR_STOP n'est pas atteint (ce qui signifie bien entendu que la sous-étape E20_2 de vérification est également itérée). Bien entendu, lorsque le critère d'arrêt CR_STOP n'est pas atteint, l'ensemble de tâches considéré au cours d'une itération desdites sous-étapes est l'ensemble de tâches mis à jour lors de l'itération précédente.
[0127] Le fait d'itérer l'étape d'ordonnancement E20 permet, en raison des mises à jour des ensembles de tâches considérés au cours desdites itérations, de garantir l'obtention d'une solution d'ordonnancement. En effet, plus l'étape d'ordonnancement E20 est itérée, moins il y a de tâches à ordonnancer du fait desdites mises à jour.
[0128] Selon un exemple de mise en œuvre, le critère d'arrêt CR_STOP correspond à une durée donnée d'exécution de l'algorithme métaheuristique, de sorte que si aucune solution d'ordonnancement n'est fournie par ledit algorithme métaheuristique une fois ladite durée dépassée, il est considéré que ce dernier n'a as convergé.
[0129] Alternativement, le critère d'arrêt CR_STOP peut correspondre à un nombre donné d'itérations dudit algorithme métaheursitique. A nouveau, si ce nombre d'itérations est dépassé au cours de ladite sous-étape E20_l, il est considéré que ce dernier n'a as convergé.
[0130] Selon encore une autre alternative, le critère d'arrêt CR_STOP peut correspondre à un seuil de la fonction objectif, de sorte que si ce seuil n'est pas atteint par les éventuelles solutions d'ordonnancement trouvées par l'algorithme métaheuristique, ces dernières sont jugées non satisfaisantes.
[0131] D'une manière générale, aucune limitation n'est attachée à la nature du critère d'arrêt CR_STOP considéré dans ledit procédé d'ordonnancement
[0132] Selon un exemple particulier de mise en œuvre, ladite au moins une tâche retirée lors de ladite sous-étape E20_3 de mise à jour est la tâche dont l'association au système de traitement 11 est la plus récente parmi les tâches dudit au moins un deuxième ensemble E_2 de tâches (par exemple, la tâche transmise en dernier au système de traitement 11 pour ordonnancement).
[0133] Autrement dit, dans cet exemple particulier, et conformément à la convention de notation adoptée auparavant, la tâche éventuellement retirée est celle dont l'identifiant est le plus grand parmi les identifiants des tâches considérées au cours d'une mise en œuvre de l'étape d'ordonnancement E20. La mise en œuvre de cet exemple se justifie, notamment, par le fait qu'il peut être considéré comme plus prioritaire d'exécuter une tâche ancienne par rapport à une tâche récente.
[0134] Rien n'exclut cependant de considérer que la tâche retirée lors de ladite sous-étape E20_3 de mise à jour diffère de la tâche dont la transmission au système de traitement 11 est la plus récente. Par exemple, chaque tâche peut être associée à un attribut déterminant un niveau de priorité d'exécution de ladite tâche, ce niveau de priorité n'étant pas corrélé à la date de transmission d'une tâche au système de traitement 11. Dès lors, la tâche retirée lors de ladite sous-étape E20_3 de mise à jour est la tâche dont la priorité est la moins élevée. D'une manière plus générale, aucune limitation n'est attachée à la tâche pouvant être retirée lors de ladite sous-étape E20_3 de mise à jour.
[0135] En outre, rien n'exclut non plus de considérer le retrait de plus d'une tâche au cours de la mise en œuvre d'une sous-étape E20_3. Par exemple, les N tâches les plus récentes ou les
moins prioritaires peuvent être retirées, N étant un entier strictement supérieur à 1. Aucune limitation n'est attachée à la valeur dudit nombre N, ni d'ailleurs aussi au critère que la base duquel le retrait d'une pluralité de tâches est envisagé.
[0136] Il convient par ailleurs de noter que le retrait d'une tâche n'implique pas que ladite tâche n'est pas exécutée. Une tâche ainsi retirée peut en effet demeurer mémorisée pour être exécutée ultérieurement, lors d'une nouvelle mise en œuvre de l'étape d'ordonnancement E20.
[0137] Selon un exemple de mise en œuvre, l'étape d'ordonnancement E20 est mise en œuvre dès que M tâches sont nouvellement associées au système de traitement 11 par rapport à la mise en œuvre précédente de ladite étape d'ordonnancement, M étant un entier supérieur ou égal à 1. Par exemple, M est égal à 3.
[0138] Le fait d'itérer ainsi l'étape d'ordonnancement E20 permet d'ordonnancer des tâches transmises de manière récurrente au système de traitement 11. Il est en outre implicite que l'ordonnancement de tâches nouvellement associées au système de traitement 11 tient compte des tâches éventuellement déjà ordonnancées via ledit procédé d'ordonnancement selon l'invention.
[0139] Aucune limitation n'est attachée à la valeur dudit entier M. On comprend que plus M est grand, plus le risque de ne pas trouver de solution d'ordonnancement au cours d'une mise en œuvre de la sous-étape E20_l d'exécution est grand, obligeant ainsi à mettre en œuvre la sous-étape E20_3 de mise à jour. Dit encore autrement, il existe un compromis entre la valeur de M et la rapidité de convergence de l'ordonnancement.
[0140] Le procédé d'ordonnancement a été décrit jusqu'à présent en considérant que l'étape E10 de détermination de valeurs des paramètres d'exécution était exécutée une seule fois. L'invention ne se limite néanmoins pas à une telle mise en œuvre. En effet, rien n'exclut d'envisager, suivant d'autres modes de mise en œuvre (non représentés sur la figure 3), que l'étape E10 de détermination est itérée de manière récurrente. Le fait d'itérer ainsi ladite étape E10 permet de mettre à jour les valeurs desdits paramètres d'exécution. En effet, les tâches qui sont considérées lors d'une itération de ladite étape E10 sont a priori différentes de celles considérées lors de la précédente mise en œuvre de l'étape E10. Procéder ainsi permet de paramétrer au mieux l'algorithme métaheuristique au regard de l'évolution des tâches transmises au système de traitement 11.
[0141] A titre illustratif, l'étape E10 est itérée de manière journalière, par exemple à heure fixe.
[0142] L'invention vise par ailleurs un procédé d'exécution d'au moins une tâche par le système de traitement 11. Ledit procédé d'exécution (non représenté sur les figures) comporte :
- une étape d'ordonnancement d'au moins une tâche dans ledit système de traitement 11 conformément au procédé d'ordonnancement selon l'invention,
- une étape d'exécution de ladite au moins une tâche selon l'ordonnancement déterminé au cours de ladite étape d'ordonnancement.
[0143] On décrit désormais un exemple détaillé de mise en œuvre dudit procédé d'exécution. A cet effet, on considère dans cet exemple que le système de traitement 11 comporte deux dispositifs de traitement 11_1, 11_2 (N=2).
[0144] Ces dispositifs de traitement 11_1, 11_2 peuvent être décrits suivant une convention similaire à celle utilisée pour les tâches de mesure. Plus particulièrement, chaque dispositif de traitement 11_1 s'écrit ici au moyen de différents champs P_l, ...,P_k (k étant un indice entier propre à chaque dispositif de traitement) :
P_1 (P_2 P_3 P_4) [P_5 ... P_k] où :
- P_1 est représentatif d'un identifiant du dispositif de traitement (dans le cas présent, il s'agit de l'indice « i » utilisé dans le sigle « 11 J ») ;
- P_2, P_3 et P_4 sont respectivement représentatifs des ressources nominales (i.e. en dehors de toute sollicitation) de calculs, de mémoire et de bande passante dudit dispositif de traitement ;
- P_5, ..., P_k sont respectivement représentatifs des identifiants associés aux applications de mesure (ils s'agit donc aussi des identifiants des tâches de mesure respectivement associées auxdites applications de mesure) qui ont déjà été affectées audit dispositif de traitement en attente de leur exécution, suite par exemple à une précédente mise en œuvre du procédé d'ordonnancement.
[0145] Dans le présent exemple, on considère que, avant la mise en œuvre dudit procédé d'exécution, le dispositif de traitement 11_1 s'écrit :
1 (100 100 100) [1] et que le dispositif de traitement 11_2 s'écrit :
2 (100 100 100) [2],
[0146] On considère en outre que les tâches de mesure dont les identifiants sont respectivement 1 et 2 s'écrivent :
- tâche TA_1 avec identifiant 1 : 1 (1 6) 3 2 0 (60 60 60) (1 1 1) [1 2] [ ] [ ] ;
- tâche TA_2 avec identifiant 2 : 1 (1 6) 3 1 2 (60 60 60) (1 1 1) [1 2] [ ] [ ].
[0147] Autrement dit, avant la mise en œuvre du procédé d'exécution (et donc a fortiori avant la mise en œuvre du procédé d'ordonnancement), un premier ensemble E_1 formé des tâches TA_1 et TA_2 est associé au système de traitement 11. Plus particulièrement, la tâche TA_1 est associé au dispositif 11_1, et la tâche TA_2 est associée au dispositif 11_2. Ces associations préalables font par exemple suite à des requêtes émises par des utilisateurs et ont été mémorisées en vue des exécutions des tâches.
[0148] Comme mentionné ci-avant, le procédé d'exécution met tout d'abord en œuvre le procédé d'ordonnancement. A cet effet, la mise en œuvre de l'étape E10 de détermination, pour le premier ensemble E_l, s'effectue en utilisant la méthode Taguchi. L'ensemble de valeurs pouvant être prises par chacun des paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva) est
donné par un tableau TAB illustré en figure 4. On note que chaque paramètre d'exécution est associé à 5 valeurs possibles.
[0149] En outre, la méthode Taguchi est exécutée dans le présent exemple en utilisant une matrice dite « L25 » illustrée en figure 5. Ladite matrice L25 se lit de la manière suivante :
- chaque ligne correspond à une expérimentation pour un jeu de valeurs des paramètres d'exécution (autrement dit, dans le présent exemple, 25 expérimentations sont prises en compte) ;
- chaque colonne j (j variant de 1 à 6) de la matrice L25 contient 25 indices permettant de savoir quelle valeur du paramètre d'exécution considéré en ligne j (j variant donc là aussi de 1 à 6) du tableau TAB est utilisé dans l'expérimentation associée à cette colonne j de ladite matrice L25. Plus précisément, un indice k (k variant de 1 à 5 puisque chaque paramètre d'exécution peut prendre 5 valeurs) d'une colonne j de la matrice L25 désigne la valeur du paramètre d'exécution située en ligne j et colonne k du tableau TAB.
[0150] Dans le présent exemple, la méthode Taguchi est également exécutée en réalisant trois itérations des expérimentations associées à la matrice L25. Le fait de considérer trois itérations ne constitue bien entendu qu'une variante d'exécution, et toute autre valeur est envisageable, en particulier un nombre d'itérations plus grand que trois selon les sources de bruit considérées pour les paramètres d'exécution de l'algorithme ACS ainsi que les valeurs extrêmales pouvant être prises par ces sources de bruit (exemples de sources de bruit : exploration probabiliste biaisée du graphe par les fourmis, ordre de parcours des fourmis dans le graphe basé sur le délai maximal d'exécution associé à une tâche, disponibilité CPU/RAM, panne d'un processeur, etc.). Les inventeurs ont néanmoins constaté que le fait d'utiliser trois itérations permettaient de consolider les résultats fournis en sortie de l'étape E10 tout en préservant la charge de calculs.
[0151] Aussi, à l'issue de l'étape E10, on obtient les valeurs suivantes pour les paramètres d'exécution de l'algorithme ACS : g = 2 ; b = 2 ; Q_0 = 0,5 ; p = 0,5 ; N_ant = 10 ; min_eva = 30.
[0152] Dans cet exemple, on suppose également que trois nouvelles tâches de mesure (et donc trois nouvelles applications de mesure) sont associées au système de traitement 11, suite par exemple à une demande de déploiement desdites trois tâches par un utilisateur. On suppose en outre que l'étape d'ordonnancement E20 est mise en œuvre dès que trois (M=3) tâches sont nouvellement associées au système de traitement 11.
[0153] Lesdites trois tâches de mesure dont les identifiants sont respectivement 3, 4 et 5 s'écrivent :
- tâche TA_3 avec identifiant 3 : 3 (1 6) 3 2 1 (60 60 60) (1 1 1) [1 2] [ ] [ ] ;
- tâche TA_4 avec identifiant 4 : 4 (1 6) 6 2 4 (60 60 60) (1 1 1) [1 2] [ ] [ ] ;
- tâche TA_5 avec identifiant 5 : 5 (1 6) 6 2 4 (60 60 60) (1 1 1) [1 2] [ ] [ ].
[0154] On note que l'ordre d'association des tâches de mesure au système de traitement 11 est déterminé par les identifiants respectifs desdites tâches. Ainsi, la tâche TA_3 (respectivement TA_5) est la première tâche (respectivement la dernière tâche) associée au système de traitement 11 parmi lesdites trois tâches TA_3, TA_4, TA_5.
[0155] On note par ailleurs que les tâches de l'ensemble E_1 n'ont pour l'instant pas été ordonnancées dans le système de traitement 11. Aussi, on désigne par E_2 un nouvel ensemble de tâches formé des tâches TA_1, TA_2, TA_3, TA_4 et TA_5, l'objectif consistant dès lors à ordonnancer les tâches dudit ensemble E_2 puisqu'il s'agit de toutes les tâches désormais associées au système de traitement 11.
[0156] Aussi, on suppose que la mise en œuvre de l'étape E20 d'ordonnancement conduit, dans cet exemple détaillé et pour ledit ensemble E_2, au fait que l'algorithme ACS ne converge pas (test effectué lors de la sous-étape E20_2) au cours de la sous-étape E20_l d'exécution. Par conséquent, l'ensemble E_2 est mis à jour. Plus particulièrement, dans cet exemple, la tâche la plus récente, donc la tâche TA_5, est retirée dudit ensemble E_2 au cours de la sous-étape E20_3. La sous-étape E20_l est alors itérée pour l'ensemble de tâches mis à jour qui comporte les tâches TA_1, TA_2, TA_3 et TA_4, et une solution d'ordonnancement est obtenue, cette solution étant exécutée par le système de traitement 11.
[0157] La figure 6 représente schématiquement ladite solution d'ordonnancement ainsi que son exécution. Tel qu'illustré par la figure 6, on considère un référentiel temporel composé de six instants distincts. Chacun de ces instants désigne l'instant de début d'un intervalle temporel. Dans cet exemple, les différents intervalles temporels ainsi considérés ont tous la même durée, à savoir une durée égale à une unité de temps dudit référentiel temporel. En outre, on considère que lesdits intervalles temporels se succèdent sans discontinuité. Ainsi, pour un premier intervalle dont l'instant de début est t=i (i étant un indice entier supérieur ou égal à 1), l'instant de fin dudit premier intervalle est l'instant t=i+l. Cet instant t=i+l est également l'instant de début de l'intervalle succédant audit premier intervalle.
[0158] Dès lors, on a que :
- la tâche TA_1 est exécutée par le dispositif de traitement 11_1 pendant les intervalles dont les instants de début sont t=l et t=2. Pendant l'intervalle dont l'instant de début est t=3, la tâche TA_1 migre (flèche en pointillés) vers le dispositif de traitement 11_2, puis est exécutée par ce dernier pendant les intervalles dont les instants de début sont t=4 et t=5 ;
- la tâche TA_2 est exécutée pendant les intervalles dont les instants de début sont t=l et t=6 par le dispositif de traitement 11_2 ;
- la tâche TA_3 est tout d'abord affectée au dispositif de traitement 11_2 pendant l'instant t= 1, pour y être exécutée pendant les intervalles dont les instants de début sont t=2 et t=3. Pendant l'intervalle dont l'instant de début est t=4, la tâche TA_3 migre vers le dispositif de traitement 11_1, puis est exécutée par ce dernier pendant les intervalles dont les instants de début sont t=5 et t=6 ;
- la tâche TA_4 est affectée au dispositif de traitement 11_1 pendant l'instant t=l, pour y être exécutée pendant les intervalles dont les instants de début sont t=3 et t=4.
[0159] L'invention a été décrite jusqu'à présent en considérant que le système de traitement 11 comportait une pluralité de dispositifs de traitement 11 J. Toutefois, l'invention est également applicable dans le cas où ledit système de traitement 11 comporte un unique dispositif de traitement multiprocesseurs, l'ordonnancement de tâches consistant dès lors à affecter des tâches aux différents processeurs dudit unique dispositif de traitement. Dès lors, dans ce cas, et lorsque chaque tâche est associée à une contrainte de localisation, ladite contrainte de localisation peut définir au moins un processeur parmi la pluralité de processeurs dudit unique dispositif de traitement. En outre, toujours dans ce même cas, l'algorithme méta heuristique est configuré de sorte à autoriser la migration de chaque tâche entre les processeurs dudit unique dispositif de traitement définis par la contrainte de localisation attachée à ladite tâche.
[0160] Finalement, il convient de noter que l'invention peut également s'appliquer dans le cas où une pluralité de dispositif de traitement sont considérés, dont au moins une partie sont des dispositifs multiprocesseurs. L'ordonnancement de tâches consistant dès lors à affecter des tâches suivant différents niveaux : un premier niveau visant à attribuer uniquement un dispositif de traitement à une tâche, et un second niveau, plus fin que ledit premier niveau, visant à attribuer un processeur à ladite tâche lorsque ledit dispositif de traitement comporte une pluralité de processeurs.
Claims
[Revendication 1] Procédé d'ordonnancement d'au moins une tâche dans un système de traitement (11) configuré pour exécuter ladite au moins une tâche, ledit procédé comportant, pour un premier ensemble (E_l) de tâches associé au système de traitement, une étape de détermination (E10) de valeurs de paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva) d'un algorithme métaheuristique (ACS) configuré pour ordonnancer, dans ledit système de traitement, au moins une tâche associée audit système de traitement en optimisant une fonction objectif, le procédé comportant en outre, pour au moins un deuxième ensemble (E_2) de tâches associé audit système de traitement, une étape d'ordonnancement (E20) comprenant :
- une exécution (E20_l) de l'algorithme métaheuristique paramétré par lesdites valeurs, et, si un critère d'arrêt (CR_STOP) de l'algorithme métaheuristique n'est pas atteint à l'issue de ladite exécution (E20_2),
- une mise à jour (E20_3) dudit au moins un deuxième ensemble, par retrait d'au moins une tâche dudit au moins un deuxième ensemble, ladite exécution, et ladite mise à jour le cas échéant, étant itérées tant que le critère d'arrêt n'est pas atteint.
[Revendication 2] Procédé selon la revendication 1, dans lequel chaque tâche est associée à une date d'exécution souhaitée, et, pour chaque ordonnancement candidat trouvé par l'algorithme métaheuristique, à un délai, dit « délai d'exécution effectif », représentatif de la durée suivant laquelle l'exécution de ladite tâche est différée par rapport à ladite date d'exécution souhaitée, ladite fonction objectif comportant un terme égal à la somme des délais d'exécution effectifs respectivement associés aux tâches prises en compte par l'algorithme métaheuristique (ACS), ledit terme étant destiné à être minimisé par ledit algorithme métaheuristique.
[Revendication 3] Procédé selon l'une quelconque des revendications 1 à 2, dans lequel :
- le système de traitement (11) comporte une pluralité de processeurs,
- chaque tâche est associée à un attribut « dit contrainte de localisation » définissant au moins un processeur parmi ladite pluralité de processeurs, de sorte que ladite tâche est destinée à être exécutée par un processeur quelconque parmi ledit au moins un processeur défini par ladite contrainte de localisation,
- l'algorithme métaheuristique (ACS) est configuré de sorte à autoriser la migration de chaque tâche entre des processeurs définis par la contrainte de localisation attachée à ladite tâche, ladite fonction objectif comportant un terme égal à un nombre de migrations des tâches prises en compte par l'algorithme métaheuristique, ledit terme étant destiné à être minimisé par ledit algorithme métaheuristique.
[Revendication 4] Procédé selon l'une quelconque des revendications 1 à 3, dans lequel les valeurs de paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva) sont déterminées au moyen d'un algorithme mettant en œuvre une méthode de plan d'expériences paramétrée par ladite fonction objectif.
[Revendication 5] Procédé selon la revendication 4, dans lequel ladite méthode de plan d'expériences est la méthode Taguchi.
[Revendication 6] Procédé selon l'une quelconque des revendications 1 à 5, dans lequel l'algorithme métaheuristique (ACS) est un algorithme de colonies de fourmis mis en œuvre à partir d'un graphe dont chaque nœud correspond à un ordonnancement d'une tâche dans le système de traitement (11).
[Revendication 7] Procédé selon la revendication 6, dans lequel les paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva) comportent un paramètre (min_eva) permettant de contrôler une quantité minimale de phéromones pouvant être associée à un nœud.
[Revendication 8] Procédé selon l'une quelconque des revendications 1 à 7, dans lequel ladite au moins une tâche retirée lors de ladite mise à jour (E20_3) est la tâche dont l'association au système de traitement (11) est la plus récente parmi les tâches dudit au moins un deuxième ensemble (E_2) de tâches.
[Revendication 9] Procédé selon l'une quelconque des revendications 1 à 8, dans lequel l'étape d'ordonnancement (E20) est itérée dès que M tâches sont nouvellement associées au système de traitement, M étant un entier supérieur ou égal à 1.
[Revendication 10] Procédé selon l'une quelconque des revendications 1 à 9, dans lequel l'étape de détermination (E10) est itérée de manière récurrente de sorte à mettre à jour les valeurs desdits paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva).
[Revendication 11] Procédé selon l'une quelconque des revendications 1 à 10, dans lequel une tâche correspond à une mesure de l'état d'un réseau de communication auquel appartient au moins une partie du système de traitement (11) ou de la qualité d'un service supporté par ledit réseau de communication.
[Revendication 12] Procédé selon la revendication 11, dans lequel chaque tâche est exécutée grâce à une application de mesure intégrée à un conteneur.
[Revendication 13] Programme d'ordinateur comportant des instructions pour la mise en œuvre d'un procédé d'ordonnancement selon l'une quelconque des revendications 1 à 12 lorsque ledit programme d'ordinateur est exécuté par un ordinateur.
[Revendication 14] Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur selon la revendication 13.
[Revendication 15] Dispositif d'ordonnancement (12) d'au moins une tâche dans un système de traitement (11) configuré pour exécuter ladite au moins une tâche, ledit dispositif d'ordonnancement comportant un module de détermination (MOD_DET) configuré pour déterminer, pour un premier ensemble (E_l) de tâches associées au système de traitement, des valeurs de paramètres d'exécution (a, b, Q_0, p, N_ant, min_eva) d'un algorithme métaheuristique (ACS) configuré pour ordonnancer, dans ledit système de traitement, au moins une tâche associée audit système de traitement en optimisant une fonction objectif, le dispositif d'ordonnancement comportant en outre un module d'ordonnancement (MOD_ORD) comprenant :
- un sous-module d'exécution (SS_MOD_EXEC) configuré pour exécuter l'algorithme métaheuristique paramétré par lesdites valeurs pour au moins un deuxième ensemble (E_2) de tâches associé audit système de traitement,
- un sous-module de vérification (SS_MOD_VERIF) configuré pour vérifier si un critère d'arrêt (CR_STOP) est atteint ou non à l'issue d'une exécution de l'algorithme métaheuristique mise en œuvre par ledit sous-module d'exécution pour ledit moins un deuxième ensemble,
- un sous-module de mise à jour (SS_MOD_MAJ) configuré pour mettre à jour ledit au moins un deuxième ensemble, par retrait d'au moins une tâche dudit au moins un deuxième ensemble, lorsque ledit critère d'arrêt n'est pas atteint.
[Revendication 16] Système informatique (10) comportant un dispositif d'ordonnancement (12) selon la revendication 15 ainsi qu'un système de traitement (11) configuré pour exécuter au moins une tâche destinée à être ordonnancée par ledit dispositif d'ordonnancement.
[Revendication 17] Procédé d'exécution d'au moins une tâche par un système de traitement (11) configuré pour exécuter ladite au moins une tâche, ledit procédé d'exécution comportant :
- une étape d'ordonnancement d'au moins une tâche dans ledit système de traitement conformément à un procédé d'ordonnancement selon l'une quelconque des revendications 1 à 12,
- une étape d'exécution de ladite au moins une tâche selon l'ordonnancement déterminé au cours de ladite étape d'ordonnancement.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FRFR2006509 | 2020-06-22 | ||
FR2006509A FR3111448B1 (fr) | 2020-06-22 | 2020-06-22 | Procédé d’ordonnancement de tâches dans un système de traitement, dispositif d’ordonnancement associé |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021260312A1 true WO2021260312A1 (fr) | 2021-12-30 |
Family
ID=72801617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2021/051120 WO2021260312A1 (fr) | 2020-06-22 | 2021-06-21 | Procédé d'ordonnancement de tâches dans un système de traitement, dispositif d'ordonnancement associé |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3111448B1 (fr) |
WO (1) | WO2021260312A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114862065A (zh) * | 2022-07-05 | 2022-08-05 | 杭州数询云知科技有限公司 | 社工任务规划方法、装置、电子设备及存储介质 |
CN115689252A (zh) * | 2022-12-28 | 2023-02-03 | 杭州中安电子有限公司 | 基于自适应蚁群算法的任务分配方法和系统 |
-
2020
- 2020-06-22 FR FR2006509A patent/FR3111448B1/fr active Active
-
2021
- 2021-06-21 WO PCT/FR2021/051120 patent/WO2021260312A1/fr active Application Filing
Non-Patent Citations (8)
Title |
---|
ARROYO JOSÉ ELIAS C ET AL: "An effective iterated greedy algorithm for scheduling unrelated parallel batch machines with non-identical capacities and unequal ready times", COMPUTERS & INDUSTRIAL ENGINEERING, PERGAMON, AMSTERDAM, NL, vol. 105, 4 January 2017 (2017-01-04), pages 84 - 100, XP029931327, ISSN: 0360-8352, DOI: 10.1016/J.CIE.2016.12.038 * |
CONSTANT C.: "La méthodologie Taguchi : introduction à la recherche technologique-gestion fonctionnelle de la qualité ou gestion «off-line»", REVUE DE STATISTIQUE APPLIQUÉE, vol. 37, no. 2, 1989, pages 47 - 77 |
HANWOONG JUNG ET AL: "Multiprocessor Scheduling of a Multi-Mode Dataflow Graph Considering Mode Transition Delay", ACM TRANSACTIONS ON DESIGN AUTOMATION OF ELECTRONIC SYSTEMS, ACM, NEW YORK, NY, US, vol. 22, no. 2, 20 January 2017 (2017-01-20), pages 1 - 25, XP058307183, ISSN: 1084-4309, DOI: 10.1145/2997645 * |
HOLGER H. HOOS AND THOMAS STÜTZLE: "Stochastic Local Search: Foundations and Applications", 1 January 2005, ELSEVIER, ISBN: 1-55860-872-9, XP040426265 * |
LIU XUNYUN LIUXUNYUN@NUDT EDU CN ET AL: "Resource Management and Scheduling in Distributed Stream Processing Systems", ACM COMPUTING SURVEYS, ACM, NEW YORK, NY, US, US, vol. 53, no. 3, 28 May 2020 (2020-05-28), pages 1 - 41, XP058484646, ISSN: 0360-0300, DOI: 10.1145/3355399 * |
LOHESWARAN K ET AL: "A hybrid GA-IWO scheduling algorithm", 2017 INTERNATIONAL CONFERENCE ON ALGORITHMS, METHODOLOGY, MODELS AND APPLICATIONS IN EMERGING TECHNOLOGIES (ICAMMAET), IEEE, 16 February 2017 (2017-02-16), pages 1 - 5, XP033268166, DOI: 10.1109/ICAMMAET.2017.8186732 * |
P. CALYAMC.-G. LEEP. K. ARAVAD. KRYMSKIY: "Enhanced edf scheduling algorithms for orchestrating network-wide active measurements", IEEE INTERNATIONAL REAL-TIME SYSTEMS SYMPOSIUM (RTSS'05). IEEE, 2005 |
RAGMANI AWATIF ET AL: "FACO: a hybrid fuzzy ant colony optimization algorithm for virtual machine scheduling in high-performance cloud computing", JOURNAL OF AMBIENT INTELLIGENCE AND HUMANIZED COMPUTING, SPRINGER BERLIN HEIDELBERG, BERLIN/HEIDELBERG, vol. 11, no. 10, 13 December 2019 (2019-12-13), pages 3975 - 3987, XP037250218, ISSN: 1868-5137, [retrieved on 20191213], DOI: 10.1007/S12652-019-01631-5 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114862065A (zh) * | 2022-07-05 | 2022-08-05 | 杭州数询云知科技有限公司 | 社工任务规划方法、装置、电子设备及存储介质 |
CN114862065B (zh) * | 2022-07-05 | 2022-09-23 | 杭州数询云知科技有限公司 | 社工任务规划方法、装置、电子设备及存储介质 |
CN115689252A (zh) * | 2022-12-28 | 2023-02-03 | 杭州中安电子有限公司 | 基于自适应蚁群算法的任务分配方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
FR3111448A1 (fr) | 2021-12-17 |
FR3111448B1 (fr) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11171845B2 (en) | QoS-optimized selection of a cloud microservices provider | |
EP2559196B1 (fr) | Outil de gestion de ressources et d'infrastructures informatiques et réseaux | |
WO2021260312A1 (fr) | Procédé d'ordonnancement de tâches dans un système de traitement, dispositif d'ordonnancement associé | |
FR3053491A1 (fr) | Procede et dispositif de surveillance de la securite d'un systeme d'information | |
FR3030168A1 (fr) | Procede de choix d'au moins un service et dispositif associe | |
WO2020016499A1 (fr) | Procédé de coordination d'une pluralité de serveurs de gestion d'équipements | |
FR3016462A1 (fr) | Procede d'ordonnancement de taches dans un reseau a courants porteurs en ligne | |
WO2014072628A1 (fr) | Procédé, dispositif et programme d'ordinateur de placement de tâches dans un système multi-coeurs | |
WO2016198762A1 (fr) | Procédé et système de détermination d'une configuration de serveurs cible pour un déploiement d'une application logicielle | |
EP2109979B1 (fr) | Procédé et dispositif de gestion de connexions dans un réseau de télécommunications | |
FR2995424A1 (fr) | Procede et dispositif de decompte du temps deporte pour unite de traitement dans un systeme de traitement de l'information | |
FR3078462A1 (fr) | Procede et dispositif de controle d'un acces a une ressource d'un systeme informatique par des applications logicielles | |
WO2021228094A1 (fr) | Gestion de capacité et d'utilisation de ressources à distance | |
EP3893470B1 (fr) | Procédé d' optimisation de mise à jour d' objets connectés et module applicatif | |
EP4009584A1 (fr) | Procédé de détermination de classifieurs pour la détection d'attaques dans un réseau de communication, dispositif de détermination associé | |
EP3929749A1 (fr) | Procede et dispositif d'execution distante de programmes d'objet connecte dans un reseau local | |
EP3539259B1 (fr) | Procédé et dispositif d'actualisation d'un modèle prédictif d'une variable relative à un terminal mobile | |
FR3098937A1 (fr) | Procédé d’analyse de consommation de ressource d’une infrastructure informatique, alerte et dimensionnement | |
WO2018109407A1 (fr) | Procédé et dispositif de mise à jour | |
EP3817294B1 (fr) | Procede et module pour la regulation de la connectivite d objets connectes | |
EP4113297A1 (fr) | Procédé de gestion des travaux dans un système informatique et système associé | |
EP3846416B1 (fr) | Procédé de partage ordonnancé de fonctionnalités des iots et dispositif de partage ordonnancé | |
EP4182806A1 (fr) | Traiter des requetes de mises a jour ou d´insertion de donnees | |
FR3145999A1 (fr) | dispositif et procédé de programmation pour l’exécution de tâches | |
WO2024028472A1 (fr) | Procédé de traitement d'une requête d'analyse statistique ou prédictive, procédé de communication et entités applicatives aptes à mettre en oeuvre ces procédés |
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: 21740602 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: 21740602 Country of ref document: EP Kind code of ref document: A1 |