Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1998-08-19
2002-06-25
Courtenay, III, St. John (Department: 2151)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C709S241000, C709S241000
Reexamination Certificate
active
06412018
ABSTRACT:
CROSS-REFERENCE TO RELATED APPLICATION
This application contains subject matter which is related to the subject matter of the following applications, each of which is assigned to the same assignee as this application and filed on the same day as this application. Each of the below-listed applications is hereby incorporated herein by reference in its entirety:
“METHOD FOR HANDLING OF ASYNCHRONOUS MESSAGE PACKET IN A MULTI-NODE THREADED COMPUTING ENVIRONMENT,” by William G. Tuel, Ser. No. 09/136,692; and
“HANDLING OF ASYNCHRONOUS MESSAGE PACKET IN A MULTI-NODE THREADED COMPUTING ENVIRONMENT,” by William G. Tuel, Ser. No. 09/136,587.
TECHNICAL FIELD
This invention relates to message passing in a computer system with a plurality of asynchronous computing nodes interconnected for transmission of messages between threaded user tasks executing in ones of the computing nodes, and in particular, to a capability for user handling of one or more message packets transmitted from a source computing node (sender) to a receiver computing node (receiver) in a threaded computing environment, wherein the receiver has a threaded message passing interface (MPI).
BACKGROUND OF THE INVENTION
Technological advances have made it possible to interconnect many processors and memories to build powerful, cost effective computer systems. Distributing computation among the processors allows for increased performance due to improved parallel execution. The performance of a multi-node computing system, however, depends on many factors such as flow control mechanisms, scheduling, the interconnection scheme between the nodes of the system, and the implementation of inter task communication.
A multi-task or parallel application includes multiple user tasks running on multiple nodes of one computer system or multiple computer systems. The user tasks communicate with one another via a message passing interface on the nodes running the user tasks. Specifically, a message packet can be sent within a multi-node computer environment between user tasks executing in ones of the computing nodes. The message packet is transmitted from a source computing node (sender) to a receiver computing node (receiver). Conventionally, user tasks communicate with one another via a message passing mechanism, such as defined by the Message Passing Interface (MPI) Standard. The MPI Standard is described, for example, in message passing interface format materials entitled “MPI: A Message-Passing Interface Standard, Version 1.1,” University of Tennessee, Knoxville, Tenn., Jun. 6, 1995, the entirety of which is hereby incorporated herein by reference.
Unfortunately, the MPI Standard provides no mechanism for asynchronous notification of receipt of a message or message packet at a user task, so programmers must devise other ways of receiving notification of events.
In one implementation of the MPI Standard, embodied in the IBM Parallel Environment for AIX (herein referred to as the “signal handling library”), arrival of a message packet at a receiving node may cause a UNIX SIGIO signal to be sent to the receiving process. When a process receives a signal, its normal instruction stream is interrupted, and the first instruction in the registered signal handler is executed. Control remains in the signal handler until it returns. The MPI library registers a signal handler to catch this signal. The MPI-library-supplied signal handler reads the packet into the user's memory, checks it for duplication and valid format, and matches it to its destination. Then it returns, causing the user's program to resume execution at the point of interruption.
Although the MPI library registers a signal handler for SIGIO, it is well-known that the user program may also register a signal handler for the same signal, in which case the user's signal handler gets control when a SIGIO signal is sent to a process. In this way, a user may obtain notification of a message packet arrival by intercepting the SIGIO signal intended for the MPI library.
The development of multi-processor computing nodes has been accompanied by the development of programming models that can exploit these hardware platforms. One such model is a “threads” model, which has recently been standardized by the POSIX Organization. Basic thread management under the POSIX Standard is described, for example, in a publication by K. Robbins and S. Robbins entitled
Practical UNIX Programming—A Guide to Concurrency, Communication and Multi-Threading,
published by Prentice Hall PTR (1996). Briefly described, when a program executes, the CPU uses the process program counter value to determine which instruction to execute next. The resulting stream of instructions is called the “program's thread of execution”.
A natural extension of the process model is to allow multiple threads to execute within the same process. This extension provides an efficient way to manage threads of execution that share both code and data by avoiding context switches. Each thread of execution is associated with a “thread,” i.e., an abstract data type representing flow of control within a process. A “thread” has its own execution stack, program counter value, register set, and state. By declaring many threads within the confines of a single process, a programmer can achieve parallelism at low overhead.
In an alternative implementation of the MPI Standard, embodied in the IBM Parallel Environment for AIX (herein referred to as “the threaded library”), arrival of a message packet at a receiving node may wake a thread in the receiving process, causing it to resume execution concurrently with other threads comprising the process. This thread is called an “interrupt service thread”, and the thread is created when the MPI. library is initialized. The interrupt service thread reads the packet into the user's memory, checks it for duplication, and valid format, and matches it to the destination. Then it calls a function provided by the AIX kernel to sleep until the next message packet arrives. However, the user's program has no knowledge of the identity of the interrupt service thread, and hence has no way to obtain notification of packet arrival, or to take action based thereon.
Thus, a need exists in the art for a threaded MPI which allows threaded user tasks to be notified of an external event such as receipt of a message packet, and which allows the user task to take a predefined action in response to asynchronous arrival of the message packet at the receiver.
DISCLOSURE OF THE INVENTION
Briefly summarized, in one aspect, a system is provided for processing a message packet within a computer environment having a plurality of computing nodes interconnected for transmission of messages between threaded user tasks executing asynchronously in ones of the computing nodes. A message is transmitted as at least one message packet from a source computing node (sender) to a receiver computing node (receiver). The receiver has a threaded message passing interface (MPI). The system includes means for employing an interrupt service thread at the receiver to call a user-defined program in response to asynchronous arrival of the at least one message packet at the receiver, and means for employing the user-defined program to take a predefined action in response to the asynchronous arrival of the at least one message packet at the receiver.
In another aspect, a system is provided for processing a message packet within a computer environment having a plurality of computing nodes interconnected for transmission of messages between threaded user tasks executing asynchronously in ones of the computing nodes. The system includes a receiver computing node (receiver) which receives at least one message packet from a source computing node (sender). The receiver and sender comprise different computing nodes of the computer environment. The system further includes a threaded message passing interface (MPI) disposed at the receiver and an interrupt service thread disposed at the receiver which includes a user-provided address for call
Courtenay III St. John
Cutter, Esq. Lawrence D.
Gonzalez, Esq. Floyd A.
Heslin Rothenberg Farley & & Mesiti P.C.
LandOfFree
System for handling asynchronous message packet in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System for handling asynchronous message packet in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System for handling asynchronous message packet in a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2960516