System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
First Claim
1. An integrated software architecture for controlling a highly parallel multiprocessor system having multiple tightly-coupled processors that share a common memory, the integrated software architecture comprising:
- control means for distributively controlling the operation and execution of a plurality of multithreaded programs in the multiprocessor system by executing a symmetrically integrated multithreaded operating system program on one or more of the processors that has an anarchy-based scheduling model for scheduling one or more processes and resources associated with each multithreaded program for execution on one or more of the processors, each processor having access to a single image of the operating system program stored in the common memory that operates on a common set of operating system shared resources, the operating system programming means comprising;
kernel means for processing multithreaded system services such that any one or more of the system services can be executed concurrently by multiple processors, the system services including;
parallel process scheduler means for scheduling multiple processes into one or more processors according the anarchy-based scheduling model,parallel memory scheduler means for allocating space in the common memory among one or more processes scheduled for execution in one or more of the processors, andsupport means for providing accounting, control, monitoring, security, administrative and operator information about any one or more of the processors;
input/output means for processing distributed, multithreaded input/output services such that any one or more of the input/output services can be executed concurrently by multiple ones of the processors and a plurality of input/output resources associated with the multiprocessor system, the input/output resources including a plurality of peripheral devices attached to the multiprocessor system via a plurality of external interfaces, the input/output services includingfile management means for managing the external storage of files containing both data and instructions for the multithreaded programs,input/output management means for distributively processing input/output requests from the processors to the peripheral devices,resource scheduler means for allocating the input/output resources to the processes so as to optimize the usage the input/output resources of the multiprocessor system, andnetwork support means for supporting input/output requests to other remote processors interconnected with the multiprocessor system; and
multithreaded interface library means for interfacing requests to a plurality of common multithreaded object code files stored in the common memory for performing standard programming library functions; and
interface means operably associated with the control means for interfacing between one or more developers and users of the multithreaded programs and the control means so as to present a common visual format for all output representations and input commands for the operating system program and a plurality of program development tools that comprise an integrated parallel user environment for providing compilation, execution and debugging of the multithreaded programs.
18 Assignments
0 Petitions
Accused Products
Abstract
An integrated software architecture for a highly parallel multiprocessor system having multiple tightly-coupled processors that share a common memory efficiently controls the interface with and execution of programs on such a multiprocessor system. The software architecture combines a symmetrically integrated multithreaded operating system and an integrated parallel user environment. The operating system distributively implements an anarchy-based scheduling model for the scheduling of processes and resources by allowing each processor to access a single image of the operating system stored in the common memory that operates on a common set of operating system shared resources. The user environment provides a common visual representation for a plurality of program development tools that provide compilation, execution and debugging capabilities for multithreaded user programs and assumes parallelism as the standard mode of operation.
-
Citations
12 Claims
-
1. An integrated software architecture for controlling a highly parallel multiprocessor system having multiple tightly-coupled processors that share a common memory, the integrated software architecture comprising:
-
control means for distributively controlling the operation and execution of a plurality of multithreaded programs in the multiprocessor system by executing a symmetrically integrated multithreaded operating system program on one or more of the processors that has an anarchy-based scheduling model for scheduling one or more processes and resources associated with each multithreaded program for execution on one or more of the processors, each processor having access to a single image of the operating system program stored in the common memory that operates on a common set of operating system shared resources, the operating system programming means comprising; kernel means for processing multithreaded system services such that any one or more of the system services can be executed concurrently by multiple processors, the system services including; parallel process scheduler means for scheduling multiple processes into one or more processors according the anarchy-based scheduling model, parallel memory scheduler means for allocating space in the common memory among one or more processes scheduled for execution in one or more of the processors, and support means for providing accounting, control, monitoring, security, administrative and operator information about any one or more of the processors; input/output means for processing distributed, multithreaded input/output services such that any one or more of the input/output services can be executed concurrently by multiple ones of the processors and a plurality of input/output resources associated with the multiprocessor system, the input/output resources including a plurality of peripheral devices attached to the multiprocessor system via a plurality of external interfaces, the input/output services including file management means for managing the external storage of files containing both data and instructions for the multithreaded programs, input/output management means for distributively processing input/output requests from the processors to the peripheral devices, resource scheduler means for allocating the input/output resources to the processes so as to optimize the usage the input/output resources of the multiprocessor system, and network support means for supporting input/output requests to other remote processors interconnected with the multiprocessor system; and multithreaded interface library means for interfacing requests to a plurality of common multithreaded object code files stored in the common memory for performing standard programming library functions; and interface means operably associated with the control means for interfacing between one or more developers and users of the multithreaded programs and the control means so as to present a common visual format for all output representations and input commands for the operating system program and a plurality of program development tools that comprise an integrated parallel user environment for providing compilation, execution and debugging of the multithreaded programs. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for controlling a highly parallel multiprocessor system having multiple tightly-coupled processors that share a common memory comprising the steps of:
-
distributively controlling the operation and execution of one or more multithreaded programs in the multiprocessor system by executing a symmetrically integrated multithreaded operating system program on one or more of the processors that has an anarchy-based scheduling model for scheduling one or more processes and resources associated with each multithreaded program, each processor having access to a single image of the operating system program stored in the common memory that operates on a common set of operating system shared resources, the operating system program comprising the steps of; (a) processing a plurality of multithreaded system services such that any one or more of the system services can be executed concurrently by multiple processors, the system services including; (a1) scheduling multiple processes into one or more of the processors according the anarchy-based scheduling model, (a2) allocating space in the common memory among one or more of the processes scheduled for execution in one or more of the processors, and (a3) providing for accounting, control, monitoring, security, administrative and operator information about any one or more of the processors and processes; (b) processing a plurality of multithreaded input/output services such that any one or more of the input/output services can be executed concurrently by multiple ones of the processors and a plurality of input/output resources associated with the multiprocessor system, the input/output resources including a plurality of peripheral devices attached to the multiprocessor system via a plurality of external interfaces, the input/output services including (b1) managing storage of files containing both data and instructions for the multithreaded programs on the peripheral devices, (b2) distributively processing input/output requests from the processors to the peripheral devices, (b3) allocating the input/output resources to the processes so as to optimize the usage the input/output resources of the multiprocessor system, and (b4) supporting input/output requests to other remote processors interconnected with the multiprocessor system; and interfacing between one or more developers and users of the multithreaded programs and the operating system program so as to present a common visual format for all output representations and input commands for the operating system program and a plurality of program development tools that comprise an integrated parallel user environment for providing compilation, execution and debugging of the multithreaded program. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification