Distributed Symmetric Multiprocessing Computing Architecture
First Claim
1. A method for the implementation of simultaneous, non-contentious file access by multiple threads or processes using distributed buffered file input/output on an underlying network of symmetric multiprocessing (SMP) nodes, comprising:
- performing all direct file reads and writes from the head node of the network of SMP nodes;
maintaining a pool of buffers in the head node to store pending write buffers;
extending buffered file read/write access to threads running in the head node or non-head nodes through the use of messages exchanged between the head node and other nodes; and
providing non-blocking file writes that are guaranteed atomic up to the maximum buffer size, and that eliminate the need for locking.
0 Assignments
0 Petitions
Accused Products
Abstract
Example embodiments of the present invention includes systems and methods for implementing a scalable symmetric multiprocessing (shared memory) computer architecture using a network of homogeneous multi-core servers. The level of processor and memory performance achieved is suitable for running applications that currently require cache coherent shared memory mainframes and supercomputers. The architecture combines new operating system extensions with a high-speed network that supports remote direct memory access to achieve an effective global distributed shared memory. A distributed thread model allows a process running in a head node to fork threads in other (worker) nodes that run in the same global address space. Thread synchronization is supported by a distributed mutex implementation. A transactional memory model allows a multi-threaded program to maintain global memory page consistency across the distributed architecture. A distributed file access implementation supports non-contentious file I/O for threads. These and other functions provide a symmetric multiprocessing programming model consistent with standards such as Portable Operating System Interface for Unix (POSIX).
-
Citations
7 Claims
-
1. A method for the implementation of simultaneous, non-contentious file access by multiple threads or processes using distributed buffered file input/output on an underlying network of symmetric multiprocessing (SMP) nodes, comprising:
-
performing all direct file reads and writes from the head node of the network of SMP nodes; maintaining a pool of buffers in the head node to store pending write buffers; extending buffered file read/write access to threads running in the head node or non-head nodes through the use of messages exchanged between the head node and other nodes; and providing non-blocking file writes that are guaranteed atomic up to the maximum buffer size, and that eliminate the need for locking. - View Dependent Claims (2)
-
-
3. A method for providing memory coherency in a cluster of SMP nodes supporting distributed symmetric multiprocessing (DSMP), the method comprising:
-
support for hardware memory cache coherency for memory accesses within a node, but not for memory accesses between nodes; providing a mechanism for explicitly locking a global memory page for exclusive access by an executing application program thread; providing a mechanism for explicitly forcing an immediate update (synchronization) of a global memory page with a local copy of the page by an executing application program thread; and memory page locking and synchronization executed explicitly by an application program thread via system calls within the application program or a library or programming language construct used by the application program;
but not automatically by the operating system or underlying hardware;
thereby forming an application program controlled memory page coherency model. - View Dependent Claims (4, 7)
-
-
5. A method of providing one or more instances of a distributed symmetric multiprocessing (DSMP) computing environment within a cluster of SMP compute nodes, the method comprising:
-
designating one or more compute nodes in the cluster to be a head node, with the remaining nodes designated as worker nodes; assembling one or more distributed symmetric multiprocessing (DSMP) instances as described in the parent patent, by selecting a single head node and a subset of the available worker nodes for each instance, with the number of worker nodes determined by the requirements of the particular DSMP instance. - View Dependent Claims (6)
-
Specification