# US 10,120,717 B2 · Method for optimizing the size of a data subset of a processing space for improved execution performance

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,120,717 B2
- Document ID: US10120717B2
- Status: Granted
- Kind: B2
- Application number: 14/903,321
- Filed: 2014-07-09
- Published: 2016-05-26
- Granted: 2018-11-06
- Earliest claimed: 2013-07-10
- Assignees: Thales
- Applicants: Thales
- Inventors: Rémi Barrere; Paul Brelet; Michel Barreteau; Eric Lenormand
- Web page: https://patentgrep.com/patent/US10120717B2

## CPC

- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/5044: {considering hardware capabilities}
- G06F 11/3404: {for parallel or distributed programming}
- G06F 2209/5017: Task decomposition
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The invention relates to a method for optimizing the parallel processing of data on a hardware platform, the hardware platform comprising at least one computing unit comprising a plurality of processing units able to execute a plurality of executable tasks in parallel, the data to be processed forming a data set that can be broken down into data subsets, a same sequence of operations being performed on each data subset.

## Claims

### Claim 1

A method for optimizing the parallel processing of data on a hardware platform, the hardware platform comprising:
at least one computing unit comprising a plurality of processing units executing a plurality of work items in parallel in a processing space, the processing space being a space in which a same sequence of operations is carried out on data, the data being broken into data subsets, the processing space being broken down into processing subsets, each processing subset performing the same processing on a data subset;
wherein the method comprises the following steps:
obtaining a maximum number of work items executable in parallel by a computing unit of the hardware platform,
determining sizes of data subsets of the processing space through a same sequence of operations to obtain determined sizes,
optimizing the determined size of at least one data subset of the processing space, the optimization comprising a step for:
selecting, for the at least one data subset, at least one positive integer number strictly greater than the determined sire of the selected data subset, the positive integer being a multiple of numbers smaller than the determined size of the selected data subset,
generating, for the at least one data subset selected in the selection step, a computation subset having, as size, the positive integer selected from the at least one data subset and comprising all data of the at least one data subset, the computation subset replacing the at least one data subset selected in the processing space, to obtain a new processing space,
the optimization being implemented so as to obtain an improved execution performance measurement for the new processing space relative to the execution performance measurement obtained for the processing space in which the selected data subset has the determined sire according to at least one chosen criterion, the measurement being associated with the execution of a program including program code instructions implementing a processing partition corresponding to the partitioning of the new processing space into processing subsets, and assigning at least one executable work item, executing said sequence of operations, to each data subset, the total number of executable items per data subset being less than or equal to said maximum number of work items.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the numbers smaller than the determined size come from a configured file.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the optimization step comprises, for each subset size, a step for:
determining the processing partition to maximize the execution performance measurement associated with the execution of a program including program code instructions implementing the processing partition.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the step for determining the processing partition further includes a step for:
determining at least two processing partitions,
obtaining the program including the program code instructions,
obtaining the value of an execution performance measurement associated with the at least one chosen criterion and the execution of said program on said hardware platform,
selecting a processing partition from the at least two determined processing partitions to obtain an optimal measurement value respecting the chosen criterion; and
implementing said selected processing partition.

### Claim 5 (depends on 3)

The method according to claim 3, wherein the at least one chosen criterion comprises a first criterion and a second criterion different from the first criterion, and wherein the step for determining the processing partition further includes a step for:
determining at least two processing partitions,
obtaining a program including programming code instructions implementing said selected processing partition,
obtaining the value of execution performance measurements respectively associated with the first chosen criterion and the second chosen criterion and with the execution of said program on said hardware platform,
a first selection step of processing partitions making it possible to obtain a plurality of optimal measurement values respecting the first chosen criterion,
a second selection step of the processing partition to obtain an optimal measurement value according to the second chosen criterion from among the processing partitions selected in the first selection step.

### Claim 6 (depends on 4)

The method according to claim 4, wherein the method further includes a step for:
obtaining information relative to the processing partition having a minimum execution time, in order to generate programming code instructions implementing said selected processing partition.

### Claim 7 (depends on 1)

The method according to claim 1, wherein a value of an execution performance measurement associated with the first chosen criterion is an execution time of the application on said hardware platform.

### Claim 8 (depends on 1)

A non-transitory computer program product including programming code instructions able to be implemented by a processor, implementing the method for optimizing the parallel processing of data on a hardware platform according to claim 1.

### Claim 9 (depends on 1)

The method according to claim 1, wherein in the optimization step, the numbers smaller than the determined size of the selected subset are 2, 4 or 8.
