US2010058029A1PendingUtilityA1

Invoking Multi-Library Applications on a Multiple Processor System

Assignee: IBMPriority: Aug 28, 2008Filed: Aug 28, 2009Published: Mar 4, 2010
Est. expiryAug 28, 2028(~2.1 yrs left)· nominal 20-yr term from priority
G06F 9/485G06F 2209/509G06F 9/522G06F 9/5027
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A mechanism is provided for invoking a multi-library application on a multiple processor system, wherein the multiple processor system comprises a Power Processing Element (PPE) and a plurality of Synergistic Processing Element (SPE). Applications including multi-libraries run in the memory of the PPE. The mechanism comprises maintaining the status of each SPE in the application running on the PPE, where there are SPE agents for capturing the instructions from the PPE in the SPEs that have been started. In response to a request for invoking a library, the PPE determines whether the number of available SPEs for invoking the library is adequate based on the current status of SPEs. If the number of available SPEs is adequate, the PPE sends a run instruction to selected SPEs. After finishing the invocation of all libraries, the PPE sends termination instructions to all started SPEs. IBM confidential

Claims

exact text as granted — not AI-modified
1 . A method for invoking a multi-library application on a multiple processor system, wherein the multiple processor system comprises a First Processing Element (FPE) and a plurality of Other Processing Elements (OPEs), in a single chip, the multi-library application including multi-libraries that run in memory on the FPE, comprising:
 maintaining a status of each of the plurality of OPEs in the multi-library application running on the FPE, wherein there are OPE agents for capturing instructions from the FPE in each of the plurality of OPEs that have been started;   in response to a request for invoking a library in the multi-library application, determining, by the FPE, whether a number of available OPEs of the plurality of OPEs for invoking the library is adequate based on a current status of each of the OPEs in the plurality of the OPEs;   responsive to the number of available OPEs being adequate, sending by the FPE, a run instruction to selected OPEs; and   after finishing an invocation of all libraries, sending, by the FPE, termination instructions to all of the selected OPEs.   
     
     
         2 . The method as recited in  claim 1 , wherein the FPE is a Power Processing Element and the OPEs are a Synergistic Processing Element wherein the OPEs have a different instruction set from the FPE. 
     
     
         3 . The method as recited in  claim 1 , wherein in response to invoking a library, responsive to determining that the number of available OPEs for invoking the library is not adequate, starting more OPEs by the FPE. 
     
     
         4 . The method as recited in claims  claim 3 , wherein the status of the plurality of OPEs include BUSY, IDLE, and NOT STARTED, wherein the NOT STARTED status denotes that the OPE has not been started, wherein the BUSY status denotes that the OPE has been started and is executing tasks, and wherein the IDLE status denotes that the OPE has been started and is not executing tasks. 
     
     
         5 . The method as recited in  claim 4 , wherein starting the OPE by the FPE, comprises:
 starting by the FPE, the OPE and creating an OPE thread; and   instructing, by the FPE, the started OPEs to create OPE agents for capturing the instructions from the FPE.   
     
     
         6 . The method as recited in  claim 4 , wherein the step of the FPE determining whether the number of available OPEs for invoking the library is adequate further comprises:
 determining a number of required OPEs for invoking the current library;   determining a number of OPEs that are in IDLE status; and   if the number of OPEs that are in IDLE status is more than the number of required OPE for invoking the current library, then determining that the number of available OPEs for invoking the library is adequate.   
     
     
         7 . (canceled) 
     
     
         8 . The method as recited in  claim 1 , wherein the OPEs are selected either randomly or according to an OPE sequence number. 
     
     
         9 . The method as recited in  claims 6 , wherein after sending a run instruction to selected OPEs that are in IDLE status, updating the OPE status as BUSY status. 
     
     
         10 . The method as recited in  claim 1 , wherein the OPE agent for capturing the instructions from the FPE executes the following steps:
 receiving an instruction from the FPE;   determining whether the instruction is a termination instruction or a run instruction;   if the instruction is run instruction, instructing the OPE to execute the instruction and send the result back; and   if the instruction is termination instruction, terminating the OPE.   
     
     
         11 . A multiple processor system for invoking a multi-library application, wherein the multiple processor system comprises a First Processing Element (FPE) and a plurality of Other Processing Elements (OPEs), on a single chip, the multi-library application including multi-libraries that run in memory on the FPE, the system comprising:
 a FPL, comprising:   a OPE status maintaining module, for maintaining status of each of the plurality of OPEs in the multi-library application running on the FPE;   OPE agent creating module, for creating an OPE agent to capture instructions from the FPE;   instruction sending module, for determining whether the number of available OPEs for invoking a library is adequate based on the current status of each of the OPEs in the plurality of OPEs;   responsive the available OPE number being adequate, the FPE for sending a run instruction to selected OPEs; and   after finishing an invocation of all libraries, the FPE for sending a termination instruction to all of the selected OPEs,   wherein the OPEs that have been started comprising the OPE agents for capturing the instructions from FPE.   
     
     
         12 . The system as recited in  claim 11 , wherein if the instruction sending module determines that the number of available OPEs for invoking the library is not adequate, more OPEs are started by the FPE. 
     
     
         13 . The system as recited in  claim 11 , wherein the OPEs have a different instruction set from the FPE. 
     
     
         14 . The system as recited in  claim 12 , wherein the status of OPE includes BUSY, IDLE, and NOT STARTED, wherein the NOT STARTED status denotes that the OPE has not been started, wherein the BUSY status denotes that the OPE has been started and is executing tasks, and wherein the IDLE status denotes that the OPE has been started and is not executing tasks. 
     
     
         15 . The system as recited in  claim 14 , wherein the FPE starts one or more OPEs and creates an OPE thread for each OPE; and then the OPE creating module instructs the started OPEs to create OPE agents for capturing the instructions from the FPE. 
     
     
         16 . The system as recited in  claim 14 , wherein the instruction sending module determines whether the number of available OPEs for invoking the library is adequate by:
 determining a number of required OPE for invoking the current library;   determining a number of OPEs that have been started and are in IDLE status;   if the number of OPEs that have been started and are in IDLE status is more than the number of required OPE for invoking the current library, then the number of available OPEs for invoking the library is adequate.   
     
     
         17 . (canceled) 
     
     
         18 . The system as recited in  claims 16 , wherein the OPEs are selected either randomly or according to OPE sequence number. 
     
     
         19 . The system as recited in  claims 16 , wherein after sending run instruction to selected OPEs that are in IDLE status, the instruction sending module updates the OPE status as BUSY status. 
     
     
         20 . The system as recited in  claims 11 , wherein the OPE agent for capturing the instructions from the FPE executes:
 receiving an instruction from the FPE;   determining whether the instruction is a termination instruction or a run instruction;   if the instruction is run instruction, instructing the OPE to execute the instruction and send the result back;   if the instruction is termination instruction, terminating the OPE.   
     
     
         21 . A program product comprising a computer readable storage medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
 maintain a status of each of a plurality of Other Processing Elements (OPEs) in a multi-library application running on a First Processing Element (FPE), wherein there are OPE agents for capturing instructions from the FPE in each of the plurality of OPEs that have been started;   in response to a request for invoking a library in the multi-library application, determine whether a number of available OPEs of the plurality of OPEs for invoking the library is adequate based on a current status of each of the OPEs in the plurality of OPEs;   responsive to the number of available OPEs being adequate, send a run instruction to selected OPEs; and   after finishing an invocation of all libraries, send termination instructions to all of the selected OPEs.   
     
     
         22 . The program product as recited in  claim 21 , wherein in response to invoking a library, responsive to determining that the number of available OPEs for invoking the library is not adequate, the computer readable program further causes the computing device to start more OPEs by the FPE, wherein the status of the plurality of OPEs include BUSY, IDLE, and NOT STARTED, wherein the NOT STARTED status denotes that the OPE has not been started, wherein the BUSY status denotes that the OPE has been started and is executing tasks, wherein the IDLE status denotes that the OPE has been started and is not executing tasks, and wherein the computer readable program to start the OPE by the FPE, further causes the computing device to:start the OPE and create a OPE thread; and
 instruct the started OPEs to create OPE agents for capturing the instructions from the FPE.

Join the waitlist — get patent alerts

Track US2010058029A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.