Reducing cost of deserialization by skipping unused array regions

US10387229B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10387229-B2
Application numberUS-201514949667-A
CountryUS
Kind codeB2
Filing dateNov 23, 2015
Priority dateNov 23, 2015
Publication dateAug 20, 2019
Grant dateAug 20, 2019

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.

Methods are provided for copying, from a local place to a remote place, only array variables from a set at the local place that are used at the remote place. A method includes identifying the array based on the array meeting a condition of being defined outside of a code block for a copy command and used inside of the code block. The copy command mandates a copying of all the array variables in the set from the local place to the remote place. The method includes generating a function having code that selectively serializes or deserializes only the array variables from the set that are used at the remote place. The method includes serializing, at the local place, and deserializing at the remote place, only the array variables from the set that are used at the remote place, by invoking the function.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of copying, from a local place to a remote place in a Partitioned Global Address Space language model, only array variables from a set at the local place that are used at the remote place, the method comprising: identifying the array based on the array meeting a condition of being defined outside of a code block for a copy command and used inside of the code block for the copy command, the copy command mandating a copying of all the array variables in the set from the local place to the remote place; generating a function having code that selectively serializes or deserializes only the array variables from the set that are used at the remote place; serializing, at the local place, only the array variables from the set that are used at the remote place, by invoking the generated function; and deserializing, at the remote place, only the array variables from the set that are used at the remote place, by invoking the generated function. 2. The method of claim 1 , wherein said serializing and deserializing steps exclude remaining array variables in the set that are unused at the remote place. 3. The method of claim 1 , further comprising: calculating index expressions for each of the array variables at the local place and each of the same named array variables at the remote place; determining whether the index expressions calculated with respect to the local place match the index expressions calculated with respect to the remote place; and adjusting one or more index expressions at the local place when one or more respective index expression mismatches exists. 4. The method of claim 3 , further comprising determining if any of the array variables at the local place are side-effect free, and adjusting the index expression of the determined array variables when a side-effect exists. 5. The method of claim 4 , wherein a given array variable is side-effect free when there is no input operation or output operation for the given variable. 6. The method of claim 4 , wherein a given array variable is side-effect free when the given array variable is declared as a field and there is no store operation to the given array variable. 7. The method of claim 3 , wherein said adjusting step comprises a converting a term used to bound a variable to a place at which a current computation is running, to a corresponding identifier for the remote place. 8. The method of claim 3 , wherein said adjusting step comprises surrounding a given one of the index expressions with an exception handling statement. 9. A computer program product for copying, from a local place to a remote place in a Partitioned Global Address Space language model, only array variables from a set at the local place that are used at the remote place, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method comprising: identifying the array based on the array meeting a condition of being defined outside of a code block for a copy command and used inside of the code block for the copy command, the copy command mandating a copying of all the array variables in the set from the local place to the remote place; generating a function having code that selectively serializes or deserializes only the array variables from the set that are used at the remote place; serializing, at the local place, only the array variables from the set that are used at the remote place, by invoking the generated function; and deserializing, at the remote place, only the array variables from the set that are used at the remote place, by invoking the generated function. 10. The computer program product of claim 9 , wherein said serializing and deserializing steps exclude remaining array variables in the set that are unused at the remote place. 11. The computer program product of claim 9 , further comprising: calculating index expressions for each of the array variables at the local place and each of the same named array variables at the remote place; determining whether the index expressions calculated with respect to the local place match the index expressions calculated with respect to the remote place; and adjusting one or more index expressions at the local place when one or more respective index expression mismatches exists. 12. The computer program product of claim 11 , further comprising determining if any of the array variables at the local place are side-effect free, and adjusting the index expression of the determined array variables when a side-effect exists. 13. The computer program product of claim 12 , wherein a given array variable is side-effect free when there is no input operation or output operation for the given variable. 14. The computer program product of claim 12 , wherein a given array variable is side-effect free when the given array variable is declared as a field and there is no store operation to the given array variable. 15. The computer program product of claim 11 , wherein said adjusting step comprises a converting a term used to bound a variable to a place at which a current computation is running, to a corresponding identifier for the remote place. 16. The computer program product of claim 11 , wherein said adjusting step comprises surrounding a given one of the index expressions with an exception handling statement. 17. A method of copying, from a local place to a remote place in a Partitioned Global Address Space language model, only array variables from a set at the local place that are used at the remote place, the method comprising: identifying the array based on the array meeting a condition of being defined outside of a code block for a copy command and used inside of the code block for the copy command, the copy command mandating a copying of all the array variables in the set from the local place to the remote place; for each of the array variables, extracting index expressions therefor, and generating a function having code that modularizes the index expressions and serializes and deserializes the array variables; obtaining a list that includes the array variables that are copied by the code block for the copy command; checking that each of the array variables used in the index expressions is included in the list or is side-effect free; rewriting the index expression to align with remote place contexts responsive to each of the arrays variables used in the index expressions being included in the list or being side-effect free; serializing, at the local place, only the array variables from the set that are used at the remote place, by invoking the generated function; and deserializing, at the remote place, only the array variables from the set that are used at the remote place, by invoking the generated function. 18. The method of claim 17 , wherein said serializing and deserializing steps exclude remaining array variables in the set that are unused at the remote place. 19. The method of claim 17 , wherein a given array variable is side-effect free when there is no input operation or output operation for the given variable or when the given array variable is declared as a field and there is no store operation to the given array variable. 20. The method of claim 17 , wherein said rewriting step comprises at least one of: converting a term used to bound a variable to a place at which a current computation is running, to a corresponding identifie

Assignees

Inventors

Classifications

  • G06F9/547Primary

    Remote procedure calls [RPC]; Web services · 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 US10387229B2 cover?
Methods are provided for copying, from a local place to a remote place, only array variables from a set at the local place that are used at the remote place. A method includes identifying the array based on the array meeting a condition of being defined outside of a code block for a copy command and used inside of the code block. The copy command mandates a copying of all the array variables in…
Who is the assignee on this patent?
Int Buisness Machines Corporation, IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/547. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 20 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).