Messaging interruptible blocking wait with serialization
First Claim
1. A process comprising the steps of:
- a thread X in an application calling an interruptible completion-awaiting routine of a message passing interface (MPI) library, the called interruptible completion-awaiting routine being configured to return successfully from a blocked condition after a specified message passing completion condition is satisfied, the completion condition specifying a list of requests which have not yet been completed;
a message passing interface library progress engine executing while the interruptible completion-awaiting routine is in the blocked condition;
a thread Y interrupting the interruptible completion-awaiting routine prior to satisfaction of the completion condition; and
the interruptible completion-awaiting routine returning control in response to interruption by the thread Y, as part of an interruptible wait enhancement which (a) is not an asynchronous callback enhancement, (b) allows an interruption of the completion-awaiting routine without canceling the completion-awaiting routine, and wherein the interruptible completion-awaiting routine returns with a completion indicator which indicates that at least one of the listed requests was completed prior to the interruption and also indicates that at least one of the listed requests was not completed prior to the interruption, and (c) allows the application to make progress;
wherein the interruptible wait enhancement of the interrupted completion-awaiting routine returns control to the thread X in conjunction with an indication specifying that more than 1 and less than N messaging operations in the list of N messaging operations had completed when the thread Y interrupted the completion-awaiting routine, with N being an integer greater than 2.
2 Assignments
0 Petitions
Accused Products
Abstract
Enhanced message passing architectures and libraries include an interruptible wait feature. After a thread X calls a completion-awaiting routine of a message passing interface library, a progress engine executes while the routine is in the blocked condition. A thread Y interrupts the routine before all messaging operations are completed. The interrupted routine returns control to thread X with an indication that the routine'"'"'s completion condition is unsatisfied. The completion-awaiting routine may have the same function signature as a standard MPI routine. In some cases, thread Y interrupts the routine while requesting a lock held by thread X. In some applications, thread X is a communication thread and thread Y is one of multiple worker threads. The interruptible wait feature may be joined by an asynchronous callback feature, which associates a callback with a deterministic execution context.
21 Citations
20 Claims
-
1. A process comprising the steps of:
-
a thread X in an application calling an interruptible completion-awaiting routine of a message passing interface (MPI) library, the called interruptible completion-awaiting routine being configured to return successfully from a blocked condition after a specified message passing completion condition is satisfied, the completion condition specifying a list of requests which have not yet been completed; a message passing interface library progress engine executing while the interruptible completion-awaiting routine is in the blocked condition; a thread Y interrupting the interruptible completion-awaiting routine prior to satisfaction of the completion condition; and the interruptible completion-awaiting routine returning control in response to interruption by the thread Y, as part of an interruptible wait enhancement which (a) is not an asynchronous callback enhancement, (b) allows an interruption of the completion-awaiting routine without canceling the completion-awaiting routine, and wherein the interruptible completion-awaiting routine returns with a completion indicator which indicates that at least one of the listed requests was completed prior to the interruption and also indicates that at least one of the listed requests was not completed prior to the interruption, and (c) allows the application to make progress; wherein the interruptible wait enhancement of the interrupted completion-awaiting routine returns control to the thread X in conjunction with an indication specifying that more than 1 and less than N messaging operations in the list of N messaging operations had completed when the thread Y interrupted the completion-awaiting routine, with N being an integer greater than 2. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage memory configured with data and with instructions that when executed cause processor(s) to perform a process for interruptible blocking wait in a messaging architecture, the process comprising the steps of:
-
a thread X in an application calling an interruptible completion-awaiting routine of a message passing interface library, the called interruptible completion-awaiting routine being configured to return successfully from a blocked condition after a specified message passing completion condition is satisfied, the completion condition specifying a list of N messaging operations which have not yet been completed; a message passing interface library progress engine executing while the interruptible completion-awaiting routine is in the blocked condition; a thread Y interrupting the interruptible completion-awaiting routine prior to satisfaction of the completion condition; and the interrupted completion-awaiting routine returning control to the thread X in conjunction with an indication that the completion condition is unsatisfied; wherein the interruptible completion-awaiting routine returns control to the thread X in response to interruption by the thread Y as part of an interruptible wait enhancement which (a) is not an asynchronous callback enhancement, (b) allows an interruption of the completion-awaiting routine without canceling the completion-awaiting routine, and wherein the interruptible completion-awaiting routine returns with a completion indicator which indicates that at least one of the listed operations was completed prior to the interruption and also indicates that at least one of the listed operations was not completed prior to the interruption, and (c) allows the application to make progress; wherein the interruptible wait enhancement of the interrupted completion-awaiting routine returns control to the thread X in conjunction with an indication specifying that more than 1 and less than N messaging operations in the list of N messaging operations had completed when the thread Y interrupted the completion-awaiting routine, with N being an integer greater than 2. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer system comprising:
-
at least one logical processor, each logical processor in operable communication with a memory; an application having at least two threads residing in the memory; a message passing interface library progress engine residing in the memory; an unsatisfied completion condition specifying a list of N requests which have not yet been completed; and an interruptible completion-awaiting routine of a message passing interface library, the interruptible completion-awaiting routine configured to return successfully from a blocked condition in the absence of interruption and when the completion condition is satisfied, the completion-awaiting routine also configured to return control in response to an interruption as part of an interruptible wait enhancement which (a) is not an asynchronous callback enhancement, (b) allows an interruption of the completion-awaiting routine without canceling the completion-awaiting routine, and wherein the interruptible completion-awaiting routine returns with a completion indicator which indicates that at least one of the listed requests was completed prior to the interruption and also indicates that at least one of the listed requests was not completed prior to the interruption, and (c) allows the application to make progress; wherein the interruptible wait enhancement of the interrupted completion-awaiting routine returns control to a thread X in conjunction with an indication specifying that more than 1 and less than N messaging operations in the list of N messaging operations had completed when a thread Y interrupted the completion-awaiting routine, with N being an integer greater than 2. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification