Co-map Communication Operator for Data Parallel Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General purpose processors are inefficient in executing data parallel algorithms due to the lack of optimized hardware resources, and existing programming tools do not adequately support the enhanced capabilities of data parallel compute nodes, making it difficult for programmers to effectively utilize these nodes.

Innovation Solution

A high-level programming language provides a co-map communication operator that maps an input indexable type to an output indexable type according to a function, allowing for efficient data parallel operations by transforming index spaces and enabling composability with other communication operators, thereby optimizing the use of data parallel compute nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data parallel compute nodes are used to execute data parallel algorithms, then processing efficiency is improved, but programming complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces communication operators as intermediary abstractions that mediate between the programmer and the complex data parallel compute node architecture. These operators provide a high-level interface for data movement and transformation, shielding programmers from low-level hardware complexity while enabling efficient execution on data parallel architectures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The communication operators are designed as universal constructs that can handle multiple types of data transformations and movements through a unified interface. The co-map operator, in particular, can lift functions to work on entire collections simultaneously, providing a multi-functional tool that simplifies various data parallel operations while maintaining programming simplicity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of operation

If general purpose processors are used to execute data parallel algorithms, then programming ease is maintained, but processing efficiency deteriorates

Engineering Contradiction:
Improveprogramming easeVSAvoidprocessing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Instead of requiring programmers to directly manage complex data parallel operations on hardware, the patent inverts the approach by providing high-level communication operators that automatically translate intuitive programming constructs into efficient data parallel operations. The co-map operator, for example, allows programmers to specify logical transformations without explicitly managing the underlying data parallel execution details.

Inventive Principle:
Principle #13The other way round (Inversion)

3Adaptability or versatility

If communication operators are made composable through function lifting, then operator versatility is improved, but implementation complexity increases

Engineering Contradiction:
Improveoperator versatilityVSAvoidimplementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements function lifting that allows communication operators to be nested and composed in a hierarchical manner. The co-map operator can lift functions to work on indexable types, which can themselves contain nested structures. This nested composition enables versatile data transformations while managing implementation complexity through structured, layered abstractions.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS8713039B2Co-map communication operator
Publication Date: 2014.04.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8713039B2 patent drawing
  • US8713039B2 patent drawing
  • US8713039B2 patent drawing

AI summary

A high level programming language provides a co-map communication operator that maps an input indexable type to an output indexable type according to a function. The function maps an index space corresponding to the output indexable type to an index space corresponding to the input indexable type. By doing so, the co-map communication operator lifts a function on an index space to a function on an indexable type to allow composability with other communication operators.