WO2023118261A1 - Procédé de détermination d'une grandeur physique et système de détermination associé - Google Patents

Procédé de détermination d'une grandeur physique et système de détermination associé Download PDF

Info

Publication number
WO2023118261A1
WO2023118261A1 PCT/EP2022/087175 EP2022087175W WO2023118261A1 WO 2023118261 A1 WO2023118261 A1 WO 2023118261A1 EP 2022087175 W EP2022087175 W EP 2022087175W WO 2023118261 A1 WO2023118261 A1 WO 2023118261A1
Authority
WO
WIPO (PCT)
Prior art keywords
list
value
index
core
compacted
Prior art date
Application number
PCT/EP2022/087175
Other languages
English (en)
Inventor
Lionel GAYRAUD
Aurélien THIRIET
Rémi BARRERE
Original Assignee
Thales
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales filed Critical Thales
Publication of WO2023118261A1 publication Critical patent/WO2023118261A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations

Definitions

  • the present invention relates to a method for determining a physical quantity. It also relates to a system for determining a corresponding physical quantity.
  • the Hamilton-Jacobi differential equations govern many physical phenomena and are therefore involved in multiple applications such as image processing, for example medical images, geosciences or trajectory planning.
  • Hamilton-Jacobi differential equations have equations associated with a transformation of the Hamiltonian in phase space, and which simplify the resolution of the equations of motion. Any field involving equations of motion is therefore concerned with physical phenomena governed by Hamilton-Jacobi differential equations.
  • a Hamilton-Jacobi equation takes the form:
  • x is generally called a node, ie a possible value for the variable of ⁇ (x).
  • x ⁇ ⁇ , ⁇ being a domain included in R n ,
  • a causal method involves the use of a priority list in which each node x ⁇ ⁇ 2 is ranked by increasing value of ⁇ (x).
  • a causal method relies on a precise order of resolution with a plurality of iterations. According to this order, at each iteration, the node with the lowest value of ⁇ (x) is chosen and then considered as “accepted”. When a node x is accepted, the value ⁇ (x) is never re-evaluated in subsequent iterations of the causal method. Because of this unique evaluation of the value of each node, a causal method is also called a single pass method (more often referred to by the corresponding English name of "single pass").
  • a causal method has a strong dependence between the data, which does not allow an efficient physical implementation of the calculations, in particular on a parallel architecture of the GP-GPU type (the abbreviation "GP-GPU” referring to the English name of "general purpose computing on graphical process units” which means generic calculation on graphics processor).
  • GP-GPU referring to the English name of "general purpose computing on graphical process units” which means generic calculation on graphics processor.
  • Iterative resolution methods that do not involve making the hypothesis of causality at the cost of a greater number of calculations. Iterative resolution methods do not involve the use of any particular scheduling mechanism. In fact, they are not single-pass type methods like causal methods, but rather multiple-pass type methods in which a node is never definitively considered solved, and is therefore likely to be re-evaluated at any time. .
  • the description describes a method for determining a physical quantity, the physical quantity verifying a system of Hamilton-Jacobi differential equations to comply with a spatially varying constraint in a predefined environment, the method being implemented by a system for determining the physical quantity, the system for determining comprising a plurality of cores, the method comprising:
  • the input data comprising measurements of the stress at several points of the predefined environment
  • each iteration comprising the following steps: - the transformation of a current list into a current compacted list, the current list comprising points of the predefined environment to which a number is assigned, each point being identified by an index, specific indices being assigned to each heart of the plurality of cores, the set of indices of the current list being assigned to one of the cores, the transformation comprising:
  • the implementation of this method is an implementation in parallel, each core updating its current list part, which results in a gain in efficiency in the implementation of the method for determining a physical quantity.
  • the determination method has one or more of the following characteristics, taken in isolation or in all technically possible combinations:
  • each core is assigned a respective remainder of the Euclidean division by the number of cores
  • the set of indices specific to the core considered comprising the set of indices including the remainder of the Euclidean division of the index by the number of cores is equal to the respective remainder.
  • each assigned number is a binary number and the binary condition is that the assigned binary number is equal to a predefined value.
  • the initialization value is a negative value.
  • the initialization operation is also implemented by each core only for the indices specific to the core considered. - the iterative implementation of calculations is carried out until the current list is empty.
  • the calculations include a point value convergence test operation.
  • the calculations also include an operation to eliminate the point having been the subject of the test operation from the current list, and an operation to add points only if the convergence test is not satisfied, the points added preferably being the points of the negative stencil.
  • the constraints are measurements of at least one sensor
  • the description also describes a system for determining a physical quantity, the physical quantity verifying a system of Hamilton-Jacobi differential equations to respect a spatially varying constraint in a predefined environment, the determination system comprising a plurality of cores, the determination system being capable of implementing a method for determining a physical quantity, the method comprising:
  • the input data comprising measurements of the stress at several points of the predefined environment
  • the transformation comprising:
  • FIG. 1 is a schematic representation of an example of a determination system
  • FIG. 2 is a schematic illustration of the concepts of direct stencil and indirect stencil
  • FIG. 3 is a schematic view of an example of implementation of part of an example of compacting technique
  • FIG. 4 is a schematic view of an example of implementation of another part of an example of compacting technique
  • FIG. 5 is a schematic view of an example of implementation of another part of an example of compacting technique
  • FIG. 6 is a schematic view of an example of implementation of another part of an example of compacting technique.
  • FIG. 7 is a schematic view of an example of implementation of another part of an example of compacting technique.
  • FIG. 1 is a schematic representation of a system 10 for determining a physical quantity.
  • the determination system 10 is suitable for determining a physical quantity.
  • the determination system 10 is suitable from at least one input datum 12 to obtain at least one output datum 16, the at least one output datum 16 corresponding to the physical quantity to be determined.
  • a physical quantity corresponds, in this context, to the spatial evolution of a physical measurement (i.e. a measurement obtained by a sensor) in a predefined environment.
  • the physical quantity is denoted U and the predefined environment is denoted 22. It can be noticed that the predefined environment is often called domain. The expression “domain 22” will therefore be used. Domain 22 is a set of points x.
  • the physical quantity is related to the movement, it is for example, a position or a speed.
  • the quantity II is at each point x of 12 the length of the shortest trajectory (or geodesic) making it possible to reach point x from a set D of points called the starting set.
  • the physical quantity is the position of a set of points, the position being able to be evaluated by one or more coordinates.
  • the determination system 10 produces a quantity U(x) associated with each point x of the domain 22 which will allow another system, not detailed here, to search for optimized trajectories starting from one of the points of the starting set D (the most favourable) and arriving at all x point of domain 22.
  • the aim is to minimize the risks of a land vehicle getting stuck.
  • the points of the domain 22 are characterized by two coordinates and are therefore 2-tuples of the form (x,y), the trajectory to be determined being the trajectory of the vehicle in the plane.
  • the Hamilton operator associated with any point x translates the greater or lesser grip of the ground at this point x.
  • it is a question of obtaining the trajectory of a helicopter in an airspace without striking an element of the airspace.
  • the points are characterized by three coordinates and are therefore 3-tuples of the form (x,y,z), the trajectory to be determined being the trajectory of the helicopter in space.
  • the Hamilton operator associated with any point x translates the risk of collision with the ground at this point.
  • the points are characterized by three coordinates and are therefore 3-tuples of the form (x,y, ⁇ ), where ⁇ is heading information (in radians or degrees).
  • the Hamilton operator associated with any point x translates the more or less flat character of the ground at position (x,y) when it is crossed via heading ⁇ .
  • each point is characterized by any n-tuple, where n is the dimension of the domain 12, the dimension of the domain depending on the quantity U to be determined as well as on the Hamilton operator at apply to each point.
  • the determination system 10 is able to implement a method for determining a physical quantity, a method which will be described later.
  • the determination system 10 is a computer comprising several cores 18.
  • a core 18 is a set of circuits capable of executing programs autonomously.
  • each core 18 is irrelevant for the following, a core which can be a graphics processing unit (GP-GPU), a microcontroller and a digital signal processor (DSP), a programmable logic circuit (such as a circuit application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), programmable logic device (PLD) and programmable logic arrays (P LA)), state machine, logic gate and hardware components discreet.
  • GP-GPU graphics processing unit
  • DSP digital signal processor
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • PLD programmable logic device
  • P LA programmable logic arrays
  • the resolution technique cannot be a causal method due to the strong dependence between the data. Indeed, such a dependence prevents parallelization and therefore an efficient physical implementation of the calculations on a parallel architecture.
  • the AGSI technique uses the notions of stencils which are represented schematically in figure 2.
  • the direct stencil is the set of points y ⁇ ⁇ involved in the calculation of the value u(x) and is represented by rectangles in figure 2.
  • the direct stencil is denoted V + (x) in what follows.
  • the indirect stencil is denoted V -(x).
  • the AGSI technique also uses a Hopf-Lax formula, which is an equation for calculating the distance of x knowing that of the neighbors of x, in the direct stencil sense. This formula is denoted by F(x, V + (x)).
  • the Hof-Lax formula expresses the Hamilton operator to be checked at the point x ⁇ ⁇ in the form of an equation involving x and all of its neighbors in the sense of the indirect stencil.
  • the AGSI technique thus amounts to approximating the Hamilton operator H(x,Vu(x)) by considering that a point x only interacts with its close neighbours, the points y ⁇ ⁇ of V + (x) .
  • the gradient vector Vu(x) then only depends on the points y ⁇ ⁇ of V + (x), and the operator becomes a simple equation relating the value U at x to the values of U at the points y ⁇ ⁇ of V + (x).
  • an arbitrary convergence criterion ⁇ is also defined designating the tolerance linked to the good convergence of a node x as well as an unordered list of active nodes L. At each iteration, only the nodes of the list L are evaluated.
  • FIM Fast iterative walking
  • the potential activation of neighbors corresponds to the fact that the previous node respects the convergence criterion.
  • the potential activation of the neighbors takes place only if the previous node is modified, which implies that the previous node does not respect the convergence criterion.
  • the list corresponds to the set of nodes that still have to converge.
  • a node is systematically removed from the list, regardless of the result of the convergence test. It will only be reintroduced there if a node on which it depends (same stencil) performs an improvement.
  • the list in the case of the AGSI technique can be understood as playing a request/acknowledgement mechanism. The insertion of a node in the list can be perceived as an update request, which is acknowledged systematically.
  • the AGSI technique was selected by the applicant as a good candidate iterative resolution technique for parallelization, that is to say at least partly parallel processing in several cores 18.
  • the technical AGSI technique can be described as the implementation of two phases: a phase for receiving the following input data: o
  • a phase for receiving the following input data o
  • the sets V + (x) and V- (x) called direct and indirect stencils, as well as the Hopf-Lax formula F(x, V + (x)) at this point o
  • the value U(x) at this point o A threshold value ⁇
  • the calculations include an operation to reevaluate the value of U for any point from the list L, an operation to eliminate this point from the list L, and an operation to add to the list L the points belonging to the direct stencil of the points for which the revaluation led to an improvement in amplitude greater than ⁇ in absolute value.
  • the list L is implemented in the form of a table containing one cell per point x of the domain 22.
  • the list L is a list of integers (also called under the corresponding English name of “integer”) taking the values 0 or 1 at the position corresponding to the index i of the point x.
  • N independent processes can simultaneously write 1 in the cell of the node of index i corresponding to a point x.
  • the point x will only be introduced once and only once in the list L.
  • the fact that the processes write this value simultaneously is not a problem because they all write the value 1 there (there is no write conflict).
  • the list L is compacted at each iteration of the phase for determining the physical quantity U(x).
  • the phase of determining the physical quantity U(x) is based on two lists denoted L and cL.
  • the list cL is implemented in the form of a table containing one cell per point x of the domain 22, each cell taking as its value either the index i of a point of the domain 22, or a value indicating that the cell is empty. In one embodiment, empty cells contain the value -1 .
  • An example of lists L and cL is shown in the following two tables.
  • the list L comprises a set of 20 elements (each represented in the form of a box).
  • the elements are ordered from left to right with an index which is positioned at the bottom left in the list L in figures 3 to 6.
  • the first index is 0, the second index is 1 and so on until the last index is 19.
  • each element of the list L is either a “0” or a “1”. More precisely, the elements of the list L whose indices are 1 , 3, 7, 8, 12, 14, 17 and 19 are a “1”. Elements of the list L having another index are a “0”.
  • the packed list cL also includes a set of 20 elements (also represented in the form of a box).
  • each element of the packed list cL is a "-1".
  • Figures 3 to 6 illustrate how the elements of the compacted list cL are filled according to list L, each figure 3 to 6 corresponding to respective elements.
  • FIG. 3 shows how the elements of index 0, 4, 8, 12 and 16 are processed, that is to say all the elements whose index is proportional to 4 is equal to 0 modulo 4;
  • FIG. 4 shows how the elements with index 1, 5, 9, 13 and 17 are processed, that is to say all the elements whose index is equal to 1 modulo 4;
  • figure 5 shows how the elements of index 2, 6, 10, 14 and 18 are treated, that is to say all the elements whose index is equal to 2 modulo 4 and
  • figure 6 shows how the elements with index 3, 7, 11, 15 and 19 are processed, i.e. all the elements whose index is equal to 3 modulo 4.
  • the operation for processing the elements of the compacted list cL referred to in FIG. 3 corresponds to a process called the first process PO
  • the operation for processing the elements of the compacted list cL referred to in FIG. 4 corresponds to a process called second process P1
  • the operation for processing the elements of the compacted list cL referred to in FIG. 5 corresponds to a process called third process P2
  • the operation for processing the elements of the compacted list cL referred to in the figure 6 corresponds to a process called fourth process P3.
  • the first PO process is illustrated in Figure 3.
  • the first PO process aims to perform the processing operation of the elements whose index is equal to 0 modulo 4.
  • the first process PO begins by reading the value of the first element of the list L concerned by this process (index 0) and reads the value "0". The first process PO then performs no operation on the compacted list cL.
  • the first process PO reads the value of the second element of the list L concerned by this process (index 4) and reads the value “0”. The first process PO then does no operation on the compacted list cL
  • the first process PO reads the value of the third element of the list L concerned by the process (index 8) and reads the value “1”.
  • the first process PO modifies the value of the element of the compacted list cL having the first accessible index of the compacted list cL because it is the first time that a value "1" has been read by the first process PO.
  • the first index of the compacted list cL accessible to the first process PO is, in this case, the first index of the compacted list cL (the index 0).
  • the first process PO then changes the initial value "-1" of the element with index 0 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value “8”.
  • the first process PO reads the value of the fourth element of the list L concerned by the process (index 12) and reads the value “1”.
  • the first process PO modifies the value of the element of the compacted list cL having the second accessible index of the compacted list cL because it is the second time that a value "1" is read by the first PO process.
  • the second index of the compacted list cL accessible to the first process PO is, in this instance, the fifth index of the compacted list cL (the index 4).
  • the first process PO then changes the initial value "-1" of the element of index 4 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value "12".
  • the first process PO reads the value of the fifth element of the list L concerned by the process (index 16) and reads the value “0”.
  • the first process PO then does no operation on the compacted list cL
  • the values of the elements of the other indices accessible from the compacted list cL, in this case the indices 8, 12 and 16, are not modified and therefore remain at the initial value of “-1 ".
  • the second process P1 aims to perform the filling operation on the elements whose index is equal to 1 modulo 4.
  • the second process P1 reads the value of the first element of the list L concerned by the process (index 1) and reads the value "1".
  • the second process P1 modifies the value of the element of the compacted list cL having the first accessible index of the compacted list cL because it is the first time that a value "1" has been read by the second process P1.
  • the first index of the compacted list cL accessible to the second process P1 is, in this case, the second index of the compacted list cL (the index 1).
  • the second process P1 then changes the initial value "-1" of the element of index 1 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value "12".
  • the second process P1 reads the value of the second element concerned by the process (index 5) and reads the value “0”. The second process P1 then does no operation on the compacted list cL.
  • the second process P1 reads the value of the third element of the list L concerned by the process (index 9) and reads the value “0”. The second process P1 then does no operation on the compacted list cL
  • the second process P1 reads the value of the fourth element of the list L concerned by the process (index 13) and reads the value “0”. The second process P1 then does no operation on the compacted list cL.
  • the second process P1 reads the value of the fifth element of the list L concerned by the process (index 17) and reads the value “1”.
  • the second process P1 modifies the value of the element of the compacted list cL having the second index accessible from the compacted list cL because it is the second time that a value “1” has been read by the second process P1.
  • the second index of the compacted list cL accessible to the second process P1 is, in this instance, the sixth index of the compacted list cL (the index 5).
  • the second process P1 then changes the initial value “-1” of the element with index 5 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value "17".
  • the values of the elements of the other accessible indices of the compacted list cL are not modified and therefore remain at the initial value of “-1 ".
  • the third process P2 is illustrated in Figure 5.
  • the third process P2 aims to perform the filling operation on the elements whose index is equal to 2 modulo 4.
  • the third process P2 reads the value of the first element of the list L concerned by the process (index 2) and reads the value “0”. The third process P2 then does no operation on the compacted list cL.
  • the third process P2 reads the value of the second element of the list L concerned by the process (index 6) and reads the value “1”.
  • the third process P2 modifies the value of the element of the compacted list cL having the first accessible index of the compacted list cL because it is the first time that a value "1" has been read by the third process P2.
  • the first index of the compacted list cL accessible to the third process P2 is, in this case, the third index of the compacted list cL (index 2).
  • the third process P2 then changes the initial value "-1" of the element of index 2 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value “6”.
  • the third process P2 reads the value of the third element of the list L concerned by the process (index 10) and reads the value “0”. The third process P2 then does no operation on the compacted list cL.
  • the third process P2 reads the value of the fourth element of the list L concerned by the process (index 14) and reads the value “1”.
  • the third process P2 modifies the value of the element of the compacted list cL having the second accessible index of the compacted list cL since this is the second time that a value “1” has been read by the third process P2.
  • the second index of the compacted list cL accessible to the third process P2 is, in this instance, the eighth index of the compacted list cL (the index 7).
  • the third process P2 then changes the initial value "-1" of the element of index 7 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value "14".
  • the third process P2 reads the value of the fifth element of the list L concerned by the process (index 18) and reads the value “0”.
  • the third process P2 then does no operation on the compacted list cL.
  • the values of the elements of the other accessible indices of the compacted list cL, in this case the indices 10, 14 and 18, are not modified and therefore remain at the initial value of "-1 ".
  • the fourth process P3 aims to perform the filling operation on the elements whose index is equal to 3 modulo 4.
  • the fourth process P3 reads the value of the first element of the list L concerned by the process (index 3) and reads the value "1".
  • the fourth process P3 modifies the value of the element of the compacted list cL having the first accessible index of the compacted list cL because it is the first time that a value "1" has been read by the fourth process P3.
  • the first index of the compacted list cL accessible to the fourth process P3 is, in this case, the fourth index of the compacted list cL (index 3).
  • the fourth process P3 then changes the initial value "-1" of the element of index 3 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value “3”.
  • the fourth process P3 reads the value of the second element of the list L concerned by the process (index 7) and reads the value “1”.
  • the fourth process P3 modifies the value of the element of the compacted list cL having the second accessible index of the compacted list cL because it is the second time that a value "1" has been read by the fourth process P3.
  • the second index of the compacted list cL accessible to the fourth process P3 is, in this case, the eighth index of the compacted list cL (index 7).
  • the fourth process P3 then changes the initial value "-1" of the element of index 7 of the compacted list cL by replacing it with the value of the index of the element of the list L read, namely the value "7".
  • the fourth process P3 reads the value of the third element of the list L concerned by the process (index 1 1 ) and reads the value “0”. The fourth process P3 then does no operation on the compacted list cL.
  • the fourth process P3 reads the value of the fourth element of the list L concerned by the process (index 15) and reads the value “0”. The fourth process P3 then does no operation on the compacted list cL.
  • the fourth process P3 reads the value of the fifth element of the list L concerned by the process (index 19) and reads the value “1”.
  • the fourth process P3 modifies the value of the element of the compacted list cL having the third accessible index of the compacted list cL because it is the third time that a value “1” is read by the fourth process P3.
  • the third index of the compacted list cL accessible to the fourth process P3 is, in this case, the twelfth index of the compacted list cL (the index 11).
  • the fourth process P3 then changes the initial value “-1” of the element with index 19 of the compacted list cL by replacing it with the value of the index of the element L read, namely the value “19” .
  • FIG. 7 illustrates the results of the four compactions carried out by each of the processes P0, P1, P2 and P3.
  • the first list modified by the first process P0 is shown in the first line; the second list modified by the second process P1 is shown in the second line below the first line; the third list modified by the third process P2 is represented in the third line below the second line and the fourth list modified by the fourth process P3 is represented in the fourth line below the third line.
  • the final cL packed list corresponds to the shaded value.
  • a list is thus obtained in which elements with index 0 to 7 have the value of an index of the list L as well as the element with index 11, while the elements having an index between 8 and 10 and a index greater than or equal to 12 have a value that remains at the initial value.
  • the processes P0 to P3 can be conceived as the passage of a "comb" on the list L as schematically represented in figures 3 to 6. Otherwise formulated, the processes P0 to P3 are independent of each other and can be performed simultaneously by a different 18 core, here four 18 cores.
  • each core 18 processes all the indices having the same remainder of the Euclidean division by the number 4 (designating by abuse of language the fact of processing the element having the index by the fact of processing index).
  • the first core 18 is assigned the remainder 0
  • the second core 18 is assigned the remainder 1
  • the third core 18 is assigned the remainder 2
  • the fourth core 18 is assigned the remainder 3.
  • the first core 18 deals all the indices proportional to 4
  • the second core 18 processes the indices equal to 1 modulo 4
  • the third core 18 processes the indices equal to 2 modulo 4
  • the fourth core 18 processes the indices equal to 3 modulo 4.
  • each core 18 is assigned a respective remainder of the Euclidean division by the number of cores and each core processes the set of indices including the remainder of the Euclidean division of l index by the number of cores is equal to the respective remainder.
  • the only constraint is that all of the indices of the current list be assigned to at least one of the 18 cores.
  • the compaction technique can also be performed with a different initialization operation. It is only necessary that the entered value be unequivocally recognized as invalid during the AGSI technique. Otherwise stated, this value does not correspond to any possible element index value.
  • a value other than "-1" can be used as the initialization value at the start of the process for the packed list cL.
  • the compaction technique can be described as follows.
  • the packing technique involves an operation of initializing the packed list to an initialization value.
  • the compacting technique also comprises, for each core 18, a determination operation and a possible modification operation.
  • the determination operation is implemented for several indices specific to the core 18 considered.
  • the determination operation consists in checking whether the element having the index considered satisfies a binary condition. The determination operation thus makes it possible to determine the set of elements whose index belongs to the specific indices and which satisfies the binary condition.
  • the possible modification operation is only implemented for the elements determined in the determination operation.
  • the modify operation is a modification of a value of the packed list only if it is determined that the binary condition is verified.
  • the modified value is that corresponding to the smallest index of all the indices specific to the heart and which have not undergone any modifications.
  • the list compacting process chosen by the applicant has the particularity of leaving holes within the compacted list. We see in Figure 7 three invalid values (-1) framed.
  • the method proposed by (A massively parallel Eikonal solver on unstructured meshes, D. Ganellari, G. Haase, 2018) produces a list without holes.
  • the presence of a hole in the compacted list cL results in an a priori less optimal occupation of the processors 18 (some being assigned to empty tasks).
  • the applicant's compaction method has a shorter execution time than that mentioned by D. Ganellari et al. It follows that the performance of the whole is advantageous.
  • Na denotes the largest index of cL containing a valid index value.
  • Na 10
  • any cL index with a value greater than 10 contains -1 .
  • the determination method corresponds to the use of the compaction technique in the AGSI technique.
  • the AGSI technique can be described as the implementation of two phases: a phase of reception of the following input data: o
  • the sets V + (x) and V- (x) called direct and indirect stencils, as well as the formula of Hopf-Lax F(x, V + (x)) at this point o
  • the value U(x) at this point o A threshold value ⁇ a phase for determining the physical quantity U(x) at any point of ⁇ 2 ⁇ D by using successive AGSI iterations, each iteration comprising the implementation of calculations only on points contained in a list L and the updating of the list according to the calculations carried out implemented, the iterations being implemented until the current list is empty.
  • the determination method comprises a reception phase and a determination phase.
  • Each iteration has a transform step, a read step, an implement step, and an actualize step.
  • the transformation step transforms a current list L into a current packed list cL.
  • the current list includes points from the predefined environment to which a number is assigned.
  • Each point is identified by an index.
  • Specific indices are assigned to each core 18 of the plurality of cores 18, all of the indices of the current list being assigned to one of the cores 18.
  • the transformation involves initializing the packed list to an initialization value.
  • the transformation also comprises for each core 18 of the plurality of cores 18 the determination for each point of the current list presenting an index included among indices specific to the core 18 considered if a binary condition is verified, to obtain a determined element when the condition binary is verified.
  • the transformation also includes, for each point of the current list determined, the modification of a value of the compacted list which has not been modified and which presents the smallest index of all the indices specific to the core 18 considered.
  • the reading is a reading of the values of the current compacted list different from the initialization value to obtain the points verifying the binary condition.
  • the implementation is a stage of implementation of calculations only on the determined points.
  • the calculations include a convergence test operation of the value of the point, an operation to eliminate the point having been the subject of the test operation from the current list, and an operation to add points only if the test of convergence is not satisfied, the added points being preferably the points of the negative stencil.
  • the update step is a step for updating the list according to the calculations implemented.
  • Domain 22 can be divided into sub-domains, such that each element x of domain 22 belongs to one and only one sub-domain.
  • the lists L and cL then no longer designate the indices of the elements x, but the indices of the subdomains with which they are associated.
  • the division of 22 into N sub-domains increases the efficiency of resolution by a parallel architecture because it makes it possible to astutely group the nodes so as to optimize the accesses to the central memory.
  • Such a strategy is a priori more favorable since it relies on the use of local memory and minimizes access to central memory.
  • the division of 22 into N subdomains also makes it possible to decouple the size of the list to be compacted at each iteration from the total number of elements x of the domain 22 and therefore to compact shorter lists. For example, by grouping the nodes by subdomains of size 64, a list 64 times smaller at each iteration is compacted.
  • Domain 22 contains N n points and is divided into N sub-domains.
  • - S0US_D0MAINE(x') is a function returning the index of the sub-domain to which the node x belongs.
  • This function can be implemented in various ways, such as a table calculated in advance.
  • This function can be performed by running in parallel N processes performing each :
  • the compaction process benefits from the advantage of its simplicity and its speed of execution, which compensates for the presence of holes, and therefore for a sometimes sub-optimal occupation of 18 processors.
  • the method for determining a physical quantity benefits from the advantage of the generality of the AGSI technique and its simplicity of implementation and compensates for its algorithmic complexity by the use of a compacting technique allowing an implementation. parallel work.
  • the process can be used for other iterative techniques using an evolving list such as the AGSI technique.
  • AGSI technique a technique called “Hamilton Fast Marching Dubins” could be considered.
  • the determination system 10 delimits the artery (image segmentation) or determines the flow in an artery (deduction of a physical measurement on the basis of images).
  • the method presented comprises two phases: a phase for receiving input data and a phase for determining the physical quantity by using a technique for solving the system differential equations, to obtain the physical quantity respecting the constraint.
  • the input data includes stress measurements at several points in the predefined environment.
  • the solve technique is an iterative technique with iterations of a transform, initialize, determine, modify, read, implement, and update operation. Iterations are performed until the current list is empty.
  • the transformation operation is an operation for transforming a current list into a current compacted list, the current list comprising points of the predefined environment to which a number is assigned, each point being identified by an index, specific indices being assigned to each core 18, all of the indices of the current list being assigned to one of the cores 18.
  • the transformation includes the initialization operation which is the initialization of the packed list to an initialization value.
  • the determination seeks to know if for each point of the current list presenting an index included among indices specific to the core 18 considered, the aforementioned binary condition is verified.
  • the values of the current packed list different from the initialization value are read to obtain the points satisfying the binary condition.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Complex Calculations (AREA)

Abstract

La présente invention concerne un procédé de détermination d'une grandeur physique vérifiant un système d'équations respectant une contrainte, le procédé étant mis en œuvre par un système comprenant une pluralité de cœurs, le procédé déterminant la grandeur physique par résolution du système d'équations différentielles en plusieurs itérations comportant : - une transformation d'une liste courante en une liste compactée comprenant : - l'initialisation de la liste compactée, - pour chaque cœur, la détermination pour chaque point de la liste courante présentant un des indices spécifiques au cœur si une condition est vérifiée, et pour chaque point déterminé, modification d'une valeur de la liste compactée, - la lecture des valeurs de la liste compactée différentes de la valeur d'initialisation, - des calculs sur les points déterminés, et - l'actualisation de la liste, et ce jusqu'à vider la liste courante.

Description

Procédé de détermination d’une grandeur physique et système de détermination associé
La présente invention concerne un procédé de détermination d’une grandeur physique. Elle se rapporte également à un système de détermination d’une grandeur physique correspondante.
Les équations différentielles d’Hamilton-Jacobi régissent de nombreux phénomènes physiques et se retrouvent donc impliquées dans de multiples applications telles que le traitement d’images, par exemple les images médicales, les géosciences ou la planification de trajectoires.
En effet, les équations différentielles d’Hamilton-Jacobi ont des équations associées à une transformation du hamiltonien dans l'espace des phases, et qui permettent de simplifier la résolution des équations du mouvement. Tout domaine impliquant des équations de mouvement est donc concerné par des phénomènes physiques régis par des équations différentielles d’Hamilton-Jacobi.
Une équation d’Hamilton-Jacobi prend la forme :
H(x, Vμ(x)) = 0
Où :
• Où H est un opérateur Hamiltonien,
• μ(x) est une solution de l’équation qui est la grandeur physique cherchée lorsque l’on souhaite résoudre l’équation d’Hamilton-Jacobi,
• x est généralement dénommée un nœud, c’est-à-dire une valeur possible pour la variable de μ(x). Par ailleurs, x ∈ Ω , Ω étant un domaine inclus dans Rn,
• V hésigne le gradient de u par rapport à x.
Les méthodes les plus répandues pour résoudre une telle équation sont des méthodes causales.
Une méthode causale implique l’emploi d’un liste prioritaire au sein de laquelle chaque nœud x ∈ Ω2 est classé par valeur croissante de μ(x). Ainsi, une méthode causale repose sur un ordre précis de résolution avec une pluralité d’itérations. Selon cet ordre, à chaque itération, le nœud de plus faible valeur de μ(x) est choisi et considéré ensuite comme « accepté ». Lorsqu’un nœud x est accepté, la valeur μ(x) n’est plus jamais réévaluée dans les itérations subséquentes de la méthode causale. Du fait de cette évaluation unique de la valeur de chaque nœud, une méthode causale est également qualifiée de méthode à passe unique (plus souvent désignée sous la dénomination anglaise correspondante de « single pass »).
Cela permet de diminuer fortement la complexité algorithmique au prix d’une hypothèse de causalité.
Toutefois, dans certains cas, cette hypothèse n’est pas valable, ce qui fait qu’une méthode causale n’est pas universelle.
En outre, une méthode causale présente une forte dépendance entre les données, ce qui ne permet pas une implémentation physique efficace des calculs, notamment sur une architecture parallèle de type GP-GPU (l’abréviation « GP-GPU » renvoyant à la dénomination anglaise de « general purpose computing on graphical process units » qui signifie calcul générique sur processeur graphique).
Il est également connu des méthodes de résolution itérative n’impliquant pas de faire l’hypothèse de causalité au prix d’un plus grand nombre de calculs. Les méthodes de résolution itérative n’impliquent l’emploi d'aucun mécanisme d’ordonnancement particulier. De fait, ce ne sont pas des méthodes de type passe unique comme les méthodes causales, mais plutôt des méthodes de type passe multiple dans lesquelles un nœud n’est jamais définitivement considéré comme résolu, et est donc susceptible d’être réévalué à tout moment.
Ces méthodes de résolution itérative sont donc moins efficaces que les méthodes de résolution causale sur des architectures non parallèles (tel qu’un microprocesseur classique) dans la mesure où le nombre de calculs rend leur exécution lente.
Il existe donc un besoin pour un procédé de détermination d’une grandeur physique impliquant une résolution d’un système d’équations différentielles d’Hamilton-Jacobi permettant une implémentation efficace dans un calculateur parallèle.
A cet effet, la description décrit un procédé de détermination d’une grandeur physique, la grandeur physique vérifiant un système d’équations différentielles d’Hamilton- Jacobi pour respecter une contrainte variant spatialement dans un environnement prédéfini, le procédé étant mis en œuvre par un système de détermination de la grandeur physique, le système de détermination comprenant une pluralité de cœurs, le procédé comportant :
- une phase de réception de données d’entrées, les données d’entrées comprenant des mesures de la contrainte en plusieurs points de l’environnement prédéfini,
- une phase de détermination de la grandeur physique par utilisation d’une technique de résolution du système d’équations différentielles, pour obtenir la grandeur physique respectant la contrainte, la technique de résolution comportant plusieurs itérations, chaque itération comportant les étapes suivantes: - la transformation d’une liste courante en une liste compactée courante, la liste courante comportant des points de l’environnement prédéfini auxquels sont attribués un nombre, chaque point étant repéré par un indice, des indices spécifiques étant attribués à chaque cœur de la pluralité de cœurs, l’ensemble des indices de la liste courante étant attribué à l’un des cœurs, la transformation comprenant :
- l’initialisation de la liste compactée à une valeur d’initialisation,
- pour chaque cœur de la pluralité de cœurs :
- la détermination pour chaque point de la liste courante présentant un indice compris parmi des indices spécifiques au cœur considéré si une condition binaire est vérifiée, pour obtenir un élément déterminé lorsque la condition binaire est vérifiée, et
- pour chaque point de la liste courante déterminé, la modification d’une valeur de la liste compactée n’ayant pas été modifiée et présentant l’indice le plus petit de l’ensemble des indices spécifiques au cœur considéré,
- la lecture des valeurs de la liste compactée courante différentes de la valeur d’initialisation pour obtenir les points vérifiant la condition binaire,
- la mise en œuvre de calculs uniquement sur les points déterminés, et
- l’actualisation de la liste en fonction des calculs mis en œuvre, les itérations étant mises en œuvre jusqu’à ce que la liste courante soit vide.
La mise en œuvre de ce procédé est une mise en œuvre en parallèle, chaque cœur mettant à jour sa partie de liste courante, ce qui résulte en un gain d’efficacité dans la mise en œuvre du procédé de détermination d’une grandeur physique.
Selon des modes de réalisation particuliers, le procédé de détermination présente une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou selon toutes les combinaisons techniquement possibles :
- le nombre d’indices spécifiques est le même pour chaque cœur.
- à chaque cœur est attribué un reste respectif de la division euclidienne par le nombre de cœurs, l’ensemble des indices spécifiques au cœur considéré comprenant l’ensemble des indices dont le reste de la division euclidienne de l’indice par le nombre de cœurs est égal au reste respectif.
- chaque nombre attribué est un nombre binaire et la condition binaire est que le nombre binaire attribué est égal à une valeur prédéfinie.
- la valeur d’initialisation est une valeur négative.
- l’opération d’initialisation est également mise en œuvre par chaque cœur uniquement pour les indices spécifiques au cœur considéré. - la mise en œuvre itérative de calculs est réalisée jusqu’à ce que la liste courante soit vide.
- les calculs comportent une opération de test de convergence de la valeur du point.
- pour chaque point, il est défini un stencil négatif, les calculs comportent également une opération d’élimination du point ayant fait l’objet de l’opération de test de la liste courante, et une opération d’ajout de points uniquement si le test de convergence n’est pas satisfait, les points ajoutés étant de préférence les points du stencil négatif.
- les contraintes sont des mesures d’au moins un capteur
La description décrit aussi un système de détermination d’une grandeur physique, la grandeur physique vérifiant un système d’équations différentielles d’Hamilton-Jacobi pour respecter une contrainte variant spatialement dans un environnement prédéfini, le système de détermination comprenant une pluralité de cœurs, le système de détermination étant propre à mettre en œuvre un procédé de détermination d’une grandeur physique, le procédé comportant :
- une phase de réception de données d’entrées, les données d’entrées comprenant des mesures de la contrainte en plusieurs points de l’environnement prédéfini,
- une phase de détermination de la grandeur physique par utilisation d’une technique de résolution du système d’équations différentielles, pour obtenir la grandeur physique respectant la contrainte, la technique de résolution comportant plusieurs itérations, chaque itération comportant les étapes suivantes:
- la transformation d’une liste courante en une liste compactée courante, la liste courante comportant des points de l’environnement prédéfini auxquels sont attribués un nombre, chaque point étant repéré par un indice, des indices spécifiques étant attribués à chaque cœur de la pluralité de cœurs, l’ensemble des indices de la liste courante étant attribué à l’un des cœurs, la transformation comprenant :
- l’initialisation de la liste compactée à une valeur d’initialisation,
- pour chaque cœur de la pluralité de cœurs :
- la détermination pour chaque point de la liste courante présentant un indice compris parmi des indices spécifiques au cœur considéré si une condition binaire est vérifiée, pour obtenir un élément déterminé lorsque la condition binaire est vérifiée, et
- pour chaque point de la liste courante déterminé, la modification d’une valeur de la liste compactée n’ayant pas été modifiée et présentant l’indice le plus petit de l’ensemble des indices spécifiques au cœur considéré,
- la lecture des valeurs de la liste compactée courante différentes de la valeur d’initialisation pour obtenir les points vérifiant la condition binaire, - la mise en œuvre de calculs uniquement sur les points déterminés, et
- l’actualisation de la liste en fonction des calculs mis en œuvre, les itérations étant mises en œuvre jusqu’à ce que la liste courante soit vide.
Des caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels :
- la figure 1 est une représentation schématique d’un exemple de système de détermination,
- la figure 2 est une illustration schématique des notions de stencil direct et de stencil indirect,
- la figure 3 est une vue schématique d’un exemple de mise en œuvre d’une partie d’un exemple de technique de compactage,
- la figure 4 est une vue schématique d’un exemple de mise en œuvre d’une autre partie d’un exemple de technique de compactage,
- la figure 5 est une vue schématique d’un exemple de mise en œuvre d’une autre partie d’un exemple de technique de compactage,
- la figure 6 est une vue schématique d’un exemple de mise en œuvre d’une autre partie d’un exemple de technique de compactage, et
- la figure 7 est une vue schématique d’un exemple de mise en œuvre d’une autre partie d’un exemple de technique de compactage.
La figure 1 est une représentation schématique d’un système de détermination 10 d’une grandeur physique.
Le système de détermination 10 est propre à déterminer une grandeur physique.
Plus précisément, le système de détermination 10 est propre à partir d’au moins une donnée d’entrée 12 à obtenir au moins une donnée de sortie 16, l’au moins une donnée de sortie 16 correspondant à la grandeur physique à déterminer.
Une grandeur physique correspond, dans ce contexte, à l’évolution spatiale d’une mesure physique (c’est-à-dire une mesure obtenue par un capteur) dans un environnement prédéfini.
Dans le suite, la grandeur physique est notée U et l’environnement prédéfini est noté 22. Il peut être remarqué que l’environnement prédéfini est souvent dénommé domaine. L’expression « domaine 22 » sera donc utilisée. Le domaine 22 est un ensemble de points x.
Avec de telles notations, une mesure physique s’écrit donc U(x) qui est la valeur de la grandeur physique U évaluée au point x. Par ailleurs, la grandeur U vérifie en tout point du domaine 22 un système d’équations différentielles dit d’Hamilton-Jacobi ainsi que des conditions initiales (typiquement U(x)=0) sur les points d’un ensemble D.
A titre d’illustration, la grandeur physique est liée au mouvement, c’est par exemple, une position ou une vitesse.
Selon l’exemple décrit, la grandeur II est en chaque point x de 12 la longueur de la trajectoire (ou géodésique) la plus courte permettant d’atteindre le point x depuis un ensemble D de points appelé ensemble de départ.
Dans ce cas, la grandeur physique est la position d’un ensemble de points, la position pouvant être évaluée par une ou plusieurs coordonnées.
Selon l’exemple décrit, les données d’entrée 12 comprennent : o un domaine 22 contenant un ensemble de points x, o l’opérateur Hamiltonien H en tout point x du domaine 22, c’est-à-dire l’équation H(x,Vu(x))=0 à vérifier au point x, et o pour tout point x d’un ensemble de départ D, la valeur ll(x) en ce point.
A titre de remarque, il est intéressant de noter que la manière dont sont fournis ces données est indifférente. Typiquement, il est également possible de fournir un opérateur Hamilton paramétrique (une équation, qui sera la même en tout point x du domaine à quelques valeurs de paramètres près) ainsi que des tables permettant d’associer à chaque point du domaine les valeurs idoines de ces paramètres (il peut par exemple s’agir d’une carte de coût). Ceci permettra de « paramétrer » l’opérateur d’Hamilton de façon différente d’un point à l’autre du domaine.
Plusieurs exemples d’utilisation du système de détermination 10 à des fins de planification de trajectoire sont maintenant décrits. Pour chacun de ces exemples, le système de détermination 10 produit une grandeur U(x) associée à chaque point x du domaine 22 qui permettra à un autre système, non détaillé ici, de rechercher des trajectoires optimisées partant d’un des points de l’ensemble de départ D (le plus favorable) et arrivant en tout x point du domaine 22.
Selon un premier exemple, il s’agit de minimiser les risques d’enlisement d’un véhicule terrestre. Dans un tel exemple, les points du domaine 22 sont caractérisés par deux coordonnées et sont donc des 2-uplets de la forme (x,y), la trajectoire à déterminer étant la trajectoire du véhicule dans le plan. L’opérateur d’Hamilton associé à tout point x traduit la plus ou moins grande adhérence du sol en ce point x. Les conditions initiales sont typiquement U(x) = 0 pour tout point x correspondant à une position de départ envisageable du véhicule terrestre. Selon un deuxième exemple, il s’agit d’obtenir la trajectoire d’un hélicoptère dans un espace aérien sans percuter un élément de l’espace aérien. Dans un tel exemple, les points sont caractérisés par trois coordonnées et sont donc des 3-uplets de la forme (x,y,z), la trajectoire à déterminer étant la trajectoire de l’hélicoptère dans l’espace. L’opérateur d’Hamilton associé à tout point x traduit le risque de collision avec le sol en ce point. Les conditions initiales sont typiquement U(x) = 0 pour tout point x correspondant à une position de départ envisageable de l’hélicoptère.
Selon un troisième exemple, il s’agit d’obtenir une trajectoire évoluant sur du plat pour un véhicule terrestre. Dans un tel exemple, les points sont caractérisés par trois coordonnées et sont donc des 3-uplets de la forme (x,y,θ), où θ est une information de cap (en radians ou degrés). L’opérateur d’Hamilton associé à tout point x traduit le caractère plus ou moins plat du sol à la position (x,y) lorsqu’on la traverse via le cap θ . En variante ou en complément, il est également possible d’introduire dans l’opérateur d’Hamilton une contrainte de rayon de virage minimum à respecter en ce point. Les conditions initiales sont typiquement U(x) = 0 pour tout point x correspondant à une position de départ envisageable du véhicule terrestre.
A travers ces exemples, il apparaît bien que chaque point est caractérisé par un n- uplet quelconque, où n est la dimension du domaine 12, la dimension du domaine dépendant de la grandeur U à déterminer ainsi que de l’opérateur d’Hamilton à appliquer à chaque point.
Pour transformer au moins une donnée d’entrée 12 en au moins une donnée de sortie 16, le système de détermination 10 est propre à mettre en œuvre un procédé de détermination d’une grandeur physique, procédé qui sera décrit ultérieurement.
Le système de détermination 10 est un calculateur comportant plusieurs cœurs 18.
Un cœur 18 est un ensemble de circuits capables d’exécuter des programmes de façon autonome.
L’implémentation physique de chaque cœur 18 est indifférente pour ce qui suit, un cœur pouvant être une unité de traitement graphique (GP-GPU), un microcontrôleur et un processeur de signal numérique (DSP), un circuit logique programmable (comme un circuit intégré spécifique à une application (ASIC), un réseau de portes programmables in situ (FPGA), un dispositif logique programmable (PLD) et des réseaux logiques programmables (P LA)) , une machine à états, une porte logique et des composants matériels discrets.
Dans la figure 1 , seuls deux cœurs 18 sont présentés, sachant que le nombre de cœurs 18 peut être aussi élevé que désiré. Le fonctionnement du système de détermination 10 est maintenant décrit en référence à un exemple de mise en œuvre du procédé de détermination illustré par les figures 2 à 7.
Avant de détailler l’ensemble du procédé, deux techniques, une technique de résolution itérative et une technique de compactage impliquées dans le procédé de détermination vont d’abord être décrites.
Pour mettre au point le procédé de détermination, le demandeur a choisi une technique de résolution itérative.
Comme expliqué précédemment, la technique de résolution ne peut pas être une méthode causale du fait de la forte dépendance entre les données. En effet, une telle dépendance empêche une parallélisation et donc une implémentation physique efficace des calculs sur une architecture parallèle.
Il convient de choisir une technique de résolution qui est une technique de résolution itérative n’impliquant pas de faire l’hypothèse de causalité.
Parmi les différentes techniques, le demandeur a trouvé comme particulièrement pertinente la technique connue d’un article de F. Bornemann et al. intitulé « Finite-element discretization of static hamilton-jacobi equations based on local variational principe » daté de 2006 une technique de résolution adaptative par itérations de Gauss-Seidel. Une telle technique est appelée AGSI, l’abréviation AGSI renvoyant à la dénomination anglaise correspondante de « Adaptative Gauss Seidel Iterative ».
La technique AGSI utilise les notions de stencils qui sont représentés schématiquement sur la figure 2.
Le stencil direct est l’ensemble des points y ∈ Ω impliqués dans le calcul de la valeur u(x) et est représenté par des rectangles sur la figure 2. Le stencil direct est noté V+(x) dans ce qui suit.
Le stencil indirect d’un point x ∈ Ω désigne, quant à lui, l’ensemble des points de y ∈ Ω contenant x dans leur stencil direct : V-(x) = {y ∈ Ω , x ∈ V+(y)}. Le stencil indirect est noté V -(x).
La technique AGSI utilise également une formule d’Hopf-Lax, qui est une équation permettant de calculer la distance de x connaissant celle des voisins de x, au sens du stencil direct. Cette formule est notée F(x, V+(x)). La formule d’Hof-Lax exprime l’opérateur d’Hamilton à vérifier au point x ∈ Ω sous la forme d’une équation impliquant x et l’ensemble de ses voisins au sens du stencil indirect.
La technique AGSI revient ainsi à approximer l’opérateur d’Hamilton H(x,Vu(x)) en considérant qu’un point x n’interagit qu’avec ses proches voisins, les points y ∈ Ω de V+(x). Le vecteur gradient Vu(x) ne dépend alors plus que des points y ∈ Ω de V+(x), et l’opérateur
Figure imgf000011_0001
devient une simple équation liant la valeur U en x aux valeurs de U sur les points y ∈ Ω de V+(x).
En outre, il est également défini un critère de convergence ε arbitraire désignant la tolérance liée à la bonne convergence d’un nœud x ainsi qu’une liste non ordonnée de nœuds actifs L. A chaque itération, seuls les nœuds de la liste L sont évalués.
La technique AGSI peut se résumer selon l’ensemble des actions ci-après :
Initialisation :
Figure imgf000011_0002
puis
Tant que L n’est pas vide :
- Retirer x de L
Figure imgf000011_0003
Cette série d’instructions peut être résumée de la façon suivante : à chaque itération, tous les nœuds de la liste L sont réévalués, c’est-à-dire ceux dont au moins un voisin (au sens du stencil indirect) a été amélioré à l’itération précédente (valeur absolue de l’amélioration supérieure au seuil de convergence ε). La réévaluation de chacun de ces nœuds provoquera la réévaluation de tous leurs voisins (au sens du stencil direct). Cette procédure se répète jusqu’à ce que plus aucun nœud ne change de valeurs. Les nœuds initiaux sont l’ensemble des nœuds de D.
Il est aussi connu une autre technique de la demande US 201 1/0046927 A1 , la technique étant itérative et correspondant au schéma de résolution :
Tant que L n’est pas vide :
- Pour tout x de L :
Figure imgf000011_0004
• Si y n’appartient pas à L :
Figure imgf000012_0001
• Ajouter y à L
• Retirer x de L
Pour la suite, une telle technique est appelée technique FIM, l’abréviation FIM renvoyant à la dénomination de « Fast Iterative Marching » qui signifie littéralement marche itérative rapide.
Les deux techniques précitées, à savoir la technique FIM et la technique AGSI, sont très proches, ce qui n’est guère surprenant puisque ces techniques résolvent le même problème et relèvent toutes les deux d’une technique itérative de résolution.
Néanmoins, malgré leurs similitudes, ces deux techniques ne sont pas strictement équivalentes.
En effet, entre les deux techniques, il y a une inversion de l’utilisation du test de convergence par rapport au seuil ε.
De fait, pour la technique FIM, la convergence est testée pour chaque point de la liste L. En outre, l’activation potentielle des voisins correspond au fait que le nœud antérieur respecte le critère de convergence. Au contraire, dans la technique AGSI, l’activation potentielle des voisins n’a lieu que si le nœud antérieur est modifié, ce qui implique que le nœud antérieur ne respecte pas le critère de convergence.
De plus, le rôle des listes est différent entre les deux techniques.
Pour le cas de la technique FIM, puisqu’un nœud reste dans la liste sauf s’il a convergé, la liste correspond à l’ensemble des nœuds qui doivent encore converger. Par contraste, dans la technique AGSI, un nœud est systématiquement retiré de la liste, quel que soit le résultat du test de convergence. Il n’y sera réintroduit que si un nœud dont il dépend (même stencil) réalise une amélioration. Aussi, la liste dans le cas de la technique AGSI peut être comprise comme jouant un mécanisme de requête/acquittement. L’insertion d’un nœud dans la liste peut être perçu comme une requête de mise à jour, qui est acquittée de façon systématique.
Du fait de ce constat, la technique AGSI a été sélectionnée par le demandeur comme une bonne technique de résolution itérative candidate pour une parallélisation, c’est-à-dire un traitement au moins en partie parallèle dans plusieurs cœurs 18. La technique AGSI technique peut être décrite comme la mise en œuvre de deux phases : une phase de réception des données d’entrées suivantes: o Un domaine 22 contenant un ensemble de points x associés chacun à un indice unique i o Pour tout point x du domaine 22, les ensembles V+(x) et V- (x) appelés stencils directs et indirects, ainsi que la formule d’Hopf-Lax F(x, V+(x)) en ce point o Pour tout point x d’un ensemble D, la valeur U(x) en ce point o Une valeur de seuil ε
- une phase de détermination de la grandeur physiques U(x) en tout point de Ω \D par utilisation d’itérations AGSI successives, chaque itération comprenant la mise en œuvre de calculs uniquement sur des points contenus dans une liste L et l’actualisation de la liste en fonction des calculs mis en œuvre, les itérations étant mises en œuvre jusqu’à ce que la liste courante soit vide.
En l’espèce, les calculs comportent une opération de réévaluation de la valeur de U pour tout point de la liste L, une opération d’élimination de ce point de la liste L, et une opération d’ajout à la liste L des points appartenant au stencil direct des points pour lesquels la réévaluation a conduit à une amélioration d’amplitude supérieure à ε en valeur absolue.
Pour des raisons pratiques liées à la parallélisation massive du procédé, la liste L est implémentée sous la forme d’une table contenant une cellule par point x du domaine 22. Dans une réalisation, la liste L est une liste d’entiers (aussi dénommés sous l’appellation anglaise correspondante d’« integer ») prenant les valeurs 0 ou 1 à la position correspondant à l’indice i du point x.
L’utilisation d’une liste contenant autant de cellules que de points x dans le domaine 22 permet à N processus indépendants d’ajouter un nœud x à la liste L en évitant qu’un nœud n’apparaisse plusieurs fois. Ainsi, N processus indépendants peuvent simultanément écrire 1 dans la cellule du nœud d’indice i correspondant à un point x. Le point x ne sera introduit qu’une fois et une seule dans la liste L. Par ailleurs, le fait que les processus écrivent cette valeur simultanément n’est pas gênant car ils y inscrivent tous la valeur 1 (il n’y a pas de conflit en écriture).
Afin d’améliorer l’efficacité du procédé de résolution la liste L est compactée à chaque itération de la phase de détermination de la grandeur physique U(x). La phase de détermination de la grandeur physique U(x) repose sur deux listes notées L et cL. La liste cL est implémentée sous la forme d’une table contenant une cellule par point x du domaine 22, chaque cellule prenant pour valeur soit l’indice i d’un point du domaine 22, soit une valeur indiquant que la cellule est vide. Dans une réalisation, les cellules vides contiennent la valeur -1 . Un exemple de listes L et cL est présenté sur les deux tableaux suivants.
Figure imgf000014_0001
La technique de compactage permettant de déterminer cL à partir de L choisie par le demandeur est illustrée par les schémas des figures 3 à 7.
La liste L comporte un ensemble de 20 éléments (représentés chacun sous la forme d’une case).
Pour la suite, les éléments sont ordonnés de la gauche vers la droite avec un indice qui est positionné en bas à gauche dans la liste L sur les figures 3 à 6.
Le premier indice est 0, le deuxième indice est 1 et ainsi de suite jusqu’au dernier indice de 19.
En l’espèce, chaque élément de la liste L est soit un « 0 » soit un « 1 ». Plus précisément, les éléments de la liste L dont les indices sont 1 , 3, 7, 8, 12, 14, 17 et 19 sont un « 1 ». Les éléments de la liste L ayant un autre indice sont un « 0 ».
Similairement, sur les figures 3 à 6, la liste compactée cL comprend aussi un ensemble de 20 éléments (également représentés sous la forme d’une case).
Le même système d’indice est utilisé pour la liste compactée cL, les indices n’étant pas repris sur les figures dans un souci de lisibilité des figures.
Initialement, chaque élément de la liste compactée cL est un « -1 ».
Les figures 3 à 6 illustrent comment les éléments de la liste compactée cL sont remplis en fonction de liste L, chaque figure 3 à 6 correspondant à des éléments respectifs.
Il convient également de noter que l’opération de remplissage de la liste compactée cL est ici spécifique en ce sens que l’opération de remplissage est une opération de remplacement de la valeur « -1 » lorsqu’au moins une condition est remplie dans la liste L. La figure 3 montre comment les éléments d’indice 0, 4, 8, 12 et 16 sont traités, c’est- à-dire tous les éléments dont l’indice est proportionnel à 4 soit égal à 0 modulo 4 ; la figure 4 montre comment les éléments d’indice 1 , 5, 9, 13 et 17 sont traités, c’est-à-dire tous les éléments dont l’indice est égal à 1 modulo 4 ; la figure 5 montre comment les éléments d’indice 2, 6, 10, 14 et 18 sont traités, c’est-à-dire tous les éléments dont l’indice est égal à 2 modulo 4 et la figure 6 montre comment les éléments d’indice 3, 7, 11 , 15 et 19 sont traités, c’est-à-dire tous les éléments dont l’indice est égal à 3 modulo 4.
Du fait de ce partage, l’opération de traitement des éléments de la liste compactée cL visée par la figure 3 correspond à un processus dénommé premier processus PO, l’opération de traitement des éléments de la liste compactée cL visée par la figure 4 correspond à un processus dénommé deuxième processus P1, l’opération de traitement des éléments de la liste compactée cL visée par la figure 5 correspond à un processus dénommé troisième processus P2 et l’opération de traitement des éléments de la liste compactée cL visée par la figure 6 correspond à un processus dénommé quatrième processus P3.
Chacun de ces processus va être décrit de manière plus détaillée.
Comme expliqué précédemment, le premier processus PO est illustré sur la figure 3. Le premier processus PO vise à effectuer l’opération de traitement des éléments dont l’indice est égal à 0 modulo 4.
Pour cela, dans l’exemple décrit, le premier processus PO commence par lire la valeur du premier élément de la liste L concerné par ce processus (indice 0) et lit la valeur « 0 ». Le premier processus PO ne fait alors aucune opération sur la liste compactée cL.
Ensuite, le premier processus PO lit la valeur du deuxième élément de la liste L concerné par ce processus (indice 4) et lit la valeur « 0 ». Le premier processus PO ne fait alors aucune opération sur la liste compactée cL
Puis, le premier processus PO lit la valeur du troisième élément de la liste L concerné par le processus (indice 8) et lit la valeur « 1 ». Le premier processus PO modifie alors la valeur de l’élément de la liste compactée cL ayant le premier indice accessible de la liste compactée cL car c’est la première fois qu’une valeur « 1 » est lue par le premier processus PO. Le premier indice de la liste compactée cL accessible au premier processus PO est, en l’occurrence, le premier indice de la liste compactée cL (l’indice 0). Le premier processus PO change alors la valeur initiale « -1 » de l’élément d’indice 0 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 8 ».
Ensuite, le premier processus PO lit la valeur du quatrième élément de la liste L concerné par le processus (indice 12) et lit la valeur « 1 ». Le premier processus PO modifie alors la valeur de l’élément de la liste compactée cL ayant le deuxième indice accessible de la liste compactée cL car c’est la deuxième fois qu’une valeur « 1 » est lue par le premier processus PO. Le deuxième indice de la liste compactée cL accessible au premier processus PO est, en l’occurrence, le cinquième indice de la liste compactée cL (l’indice 4). Le premier processus PO change alors la valeur initiale « -1 » de l’élément d’indice 4 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 12 ».
Enfin, le premier processus PO lit la valeur du cinquième élément de la liste L concerné par le processus (indice 16) et lit la valeur « 0 ». Le premier processus PO ne fait alors aucune opération sur la liste compactée cL
A l’issue du premier processus PO, les valeurs des éléments des autres indices accessibles de la liste compactée cL, en l’occurrence les indices 8, 12 et 16, ne sont pas modifiées et restent donc à la valeur initiale de « -1 ».
Comme expliqué précédemment, le deuxième processus P1 est illustré sur la figure 4. Le deuxième processus P1 vise à effectuer l’opération de remplissage sur les éléments dont l’indice est égal à 1 modulo 4.
Pour cela, dans l’exemple décrit, le deuxième processus P1 lit la valeur du premier élément de la liste L concerné par le processus (indice 1 ) et lit la valeur « 1 ». Le deuxième processus P1 modifie alors la valeur de l’élément de la liste compactée cL ayant le premier indice accessible de la liste compactée cL car c’est la première fois qu’une valeur « 1 » est lue par le deuxième processus P1. Le premier indice de la liste compactée cL accessible au deuxième processus P1 est, en l’occurrence, le deuxième indice de la liste compactée cL (l’indice 1). Le deuxième processus P1 change alors la valeur initiale « -1 » de l’élément d’indice 1 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 12 ».
Puis, le deuxième processus P1 lit la valeur du deuxième élément concerné par le processus (indice 5) et lit la valeur « 0 ». Le deuxième processus P1 ne fait alors aucune opération sur la liste compactée cL.
Ensuite, le deuxième processus P1 lit la valeur du troisième élément de la liste L concerné par le processus (indice 9) et lit la valeur « 0 ». Le deuxième processus P1 ne fait alors aucune opération sur la liste compactée cL
Puis, le deuxième processus P1 lit la valeur du quatrième élément de la liste L concerné par le processus (indice 13) et lit la valeur « 0 ». Le deuxième processus P1 ne fait alors aucune opération sur la liste compactée cL.
Enfin, le deuxième processus P1 lit la valeur du cinquième élément de la liste L concerné par le processus (indice 17) et lit la valeur « 1 ». Le deuxième processus P1 modifie alors la valeur de l’élément de la liste compactée cL ayant le deuxième indice accessible de la liste compactée cL car c’est la deuxième fois qu’une valeur « 1 » est lue par le deuxième processus P1 . Le deuxième indice de la liste compactée cL accessible au deuxième processus P1 est, en l’occurrence, le sixième indice de la liste compactée cL (l’indice 5). Le deuxième processus P1 change alors la valeur initiale « -1 » de l’élément d’indice 5 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 17 ».
A l’issue du deuxième processus P1 , les valeurs des éléments des autres indices accessibles de la liste compactée cL, en l’occurrence les indices 9, 13 et 17, ne sont pas modifiées et restent donc à la valeur initiale de « -1 ».
Comme expliqué précédemment, le troisième processus P2 est illustré sur la figure 5. Le troisième processus P2 vise à effectuer l’opération de remplissage sur les éléments dont l’indice est égal à 2 modulo 4.
Le troisième processus P2 lit la valeur du premier élément de la liste L concerné par le processus (indice 2) et lit la valeur « 0 ». Le troisième processus P2 ne fait alors aucune opération sur la liste compactée cL.
Le troisième processus P2 lit la valeur du second élément de la liste L concerné par le processus (indice 6) et lit la valeur « 1 ». Le troisième processus P2 modifie alors la valeur de l’élément de la liste compactée cL ayant le premier indice accessible de la liste compactée cL car c’est la première fois qu’une valeur « 1 » est lue par le troisième processus P2. Le premier indice de la liste compactée cL accessible au troisième processus P2 est, en l’occurrence, le troisième indice de la liste compactée cL (l’indice 2). Le troisième processus P2 change alors la valeur initiale « -1 » de l’élément d’indice 2 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 6 ».
Le troisième processus P2 lit la valeur du troisième élément de la liste L concerné par le processus (indice 10) et lit la valeur « 0 ». Le troisième processus P2 ne fait alors aucune opération sur la liste compactée cL.
Le troisième processus P2 lit la valeur du quatrième élément de la liste L concerné par le processus (indice 14) et lit la valeur « 1 ». Le troisième processus P2 modifie alors la valeur de l’élément de la liste compactée cL ayant le deuxième indice accessible de la liste compactée cL car c’est la deuxième fois qu’une valeur « 1 » est lue par le troisième processus P2. Le deuxième indice de la liste compactée cL accessible au troisième processus P2 est, en l’occurrence, le huitième indice de la liste compactée cL (l’indice 7). Le troisième processus P2 change alors la valeur initiale « -1 » de l’élément d’indice 7 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 14 ». Le troisième processus P2 lit la valeur du cinquième élément de la liste L concerné par le processus (indice 18) et lit la valeur « 0 ». Le troisième processus P2 ne fait alors aucune opération sur la liste compactée cL.
A l’issue du troisième processus P2, les valeurs des éléments des autres indices accessibles de la liste compactée cL, en l’occurrence les indices 10, 14 et 18, ne sont pas modifiées et restent donc à la valeur initiale de « -1 ».
Comme expliqué précédemment, le quatrième processus P3 est illustré sur la figure 6. Le quatrième processus P3 vise à effectuer l’opération de remplissage sur les éléments dont l’indice est égal à 3 modulo 4.
Pour cela, dans l’exemple décrit, le quatrième processus P3 lit la valeur du premier élément de la liste L concerné par le processus (indice 3) et lit la valeur « 1 ». Le quatrième processus P3 modifie alors la valeur de l’élément de la liste compactée cL ayant le premier indice accessible de la liste compactée cL car c’est la première fois qu’une valeur « 1 » est lue par le quatrième processus P3. Le premier indice de la liste compactée cL accessible au quatrième processus P3 est, en l’occurrence, le quatrième indice de la liste compactée cL (l’indice 3). Le quatrième processus P3 change alors la valeur initiale « -1 » de l’élément d’indice 3 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 3 ».
Puis, le quatrième processus P3 lit la valeur du second élément de la liste L concerné par le processus (indice 7) et lit la valeur « 1 ». Le quatrième processus P3 modifie alors la valeur de l’élément de la liste compactée cL ayant le deuxième indice accessible de la liste compactée cL car c’est la deuxième fois qu’une valeur « 1 » est lue par le quatrième processus P3. Le deuxième indice de la liste compactée cL accessible au quatrième processus P3 est, en l’occurrence, le huitième indice de la liste compactée cL (l’indice 7). Le quatrième processus P3 change alors la valeur initiale « -1 » de l’élément d’indice 7 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément de la liste L lu, à savoir la valeur « 7 ».
Le quatrième processus P3 lit la valeur du troisième élément de la liste L concerné par le processus (indice 1 1 ) et lit la valeur « 0 ». Le quatrième processus P3 ne fait alors aucune opération sur la liste compactée cL.
Le quatrième processus P3 lit la valeur du quatrième élément de la liste L concerné par le processus (indice 15) et lit la valeur « 0 ». Le quatrième processus P3 ne fait alors aucune opération sur la liste compactée cL.
Le quatrième processus P3 lit la valeur du cinquième élément de la liste L concerné par le processus (indice 19) et lit la valeur « 1 ». Le quatrième processus P3 modifie alors la valeur de l’élément de la liste compactée cL ayant le troisième indice accessible de la liste compactée cL car c’est la troisième fois qu’une valeur « 1 » est lue par le quatrième processus P3. Le troisième indice de la liste compactée cL accessible au quatrième processus P3 est, en l’occurrence, le douzième indice de la liste compactée cL (l’indice 11 ). Le quatrième processus P3 change alors la valeur initiale « -1 » de l’élément d’indice 19 de la liste compactée cL en la remplaçant par la valeur de l’indice de l’élément L lu, à savoir la valeur « 19 ».
A l’issue du quatrième processus P3, les valeurs des éléments des autres indices accessibles de la liste compactée cL, en l’occurrence les indices 15 et 19, ne sont pas modifiées et restent donc à la valeur initiale de « -1 ».
La figure 7 illustre les résultats des quatre compactages effectués par chacun des processus P0, P1 , P2 et P3.
Plus précisément, sur cette figure 7, la première liste modifiée par le premier processus P0 est représentée à la première ligne ; la deuxième liste modifiée par le deuxième processus P1 est représentée à la deuxième ligne en dessous de la première ligne ; la troisième liste modifiée par le troisième processus P2 est représentée à la troisième ligne en dessous de la deuxième ligne et la quatrième liste modifiée par le quatrième processus P3 est représentée à la quatrième ligne en dessous de la troisième ligne.
Dans cette représentation, les éléments concernés par les processus sont représentés en grisé.
La liste compactée cL finale correspond à la valeur grisée. Il est ainsi obtenu une liste dans laquelle des éléments d’indice 0 à 7 ont la valeur d’un indice de la liste L ainsi que l’élément d’indice 11 alors que les éléments ayant un indice compris entre 8 et 10 et un indice supérieur ou égal à 12 ont une valeur restée à la valeur initiale.
La technique de compactage illustrée à travers les figures 3 à 7 permet de paralléliser la tâche de compactage de la liste L.
En effet, les processus P0 à P3 peuvent être conçus comme le passage d’un « peigne » sur la liste L comme schématiquement représenté sur les figures 3 à 6. Autrement formulé, les processus P0 à P3 sont indépendants les uns des autres et peuvent être réalisés simultanément par un cœur 18 différent, ici quatre cœurs 18.
Autrement formulé, dans le cas proposé, chaque cœur 18 traite tous les indices ayant le même reste de la division euclidienne par le nombre 4 (en désignant par abus de langage le fait de traiter l’élément ayant l’indice par le fait de traiter l’indice).
En l’occurrence, au premier cœur 18 est attribué le reste 0, au deuxième cœur 18 est attribué le reste 1 , au troisième cœur 18 est attribué le reste 2 et au quatrième cœur 18 est attribué le reste 3. Ainsi, mathématiquement, cela signifie que le premier cœur 18 traite tous les indices proportionnels à 4, le deuxième cœur 18 traite les indices égaux à 1 modulo 4, le troisième cœur 18 traite les indices égaux à 2 modulo 4 et le quatrième cœur 18 traite les indices égaux à 3 modulo 4.
En considérant un nombre quelconque de cœurs 18, cela signifie qu’à chaque cœur 18 est attribué un reste respectif de la division euclidienne par le nombre de cœurs et que chaque cœur traite l’ensemble des indices dont le reste de la division euclidienne de l’indice par le nombre de cœurs est égal au reste respectif.
Le principe d’attribution d’indices spécifiques à chaque cœur 18 qui vient d’être décrit peut être généralisé.
En effet, la seule contrainte est que l’ensemble des indices de la liste courante soit attribué à l’un au moins des cœurs 18.
Il est à noter qu’un principe d’attribution confiant le même nœud à plusieurs cœurs 18 entraînerait des évaluations redondantes dans la technique AGSI sans que cela ne fausse les calculs. Un tel principe d’attribution, a priori moins favorable, pourrait toutefois être choisi s’il permettait une exécution plus rapide par chaque cœur 18.
La technique de compactage peut également être réalisée avec une opération d’initialisation différente. Il convient seulement que la valeur inscrite soit reconnue de façon non équivoque comme non valide lors de la technique AGSI. Autrement formulé, cette valeur ne correspond à aucune valeur possible d’indice d’élément.
Par exemple, une autre valeur que la valeur « -1 » peut être utilisée comme valeur d’initialisation au début du processus pour la liste compactée cL.
En variante, il est possible de prendre toute valeur négative en valeur d’initialisation pour la liste compactée cL.
Selon une autre variante, si le nombre d’éléments au sein du domaine 12 est N, alors il est possible de prendre toute valeur I > N - 1 comme valeur d’initialisation.
En tenant compte de tous les modes de réalisation précités, la technique de compactage peut être décrite comme suit.
La technique de compactage comporte une opération d’initialisation de la liste compactée à une valeur d’initialisation.
La technique de compactage comporte également, pour chaque cœur 18, une opération de détermination et une opération de modification éventuelle. Pour chaque cœur 18, l’opération de détermination est mise en œuvre pour plusieurs indices spécifiques au cœur 18 considéré. Pour chaque indice appartenant à ces indices spécifiques, l’opération de détermination consiste à vérifier si l’élément ayant l’indice considéré vérifie une condition binaire. L’opération de détermination permet ainsi de déterminer l’ensemble des éléments dont l’indice appartient aux indices spécifiques et qui vérifie la condition binaire.
L’opération de modification éventuelle est uniquement mise en œuvre pour les éléments déterminés à l’opération de détermination.
Autrement formulé, l’opération de modification est une modification d’une valeur de la liste compactée uniquement s’il est déterminé que la condition binaire est vérifiée.
La valeur modifiée est celle correspondant à l’indice le plus petit de l’ensemble des indices spécifiques au cœur et n’ayant pas subi de modifications.
D’un point de vue mathématique, on peut écrire le pseudocode qui suit : initialisation : pour chaque élément
Figure imgf000021_0001
compactage : Pour chaque processus
Figure imgf000021_0002
Figure imgf000021_0003
Le procédé de compactage de liste choisi par le demandeur présente la particularité de laisser des trous au sein de la liste compactée. On voit sur la figure 7 trois valeurs non valides (-1 ) encadrées. A titre de comparaison, la méthode proposée par (A massively parallel Eikonal solver on unstructured meshes, D. Ganellari, G. Haase, 2018) produit une liste sans trou. La présence de trou dans la liste compactée cL se traduit par une occupation a priori moins optimale des processeurs 18 (certains étant affectés à des tâches vides). Toutefois, la méthode de compactage du demandeur présente un temps d’exécution plus réduite que celle évoquée par D. Ganellari et al. Il s’en suit que la performance de l’ensemble est avantageuse.
Il s’en suit également qu’une information supplémentaire, notée Na, doit être collectée pendant ou après la phase de compactage de liste. Na désigne le plus grand indice de cL contenant une valeur d’indice valide.
Sur l’exemple rapporté en figure 7, Na = 10, dit autrement, tout indice de cL de valeur supérieure à 10 contient -1 .
Le procédé de détermination correspond à l’utilisation de la technique de compactage dans la technique AGSI.
La technique AGSI peut être décrite comme la mise en œuvre de deux phases : une phase de réception des données d’entrées suivantes: o Un domaine 22 contenant un ensemble de points x associés chacun à un indice unique i o Pour tout point x du domaine 22, les ensembles V+(x) et V- (x) appelés stencils directs et indirects, ainsi que la formule d’Hopf-Lax F(x, V+(x)) en ce point o Pour tout point x d’un ensemble D, la valeur U(x) en ce point o Une valeur de seuil ε une phase de détermination de la grandeur physique U(x) en tout point de Ï2\D par utilisation d’itérations AGSI successives, chaque itération comprenant la mise en œuvre de calculs uniquement sur des points contenus dans une liste L et l’actualisation de la liste en fonction des calculs mis en œuvre, les itérations étant mises en œuvre jusqu’à ce que la liste courante soit vide.
Aussi, le procédé de détermination comporte une phase de réception et une phase de détermination.
Chaque itération comporte une étape de transformation, une étape de lecture, une étape de mise en œuvre et une étape d’actualisation.
L’étape de transformation transforme une liste courante L en une liste compactée courante cL.
La liste courante comporte des points de l’environnement prédéfini auxquels sont attribués un nombre.
Chaque point est repéré par un indice.
Des indices spécifiques sont attribués à chaque cœur 18 de la pluralité de cœurs 18, l’ensemble des indices de la liste courante étant attribué à l’un des cœurs 18.
La transformation comporte l’initialisation de la liste compactée à une valeur d’initialisation.
La transformation comporte également pour chaque cœur 18 de la pluralité de cœurs 18 la détermination pour chaque point de la liste courante présentant un indice compris parmi des indices spécifiques au cœur 18 considéré si une condition binaire est vérifiée, pour obtenir un élément déterminé lorsque la condition binaire est vérifiée.
La transformation comprend aussi, pour chaque point de la liste courante déterminé, la modification d’une valeur de la liste compactée n’ayant pas été modifiée et présentant l’indice le plus petit de l’ensemble des indices spécifiques au cœur 18 considéré.
La lecture est une lecture des valeurs de la liste compactée courante différentes de la valeur d’initialisation pour obtenir les points vérifiant la condition binaire.
La mise en œuvre est une étape de mise en œuvre de calculs uniquement sur les points déterminés. Les calculs comportent une opération de test de convergence de la valeur du point, une opération d’élimination du point ayant fait l’objet de l’opération de test de la liste courante, et une opération d’ajout de points uniquement si le test de convergence n’est pas satisfait, les points ajoutés étant de préférence les points du stencil négatif.
L’étape d’actualisation est une étape d’actualisation de la liste en fonction des calculs mis en œuvre.
Les itérations sont mises en œuvre jusqu’à ce que la liste courante soit vide.
Ce qui vient d’être décrit pour le procédé de détermination peut être décrit de manière équivalente comme suit.
Le domaine 22 peut-être découpé en sous-domaines, de telle façon que chaque élément x du domaine 22 appartient à un sous-domaine et un seul. Les listes L et cL ne désignent alors plus les indices des éléments x, mais les indices des sous-domaines auxquels ils sont associés.
Le découpage de 22 en N sous-domaines accroît l’efficacité de résolution par une architecture parallèle car il permet de regrouper astucieusement les nœuds de façon à optimiser les accès à la mémoire centrale. Par exemple, il peut être avantageusement envisagé une stratégie de définition de sous-domaines au sein desquels tous les nœuds partagent certaines valeurs de paramètres, ce qui permet de les charger une fois pour toute en mémoire locale et de les utiliser ensuite pour chacun des nœuds du sous-domaine. Une telle stratégie est a priori plus favorable puisqu’elle repose sur l’emploi de mémoire locale et minimise les accès à la mémoire centrale.
Par ailleurs, le découpage de 22 en N sous-domaines permet également de découpler la taille de la liste à compacter à chaque itération du nombre total d’éléments x du domaine 22 et donc de compacter des listes plus courtes. Par exemple, en groupant les nœuds par sous-domaines de taille 64, une liste 64 fois moins grande à chaque itération est compactée.
Le domaine 22 contient Nn points et est découpé en N sous-domaines.
Les notations qui suivent sont utilisées dans la série d’instructions qui décrit le procédé :
- S0US_D0MAINE(x') est une fonction retournant l’indice du sous-domaine auquel appartient le nœud x. Cette fonction peut être implémentée de diverses façons, comme par exemple une table calculée à l’avance.
F(x, V+(x)) est la fonction d’Hopf-Lax utilisée
- L1 et L2 sont deux tableaux de booléens de taille N appelés « liste courante des sous-domaines actifs » et « liste suivante des sous-domaines actifs » U1(x) et U 2(x) sont deux tableaux de taille Nn appelés « distances courantes des sous-domaines actifs » et « distances suivantes des sous-domaines actifs » cL est un tableau d’entiers de taille N appelé « liste compactée des sous- domaines actifs »
- Nan est le plus grand indice de cL contenant une valeur valide
Avec ces notations, le procédé s’écrit ainsi :
Boucle
AMELIORATION = VRAI
Tant que AMELIORATION = VRAI :
- AMELIORATION = FAUX
- cL «- COMPACT(L)
- Nan «- RECUP_Na(cL)
Lancer en parallèle SOLVER(a, cL) pour a = 0 → Nan - 1
- U2 = U1
L2 = L1
RECUP NA(cL) :
Cette fonction peut être réalisée en lançant en parallèle N processus réalisant
Figure imgf000024_0001
chacun :
Figure imgf000024_0005
Cette fonction peut également être réalisée pendant la fonction COMPACTER. Le pseudo code de COMPACTER est alors modifié comme suit (en gras):
D’un point de vue mathématique, on peut écrire le pseudocode qui suit : initialisation : pour chaque élément
Figure imgf000024_0002
compactage : Pour chaque processus
Figure imgf000024_0003
Figure imgf000024_0004
Compacter L suivant la méthode détaillée précédemment. s = cL(a)
Si s est non valide (ici: si s = -1 ), quitter.
Pour tout nœud p appartenant au sous-domaine s :
Figure imgf000025_0001
L1(s) = FAUX
Un tel procédé permet de résoudre l’équation avec efficacité pour obtenir la grandeur respectant les contraintes tout en permettant une parallélisation dans l’implémentation informatique du procédé.
Le procédé de compactage bénéficie de l’avantage de sa simplicité et de sa rapidité d’exécution, qui compense la présence de trous, et donc d’une occupation parfois sous optimale de processeurs 18.
Ainsi, le procédé de détermination d’une grandeur physique bénéficie de l’avantage de la généralité de la technique AGSI et de sa simplicité de mise en œuvre et compense sa complexité algorithmique par l’emploi d’une technique de compactage permettant une mise en œuvre parallèle.
Le procédé peut être utilisé pour d’autres techniques itératives utilisant une liste évolutive comme la technique AGSI. Par exemple, il pourrait être envisagé d’utiliser une technique appelée « Hamilton Fast Marching Dubins ».
Le procédé vient d’être décrit pour la détermination de trajectoires mais pourrait également être utilisé pour le domaine des images.
Par exemple, le système de détermination 10 délimite l’artère (segmentation d’image) ou détermine le débit dans une artère (déduction d’une mesure physique sur la base d’images). Dans chacun des cas qui viennent d’être décrits, il apparaît bien que le procédé présenté comporte deux phases : une phase de réception de données d’entrées et une phase de détermination de la grandeur physique par utilisation d’une technique de résolution du système d’équations différentielles, pour obtenir la grandeur physique respectant la contrainte.
Les données d’entrées comprennent des mesures de la contrainte en plusieurs points de l’environnement prédéfini.
La technique de résolution est une technique itérative avec des itérations d’une opération de transformation, d’initialisation, de détermination, de modification, de lecture, de mise en œuvre et d’actualisation. Les itérations sont mises en œuvre jusqu’à ce que la liste courante soit vide.
L’opération de transformation est une opération de transformation d’une liste courante en une liste compactée courante, la liste courante comportant des points de l’environnement prédéfini auxquels sont attribués un nombre, chaque point étant repéré par un indice, des indices spécifiques étant attribués à chaque cœur 18, l’ensemble des indices de la liste courante étant attribué à l’un des cœurs 18.
La transformation comprend l’opération d’initialisation qui correspond à l’initialisation de la liste compactée à une valeur d’initialisation.
Par ailleurs, les opérations de détermination et de modification d’une valeur de la liste compactée sont mises en œuvre pour chaque cœur 18 durant la transformation.
En particulier, la détermination cherche à savoir si pour chaque point de la liste courante présentant un indice compris parmi des indices spécifiques au cœur 18 considéré, la condition binaire précitée est vérifiée.
Ensuite, la valeur de la liste compactée n’ayant pas été modifiée et ayant l’indice le plus petit est modifiée pour chaque point de la liste courante déterminé.
Lors de l’opération de lecture, les valeurs de la liste compactée courante différentes de la valeur d’initialisation sont lues pour obtenir les points vérifiant la condition binaire.
Ensuite, il est mis en œuvre les calculs uniquement sur les points déterminés et la liste est actualisée en fonction des calculs mis en œuvre.
Un tel procédé permet donc bien de gagner en rapidité sans perte en précision.

Claims

REVENDICATIONS
1. Procédé de détermination d’une grandeur physique, la grandeur physique vérifiant un système d’équations différentielles d’Hamilton-Jacobi pour respecter une contrainte variant spatialement dans un environnement prédéfini, le procédé étant mis en œuvre par un système de détermination (10) de la grandeur physique, le système de détermination (10) comprenant une pluralité de cœurs (18), le procédé comportant :
- une phase de réception de données d’entrées, les données d’entrées comprenant des mesures de la contrainte en plusieurs points de l’environnement prédéfini,
- une phase de détermination de la grandeur physique par utilisation d’une technique de résolution du système d’équations différentielles, pour obtenir la grandeur physique respectant la contrainte, la technique de résolution comportant plusieurs itérations, chaque itération comportant les étapes suivantes:
- la transformation d’une liste courante en une liste compactée courante, la liste courante comportant des points de l’environnement prédéfini auxquels sont attribués un nombre, chaque point étant repéré par un indice, des indices spécifiques étant attribués à chaque cœur (18) de la pluralité de cœurs (18), l’ensemble des indices de la liste courante étant attribué à l’un des cœurs (18), la transformation comprenant :
- l’initialisation de la liste compactée à une valeur d’initialisation,
- pour chaque cœur (18) de la pluralité de cœurs (18) :
- la détermination pour chaque point de la liste courante présentant un indice compris parmi des indices spécifiques au cœur (18) considéré si une condition binaire est vérifiée, pour obtenir un élément déterminé lorsque la condition binaire est vérifiée, et
- pour chaque point de la liste courante déterminé, la modification d’une valeur de la liste compactée n’ayant pas été modifiée et présentant l’indice le plus petit de l’ensemble des indices spécifiques au cœur (18) considéré, la détermination et la modification étant mise en œuvre par le cœur considéré,
- la lecture des valeurs de la liste compactée courante différentes de la valeur d’initialisation pour obtenir les points vérifiant la condition binaire,
- la mise en œuvre de calculs uniquement sur les points déterminés, et
- l’actualisation de la liste en fonction des calculs mis en œuvre, les itérations étant mises en œuvre jusqu’à ce que la liste courante soit vide.
2. Procédé selon la revendication 1 , dans lequel le nombre d’indices spécifiques est le même pour chaque cœur (18).
3. Procédé selon la revendication 1 ou 2, dans lequel, à chaque cœur (18) est attribué un reste respectif de la division euclidienne par le nombre de cœurs (18), l’ensemble des indices spécifiques au cœur (18) considéré comprenant l’ensemble des indices dont le reste de la division euclidienne de l’indice par le nombre de cœurs (18) est égal au reste respectif.
4. Procédé selon l’une quelconque des revendications 1 à 3, dans lequel chaque nombre attribué est un nombre binaire et la condition binaire est que le nombre binaire attribué est égal à une valeur prédéfinie.
5. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel la valeur d’initialisation est une valeur négative.
6. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel l’opération d’initialisation est également mise en œuvre par chaque cœur (18) uniquement pour les indices spécifiques au cœur (18) considéré.
7. Procédé selon l’une quelconque des revendications 1 à 6, dans lequel la mise en œuvre itérative de calculs est réalisée jusqu’à ce que la liste courante soit vide.
8. Procédé selon l’une quelconque des revendications 1 à 7, dans lequel, les calculs comportent une opération de test de convergence de la valeur du point.
9. Procédé selon la revendication 8, dans lequel, pour chaque point, il est défini un stencil négatif, les calculs comportent également :
- une opération d’élimination du point ayant fait l’objet de l’opération de test de la liste courante, et
- une opération d’ajout de points uniquement si le test de convergence n’est pas satisfait, les points ajoutés étant de préférence les points du stencil négatif.
10. Procédé selon l’une quelconque des revendications 1 à 9, dans lequel les contraintes sont des mesures d’au moins un capteur.
11. Système de détermination (10) d’une grandeur physique, la grandeur physique vérifiant un système d’équations différentielles d’Hamilton-Jacobi pour respecter une contrainte variant spatialement dans un environnement prédéfini, le système de détermination (10) comprenant une pluralité de cœurs (18), le système de détermination (18) étant propre à mettre en œuvre un procédé de détermination d’une grandeur physique, le procédé comportant :
- une phase de réception de données d’entrées, les données d’entrées comprenant des mesures de la contrainte en plusieurs points de l’environnement prédéfini,
- une phase de détermination de la grandeur physique par utilisation d’une technique de résolution du système d’équations différentielles, pour obtenir la grandeur physique respectant la contrainte, la technique de résolution comportant plusieurs itérations, chaque itération comportant les étapes suivantes:
- la transformation d’une liste courante en une liste compactée courante, la liste courante comportant des points de l’environnement prédéfini auxquels sont attribués un nombre, chaque point étant repéré par un indice, des indices spécifiques étant attribués à chaque cœur (18) de la pluralité de cœurs (18), l’ensemble des indices de la liste courante étant attribué à l’un des cœurs (18), la transformation comprenant :
- l’initialisation de la liste compactée à une valeur d’initialisation,
- pour chaque cœur (18) de la pluralité de cœurs (18) :
- la détermination pour chaque point de la liste courante présentant un indice compris parmi des indices spécifiques au cœur (18) considéré si une condition binaire est vérifiée, pour obtenir un élément déterminé lorsque la condition binaire est vérifiée, et
- pour chaque point de la liste courante déterminé, la modification d’une valeur de la liste compactée n’ayant pas été modifiée et présentant l’indice le plus petit de l’ensemble des indices spécifiques au cœur (18) considéré,
- la lecture des valeurs de la liste compactée courante différentes de la valeur d’initialisation pour obtenir les points vérifiant la condition binaire,
- la mise en œuvre de calculs uniquement sur les points déterminés, et
- l’actualisation de la liste en fonction des calculs mis en œuvre, et les itérations étant mises en œuvre jusqu’à ce que la liste courante soit vide.
PCT/EP2022/087175 2021-12-21 2022-12-21 Procédé de détermination d'une grandeur physique et système de détermination associé WO2023118261A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2114111A FR3131022A1 (fr) 2021-12-21 2021-12-21 Procede de determination d une grandeur physique et systeme de determination associe.
FRFR2114111 2021-12-21

Publications (1)

Publication Number Publication Date
WO2023118261A1 true WO2023118261A1 (fr) 2023-06-29

Family

ID=81749069

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/087175 WO2023118261A1 (fr) 2021-12-21 2022-12-21 Procédé de détermination d'une grandeur physique et système de détermination associé

Country Status (2)

Country Link
FR (1) FR3131022A1 (fr)
WO (1) WO2023118261A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110046927A1 (en) 2007-10-30 2011-02-24 University Of Utah Research Foundation Fast iterative method for processing hamilton-jacobi equations
US20160343105A1 (en) * 2015-05-19 2016-11-24 Simula Innovation As Two-scale method using a list of active sub-domains for a fully parallelized solution of wave equations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110046927A1 (en) 2007-10-30 2011-02-24 University Of Utah Research Foundation Fast iterative method for processing hamilton-jacobi equations
US20160343105A1 (en) * 2015-05-19 2016-11-24 Simula Innovation As Two-scale method using a list of active sub-domains for a fully parallelized solution of wave equations

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
F. BORNEMANN ET AL., FINITE-ELEMENT DISCRETIZATION OF STATIC HAMILTON-JACOBI ÉQUATIONS BASED ON LOCAL VARIATIONAL PRINCIPE, 2006
GILLBERG TOR ET AL: "Parallel solutions of static Hamilton-Jacobi equations for simulations of geological folds", vol. 4, no. 1, 31 December 2014 (2014-12-31), pages 10, XP055957633, ISSN: 2190-5983, Retrieved from the Internet <URL:https://mathematicsinindustry.springeropen.com/track/pdf/10.1186/2190-5983-4-10.pdf> [retrieved on 20220907], DOI: 10.1186/2190-5983-4-10 *

Also Published As

Publication number Publication date
FR3131022A1 (fr) 2023-06-23

Similar Documents

Publication Publication Date Title
FR3111730A1 (fr) Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
EP3953662B1 (fr) Procede de definition d&#39;un chemin
FR2939520A1 (fr) Procede de modelisation geologique de donnees sismiques par correlation de traces
US8280836B2 (en) Converting unordered graphs to oblivious read once ordered graph representation
WO2012007489A1 (fr) Processeur d&#39;analyse situationnelle
EP1881404A1 (fr) Procédé de protection dynamique des données lors de l&#39;exécution d&#39;un code logiciel en langage intermédiaire dans un appareil numérique
WO2009007550A2 (fr) Dispositif informatique pour la simulation d&#39;un ensemble d&#39;objets en interaction et procédé correspondant
FR3082962A1 (fr) Determination automatique et auto-optimisee des parametres d&#39;execution d&#39;une application logicielle sur une plateforme de traitement de l&#39;information
WO2023118261A1 (fr) Procédé de détermination d&#39;une grandeur physique et système de détermination associé
EP0670069B1 (fr) Procede de demonstration automatique
EP3622445B1 (fr) Procede, mise en oeuvre par ordinateur, de recherche de regles d&#39;association dans une base de donnees
EP3955167A1 (fr) Architecture de calcul reconfigurable pour la mise en oeuvre de réseaux de neurones artificiels
Schubert et al. Efficient computation of greyscale path openings
EP4186009B1 (fr) Procédés d&#39;allocation de qubits logiques d&#39;un algorithme quantique dans un processeur quantique
Slavova Parallel triangular solution in the out-of-core multifrontal approach for solving large sparse linear systems
WO2012120241A1 (fr) Procede informatique d&#39;estimation, procede d&#39;exploration et d&#39;exploitation petroliere mettant en oeuvre un tel procede
EP2526526B1 (fr) Procédé de segmentation d&#39;image, programme d&#39;ordinateur et système informatique correspondant
FR3112635A1 (fr) Procédé de modélisation de la consommation de puissance d’un système sur puce avec réduction de trace de simulation/émulation
US11928466B2 (en) Distributed representations of computing processes and events
EP4256490A1 (fr) Procédé et dispositif d&#39;allocation de tâches entre agents
EP3998555A1 (fr) Procédé de traitement de données par un réseau de neurones artificiels avec exécutions groupées d&#39;opérations individuelles pour éviter les attaques par canal auxiliaire, et système correspondant
CN118095455A (zh) 量子比特的控制方法及装置、量子计算机
Abdillahi Sensitivity analysis applied to some models from climate, epidemiology and finance
EP2153359A1 (fr) Procede de classification d&#39;un ensemble de documents electroniques
FR3065099A1 (fr) Dispositif de placement ameliore

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: 22838835

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE