IP Library Granted Patent US 9,395,957
Granted Patent B2
US 9,395,957 · App. 12/975,796 · Granted Jul 19, 2016

Agile communication operator

Inventor: Paul F. Ringseth (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/31G06F8/456G06F9/5066
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,395,957
App. No.
12/975,796
Granted
Jul 19, 2016
Kind
B2
Abstract

A high level programming language provides an agile communication operator that generates a segmented computational space based on a resource map for distributing the computational space across compute nodes. The agile communication operator decomposes the computational space into segments, causes the segments to be assigned to compute nodes, and allows the user to centrally manage and automate movement of the segments between the compute nodes. The segment movement may be managed using either a full global-view representation or a local-global-view representation of the segments.

Claims (29)

1. A method performed by a compiler in a computer system, the method comprising:

identifying an agile communication operator in data parallel source code configured for execution on one or more data parallel optimal compute nodes having a special purpose architecture, the data parallel source code including data parallel features that take advantage of the special purpose architecture of the data parallel optimal compute nodes to allow data parallel operations to be executed faster or more efficiently than with general purpose processors; and

generating data parallel executable code from the data parallel source code such that the data parallel executable code implements the agile communication operator by generating an agile indexable type from an input indexable type and a resource map, the agile communication operator to generate a segmented computational space based on the resource map for distributing the computational space across the data parallel optimal compute nodes.

2. The method of claim 1 wherein the agile indexable type has a plurality of segments defined by the resource map.

3. The method of claim 1 further comprising:

generating the data parallel executable code from the data parallel source code such that the data parallel executable code implements the agile communication operator by using a first segment of the agile indexable type on a first one of the one or more data parallel optimal compute nodes and a second segment of the agile indexable type on a second one of the one or more data parallel optimal compute nodes.

4. The method of claim 1 wherein the data parallel source code is coded with a full global-view representation of the agile indexable type.

5. The method of claim 1 wherein the data parallel source code is coded with a local-global-view representation of the agile indexable type.

6. The method of claim 1 wherein the data parallel source code is written in a high level general purpose programming language with data parallel extensions.

7. The method of claim 1 wherein the data parallel source code is written in a high level data parallel programming language.

8. The method of claim 1 wherein the one or more data parallel optimal compute nodes include at least one graphics processing unit.

9. The method of claim 1 wherein the one or more data parallel optimal compute nodes include at least one general purpose processor.

10. A computer readable storage memory storing computer-executable instructions that, when executed by a computer system, cause the computer system to perform a method comprising:

generating an agile indexable type from an input indexable type and a resource map in response to an agile communication operator in data parallel source code configured for execution on one or more data parallel optimal compute nodes having a special purpose architecture, the data parallel source code including data parallel features that take advantage of the special purpose architecture of the data parallel optimal compute nodes to allow data parallel operations to be executed faster or more efficiently than with general purpose processors, the agile communication operator to generate a segmented computational space based on the resource map for distributing the computational space across the data parallel optimal compute nodes; and

performing a data parallel algorithm using the agile indexable type.

11. The computer readable storage memory of claim 10 , wherein the agile indexable type has a plurality of segments defined by the resource map.

12. The computer readable storage memory of claim 10 , further comprising:

performing the data parallel algorithm using a first segment of the agile indexable type on a first one of the one or more data parallel optimal compute nodes and a second segment of the agile indexable type on a second one of the one or more data parallel optimal compute nodes.

13. The computer readable storage memory of claim 10 , wherein the data parallel algorithm is coded with a full global-view representation of the agile indexable type.

14. The computer readable storage memory of claim 10 , wherein the data parallel algorithm is coded with a local-global-view representation of the agile indexable type.

15. The computer readable storage memory of claim 10 , wherein the data parallel source code is written in a programming language with data parallel extensions.

16. The computer readable storage memory of claim 10 , wherein the data parallel source code is written in a high level data parallel programming language.

17. The computer readable storage memory of claim 10 , wherein the one or more data parallel optimal compute nodes include at least one graphics processing unit.

18. The computer readable storage memory of claim 10 , wherein the one or more data parallel optimal compute nodes include at least one general purpose processor.

19. A computer readable storage memory storing computer-executable instructions that, when executed by a computer system, perform a method comprising:

applying an agile communication operator to an input indexable type with a first rank and a first element type according to a resource map to generate an agile indexable type with a plurality of segments; and

performing a data parallel algorithm using the agile indexable type;

wherein the agile communication operator is included in data parallel source code written in a high level general purpose programming language with data parallel extensions that take advantage of a special purpose architecture of one or more data parallel optimal compute nodes to allow data parallel operations to be executed faster or more efficiently than with general purpose processors, the agile communication operator to generate a segmented computational space based on the resource map for distributing the computational space across the data parallel optimal compute nodes.

20. The computer readable storage memory of claim 19 , wherein the data parallel source code is configured for execution on the one or more data parallel optimal compute nodes that include at least one graphics processing unit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2011
From: RINGSETH, PAUL F.
To: MICROSOFT CORPORATION
Reel/Frame 025646/0577 →
Continuity (1)
Related Publication 20120166771A1 · Jun 28, 2012