Automatic conversion of sequential array-based programs to parallel map-reduce programs

US2016110176A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016110176-A1
Application numberUS-201514820998-A
CountryUS
Kind codeA1
Filing dateAug 7, 2015
Priority dateOct 21, 2014
Publication dateApr 21, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure relates generally to the field of automatic conversion of sequential array-based programs to parallel MapReduce programs. In various examples, automatic conversion of sequential array-based programs to parallel MapReduce programs may be implemented in the form of systems, methods and/or algorithms.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method for automatic conversion of a sequential array-based program to a parallel program, the method comprising: obtaining, by a processor, an Array SSA representation of the sequential array-based program; transforming, by the processor, the Array SSA representation into a Lambda Calculus representation that includes a construct for representing loops; and replacing, by the processor, the loop construct with a plurality of operators to generate an executable parallel program. 2 . The method of claim 1 , wherein the replacing of the loop construct generates a plurality of unoptimized parallel programs. 3 . The method of claim 2 , further comprising: generating, by the processor, a plurality of optimized and executable parallel programs based upon the unoptimized parallel programs; selecting, by the processor, one of the optimized and executable parallel programs; and translating, by the processor, the selected optimized and executable parallel program to another language. 4 . The method of claim 1 , wherein, the replacing of the loop construct uses a plurality of MapReduce operators to generate a plurality of unoptimized Lambda Calculus MapReduce programs. 5 . The method of claim 4 , further comprising: generating, by the processor, a plurality of optimized and executable MapReduce programs based upon the unoptimized Lambda Calculus MapReduce programs; selecting, by the processor, one of the optimized and executable MapReduce programs; and translating, by the processor, the selected optimized and executable MapReduce program to another language. 6 . The method of claim 5 , wherein at least one of: (a) the translating translates the selected optimized and executable MapReduce program back to a high-level language; (b) the translating translates the selected optimized and executable MapReduce program to machine code; and (c) the translating translates the selected optimized and executable MapReduce program in a form for use in a hardware circuit. 7 . The method of claim 1 , further comprising receiving, by the processor, the sequential array-based program. 8 . The method of claim 7 , wherein the obtaining comprises transforming, by the processor, the received sequential array-based program into the Array SSA representation of the sequential array-based program. 9 . The method of claim 1 , wherein the replacing is performed using term rewrite rules. 10 . The method of claim 5 , wherein the generating comprises applying optimizations comprising loop fusion to the unoptimized Lambda Calculus MapReduce programs. 11 . The method of claim 3 , wherein the sequential array-based program of which the processor obtains an Array SSA representation is in a first high-level language and the optimized parallel programs are translated back to the first high-level language. 12 . The method of claim 3 , wherein the sequential array-based program of which the processor obtains an Array SSA representation is in a first high-level language and the optimized parallel programs are translated back to a second high-level language that is different from the first high-level language. 13 . The method of claim 3 , wherein the selecting is performed via at least one of: (a) analysis of parallelism; (b) performance testing; or (c) any combination thereof.

Assignees

Inventors

Classifications

  • G06F8/51Primary

    Source to source · CPC title

  • Optimisation · CPC title

  • G06F8/456Primary

    Parallelism detection · CPC title

  • Parallel programming languages (G06F8/313 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016110176A1 cover?
The present disclosure relates generally to the field of automatic conversion of sequential array-based programs to parallel MapReduce programs. In various examples, automatic conversion of sequential array-based programs to parallel MapReduce programs may be implemented in the form of systems, methods and/or algorithms.
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/51. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 21 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).