Partitioning distributed arrays according to criterion and functions applied to the distributed arrays
AssigneeThe Math Works, Inc.
InventorsPenelope Anderson, Cleve Moler, Sheung Hun Cheng, Patrick D. Quillen
Life of this patent
Estimating the term…
Abstract
The present invention provides a method and system for the dynamic distribution of an array in a parallel computing environment. The present invention obtains a criterion for distributing an array and performs flexible portioning based on the obtained criterion. In some embodiment analysis may be performed based on the criterion. The flexible portioning is then performed based on the analysis.
Claims19
A computer-implemented method for dynamically distributing distributed arrays in a parallel computing environment, the method comprising:
- receiving a function from a function library, where:
- the function library includes a plurality of functions,
- the function library is part of a MATLAB programming environment operating on a computing device, and
- the function is configured to perform an operation on one or more distributed arrays;
- obtaining a criterion for the distribution of a distributed array;
- performing flexible partitioning using the computing device, where the flexible partitioning includes:
- dynamically determining how to partition the distributed array into the two or more parts processed in parallel in the parallel computing environment, where the dynamically determining includes:
- evaluating the function and the distributed array to which the function will be applied,
- identifying a partitioning scheme for the distributed array, where the partitioning scheme is identified based on characteristics of the function, and
- satisfying the obtained criterion with the identified partitioning scheme, and
- dynamically partitioning the distributed array into the two or more parts based on the determining;
- processing the two or more parts in parallel using the parallel computing environment;
- and
- producing one or more results based on the processing.
A computer-readable medium holding instructions that when executed on a processor dynamically distribute distributed arrays in a parallel computing environment, the instructions performing a method comprising:
- receiving a function from a function library, where:
- the function library includes a plurality of functions,
- the function library is part of a programming environment on a computing device, and
- the function is configured to perform an operation on one or more distributed arrays;
- obtaining a criterion for the distribution of a distributed array;
- performing flexible partitioning, where the flexible partitioning includes:
- dynamically determining, using the computing device, how to partition the distributed array into the two or more parts processed in parallel in the parallel computing environment, where the dynamically determining includes:
- evaluating the function and the distributed array to which the function will be applied,
- identifying a partitioning scheme for the distributed array, where the partitioning scheme is identified based on characteristics of the function, and
- satisfying the obtained criterion with the identified partitioning scheme, and
- dynamically partitioning the distributed array into the two or more parts based on the determining;
- processing the two or more parts in parallel using the parallel computing environment;
- and
- producing one or more results based on the processing.
A system for dynamically distributing distributed arrays in a parallel computing environment, the system comprising:
- a processor to:
- execute instructions for an application providing a parallel computing environment,
- obtain a distribution criterion, where the distribution criterion determines, at least in part, how the distributed array is distributed into two or more parts,
- dynamically determine how to partition the distributed array into the two or more parts so the two or more parts can be processed in parallel in the parallel computing environment,
- where the dynamically determining includes:
- evaluating a function for performing an operation on the distributed array,
- identifying a partitioning scheme for the distributed array, where the partitioning scheme is identified based on characteristics of the function,
- satisfying the criterion with the identified partitioning scheme,
- partitioning the distributed array into the two or more parts based on the determining, and
- dynamically distributing the two or more parts to parallel computing units executing in the parallel computing environment, where the dynamically distributing is performed according to a dynamic distribution scheme that takes into account the obtained criterion;
- a first parallel computing unit executing in the parallel computing environment, the first parallel computing to:
- receive a first one of the two or more parts, and
- process the first one of the two or more parts to produce a first result;
- and
- a second parallel computing unit executing in the parallel computing environment, the second parallel computing unit to:
- receive a second one of the two or more parts, and
- process the second one of the two or more parts to produce a second result.
Dependencies are inferred from the claim text.