DISTRIBUTED SYMMETRIC MULTIPROCESSING COMPUTING ARCHITECTURE
First Claim
1. A symmetric multiprocessing (SMP) computing system comprising:
- a plurality of SMP nodes tightly coupled together to form a cluster, each SMP node including;
one or more multi-core processors;
memory, partitioned into a local and global partition, with the global partitions together forming a single global memory accessible by all processors in the cluster;
a communication adapter supporting data rates of at least 40 Gb/s and remote direct memory access (RDMA).
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
34 Claims
-
1. A symmetric multiprocessing (SMP) computing system comprising:
a plurality of SMP nodes tightly coupled together to form a cluster, each SMP node including; one or more multi-core processors; memory, partitioned into a local and global partition, with the global partitions together forming a single global memory accessible by all processors in the cluster; a communication adapter supporting data rates of at least 40 Gb/s and remote direct memory access (RDMA). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A method of performing symmetric multiprocessing (SMP) computing, the method comprising:
-
forming a cluster of SMP compute nodes (servers), with the memory in each node similarly divided into a local and global partition, where the global partitions of each node combine together to form a single global memory; starting and executing an application program in the local memory partition of the head SMP node in the cluster; allowing additional threads of the program to be launched and executed by processor cores in the head node or in worker nodes; identify and copy a given memory page from the global memory to the local memory partition of a given SMP node when needed by the executing program thread; and enabling a thread to lock for exclusive access a given memory page in the global memory. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method for the implementation of distributed disk input/output on an underlying network of symmetric multiprocessing (SMP) nodes, comprising:
-
performing all direct disk access from a head node of the network of SMP nodes; extending disk access to threads running in the head node or non-head nodes of the network of SMP nodes through the use of message queues; and providing non-contentious access to disk writes that do not require waiting on a mutual exclusion lock by use of a disk output queue; and allowing multiple simultaneous blocking disk reads by providing a read request message queue. - View Dependent Claims (33)
-
-
34. A method of performing symmetric multiprocessing (SMP) computing, the method comprising:
-
executing an application thread in a local memory of a given SMP server node in a cluster of SMP server nodes using a multi-core processor associated with the given SMP node; maintaining fixed logical addressing in the global memory for a given memory page; upon request, identifying a given memory page in global memory during execution of the application thread using the fixed logical addressing, the global memory being formed of respective global memory partitions in the SMP nodes in the cluster, the fixed logical addressing translating to a physical page address in the global memory portion of a particular SMP node in the cluster; copying the given memory page from the global memory to the local memory of the given SMP node; and enabling a programmer to lock the given memory page in the global memory via a set of operating system primitives.
-
Specification