Concurrent processing in object oriented parallel and near parallel

Uloženo v:
Podrobná bibliografie
Název: Concurrent processing in object oriented parallel and near parallel
Patent Number: 599,998&
Datum vydání: December 07, 1999
Appl. No: 08/385,628
Application Filed: February 09, 1995
Abstrakt: In sequential object oriented languages such as C++, a mechanism is provided to permit multiple asynchronous processing operations without compiler modifications, language extensions or special pre-processing. A specially adapted pointer converts a procedure call into an asynchronous task thread, while returning an expected response to permit a calling program to continue processing. The returned value can be either discarded or converted to a future variable if the calling program requires the result of the separate processing on the asynchronous thread. The invention can be used in parallel multi-processors environments and in uni-processors having parallel processing characteristics.
Inventors: O'Farrell, William G. (Don Mills, CAX); Arjomandi, Eshrat (Etobicoke, CAX)
Assignees: International Business Machines Corporation (Armonk, NY)
Claim: What is claimed is
Claim: 1. In a computing environment having a non-extended object oriented compiler and at least two memory storage facilities associated with separate processing operations, each memory storage facility being adapted for constructing object classes, an interface mechanism for generating asynchronous processing operations, comprising
Claim: first link means for receiving a procedure call from a first processing operation in association with one of the memory storage facilities and for issuing a response to cause resumption of the first processing operation, wherein the first link means comprises a pointer mechanism adapted to return a placeholder value to the first processing operation, and further comprising means in the first processing operation to discard the placeholder value;
Claim: at least one register for invoking a data object function for a second processing operation in association with another of the memory storage facilities alongside the first processing operation;
Claim: means for receiving and storing a resulting variable from the second processing operation; and
Claim: second link means for transferring the resulting variable to the one memory storage facility associated with the first processing operation, wherein the second link means comprises
Claim: a convertor for converting the response from the first link means to a future value variable in the first processing operation; and
Claim: means for replacing the future value variable with the resulting variable in the first processing operation.
Claim: 2. In a parallel computing environment having at least first and second processing means, a non-extended object oriented compiler and dynamic memory storage for constructing object classes associated with the first processing means, an interface mechanism for generating parallel processing operations within a single object oriented program, comprising
Claim: first link means for receiving a procedure call from the first processing means and issuing a response to cause the first processing means to continue processing, wherein the first link means comprises a pointer mechanism adapted to return a placeholder value to the first processing means, and further comprising means in the dynamic memory storage invokable to discard the placeholder value;
Claim: at least one register for invoking a data object function for processing on the second processing means;
Claim: means for receiving and storing a resulting variable from processing of the data object function on the second processing means; and
Claim: second link means for transferring the resulting variable to the dynamic memory storage associated with the first processing means, wherein the second link means comprises
Claim: a convertor for converting the response from the first link means to a future value variable in the first processing means; and
Claim: means for replacing the future value variable with the resulting variable in the first processing means.
Claim: 3. A process for implementing asynchronous processing operations in a computing environment having at least a first object oriented processing means and at least two memory storage facilities associated with separate processing operations, comprising the computer implemented steps of
Claim: receiving a procedure call from a first processing operation in association with one of the memory storage facilities and issuing a response to cause resumption of the first processing operation, by use of a first link means, wherein the first link means comprises a pointer mechanism adapted to return a placeholder value to the first processing operation, and further comprising means in the first processing operation to discard the placeholder value;
Claim: invoking a data object function for a second processing operation in association with another of the memory storage facilities alongside the first processing operation by use of a register;
Claim: receiving and storing a resulting variable from the second processing operation; and
Claim: transferring the resulting variable to the one memory storage facility associated with the first processing operation by use of a second link means wherein the second link means comprises
Claim: a converter for converting the response from the first link means to a future value variable in the first processing operation; and
Claim: 4. An article of manufacture for use in a computer system, for implementing asynchronous processing operations in a computing environment having at least a first object oriented processing means and at least two memory storage facilities associated with separate processing operations, said article of manufacture comprising a computer-readable storage medium having a computer program embodied in said medium which may cause the computer system to
Claim: receive a procedure call from a first processing operation in association with one of the memory storage facilities and issue a response to cause resumption of the first processing operation, by use of a first link means, wherein the first link means comprises a pointer mechanism adapted to return a placeholder value to the first processing operation, and further comprising means in the first processing operation to discard the placeholder value;
Claim: invoke a data object function for a second processing operation in association with another of the memory storage facilities alongside the first processing operation by use of a register;
Claim: receive and store a resulting variable from the second processing operation; and
Claim: transfer the resulting variable to the one memory storage facility associated with the first processing operation by use of a second link means, wherein the second link means comprises
Current U.S. Class: 709/304; 709/303; 709/305; 395/706
Current International Class: G06F 946; G06F 945
Patent References Cited: 5341478 August 1994 Travis, Jr. et al.
5377350 December 1994 Skinner
5499343 March 1996 Pettus
Other References: Gunaseelan L. et al. "Distributed Eiffel: A Language for Programming Multi-Granular Distributed Objects on the Clouds Operating System" Proceedings of the International Conference on Computer Languages, Oakland, Apr. 20-23, 1992, No. Conf. 4, Apr. 20, 1992, pp. 331-340. IEEE p. 336, left-hand col., line 7-68.
"Making Synchronous Communication Look the Same as Normal Method" IBM Technical Disclosure Bulletin, vol. 37, No. 2B, Feb. 1, 1994, pp. 589/590.
"Asynchronous Software Communication Using Response Objects" IBM Technical Disclosure Bulletin, vol. 37, No. 2A, Feb. 1, 1994, pp. 617/618.
Walker E F et al. "Asynchronous Remote Operation Execution in Distributed Systems" Proceedings of the International Conference on Distributed Computing Systems, Paris, May 28-Jun. 1, 1990, Conf. 10, May 28, 1990, pp. 253-259 IEEE p. 253, left-hand col., line 49--right-hand col., line 20 p. 255, right-hand col., line 18-- p. 256, right-hand col., line 30.
Published EPO Search report, Application No. 95300699.6-2201. Publication date: Jan. 15, 1999.
IEEE p. 1003.4a/D4 Draft Standard, Threads Extension for Portable Operating Systems, Technical Committee on Operating Systems of the Institute of Electrical and Electronic Engineers (IEEE) Computer Society, New York, Aug. 10, 1990.
Chandra, R.; Gupta, A.; Hennessy, J., COOL: A Language for Parallel Programming, Languages and Compilers for Parallel Computing, MIT Press (1990), pp. 126-148.
Grunwald, D., A Users Guide to AWESIME: An Object Oriented Oriented Parallel Programming and Simulation System, University of Colorado at Boulder, Technical Report CU-CS-552-91 (Nov. 1991), pp. 1-23.
Doeppner Jr., T.W.; Gebele, A.J., C++ on a Parallel Machine, Brown University, Techinical Report CS-87-26 (Nov. 1987), pp. 1-12.
Gelernter et al., Languages and Compilers for Parallel Computing, MIT Press, pp. 126-148, 1990.
Primary Examiner: Follansbee, John A.
Attorney, Agent or Firm: Johnson, Prenthiss W.
Přístupové číslo: edspgr.0599998.
Databáze: USPTO Patent Grants
Popis
Abstrakt:In sequential object oriented languages such as C++, a mechanism is provided to permit multiple asynchronous processing operations without compiler modifications, language extensions or special pre-processing. A specially adapted pointer converts a procedure call into an asynchronous task thread, while returning an expected response to permit a calling program to continue processing. The returned value can be either discarded or converted to a future variable if the calling program requires the result of the separate processing on the asynchronous thread. The invention can be used in parallel multi-processors environments and in uni-processors having parallel processing characteristics.