Processing element data sharing
AssigneeInternational Business Machines Corporation
InventorsJoerg Boehmer, Torsten Golz, Sanjeev Kumar, Ronald Nordhausen, Paul Zollna
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorsJoerg Boehmer, Torsten Golz, Sanjeev Kumar, Ronald Nordhausen, Paul Zollna
Estimating the term…
A memory sharing method and system in a distributed computing environment. The method includes placing a first operator and a second operator within a processing element. The first operator is associated with a first host and the second operator associated with a second and differing host of a distributed computing system. Requests for usage of global data with respect to multiple processes are received from the first operator and the second operator. The global data is stored within a specified segment of a shared memory module that includes shared memory space being shared by the first operator and the second operator. The multiple processes are executed and results are generated by the first operator and the second operator with respect to the global data.
A method comprising:
A computer program product, comprising a computer readable hardware storage device storing a computer readable program code, said computer readable program code comprising an algorithm that when executed by a computer processor of a computer system implements a method, said method comprising:
A computer system comprising a computer processor coupled to a computer-readable memory unit, said memory unit comprising instructions that when executed by the computer processor implements a method comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Intercommunication techniques: distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
Based on arbitration: with request queuing
In a multiprocessor architecture: access to shared memory
Address translation: decentralised address translation, e.g. in distributed shared memory systems
About 7 years 9 months of term left · ends 12 Jul 2034 (estimated)
One or more embodiments of the invention relates generally to a method and associated system for sharing data between processing elements in a distributed computation system, and in particular to a method and associated system for sharing global data stored in a shared memory module.
Multiple device access to data typically includes an inaccurate process with little flexibility. Sharing multiple device accessed data may include a complicated process that may be time consuming and require a large amount of resources. Accordingly, there exists a need in the art to overcome at least some of the deficiencies and limitations described herein above.
A first embodiment of the invention provides a method comprising: placing, by a computer processor, a first operator and a second operator within a first processing element, the first operator comprising first local data, the second operator comprising second local data, the first operator associated with a first host of a distributed computing system, the second operator associated with a second host of the distributed computing system, the first host differing from the second host; receiving, by the computer processor from the first operator within the first processing element, a first request for usage of first global data with respect to a first process, the first global data semi-persistently stored within a specified segment of a shared memory module; first executing in response to the first request, by the computer processor executing the first operator within the first processing element, the first process with respect to the first global data semi-persistently stored within the specified portion of the shared memory module; generating, by the computer processor, results of the first executing; receiving, by the computer processor from the second operator within the first processing element, a second request for usage of the first global data with respect to a second process differing from the first process; second executing in response to the second request, by the computer processor executing the second operator within the second processing element, the second process with respect to the first global data semi-persistently stored within the specified segment of the shared memory module, wherein the shared memory module comprises shared memory space being shared by the first operator and the second operator; and generating, by the computer processor, results of the second executing.
FIG. 1 illustrates a system for implementing a distributed computing environment, in accordance with embodiments of the present invention.
FIG. 2 illustrates a system for implementing the distributed computing environment of FIG. 1, in accordance with embodiments of the present invention.
FIG. 3 illustrates a system for implementing memory and process distribution within host machines in a distributed computing environment, in accordance with embodiments of the present invention.
FIG. 1 illustrates a system 2 for implementing a distributed computing environment, in accordance with embodiments of the present invention. System 2 enables usage of a distributed system allowing data exchange between operators across processing elements/clusters thereby reducing data retrieval/sharing time. A processing element is defined herein as a software logical unit defined by an operating sub-system for managing a cluster of CPUs for distributed processing. One or more processing elements (each comprising at least one operator) may be deployed within a CPU of a cluster. System 2 enables a process for sharing data between the processing elements and also preventing collisions and overwriting of any shared data.
System 2 comprises synchronization mechanisms for avoiding conflicts between requesting processes. System 2 comprises a complex task 112 broken into multiple sub-tasks distributed across multiple host machines 108a . . . 108c each running multiple computational chains. Each of host machines 108a . . . 108c comprises inputs 110, processing tasks 102, and outputs 104. Within each of host machines 108a . . . 108c, a computing task encapsulates each processing task 102 into an operator. Operators are connected via a chain (e.g., a stream) which carries data between the operators. Operators are restricted to use only data from input streams and other local data. Streams may cross processes and hosts thereby allowing for relocation of operators arbitrarily. Streams include a sequence of small portions of data (i.e., tuples) and each processing step of system 2 executes one tuple.
FIG. 2 illustrates a system 200 for implementing the distributed computing environment of FIG. 1, in accordance with embodiments of the present invention. System 200 illustrates operators 215 executed within processing elements 212 within streams. A processing element conforms to a process of an operating system. A processing element may contain one or more operators and initiates at least one processing thread. Operators may be executed in a separate processing element. Alternatively, several operators may be fused within one processing elements depending on required performance. System 200 additionally comprises hosts 208a . . . 208n, processing tasks 202, inputs 210, and outputs 204.