Dynamically allocated cluster system
First Claim
1. A method of scheduling jobs including the steps of:
- receiving at least one job to be processed from at least one customer;
estimating a time for completion of processing for said at least one job to be processed;
placing each of said at least one job to be processed in a queue of jobs to be processed;
sorting said queue of jobs to be processed;
scheduling said at least one job to be processed, wherein said job is scheduled to be performed by processing resources that are already reserved for another larger job if said at least one job to be processed can be processed by those reserved processing resources before other processing resources required for said larger job are available;
configuring dynamically the size of at least one cluster of processing resources from a pool of processing resources responsive to at least one attribute of said job to be processed;
processing said at least one job to be processed from said queue of jobs to be processed by assigning said at least one job to be processed to said at least one cluster of processing resources; and
making a result of said processing of said at least one job to be processed available to said at least one customer;
wherein said step of configuring dynamically a pool of processing resources into at least one cluster of processing resources responsive to at least one attribute of said at least one job to be processed further includes the steps of;
saving said cluster of processing resources from said pool of processing resources as they become available such that they are earmarked for creating a specific cluster to be used for processing said at least one job to be processed;
saving a configuration file on said cluster of processing resources; and
rebooting said cluster of processing resources to configure dynamically said cluster of processing resources for said at least one job to be processed.
5 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a system and method for managing clusters of parallel processors for use by groups and individuals requiring supercomputer level computational power. A Beowulf cluster provides supercomputer level processing power. Unlike a traditional Beowulf cluster; however, cluster size in not singular or static. As jobs are received from users/customers, a Resource Management System (RMS) dynamically configures and reconfigures the available nodes in the system into clusters of the appropriate sizes to process the jobs. Depending on the overall size of the system, many users may have simultaneous access to supercomputer level computational processing. Users are preferably billed based on the time for completion with faster times demanding higher fees.
-
Citations
28 Claims
-
1. A method of scheduling jobs including the steps of:
-
receiving at least one job to be processed from at least one customer; estimating a time for completion of processing for said at least one job to be processed; placing each of said at least one job to be processed in a queue of jobs to be processed; sorting said queue of jobs to be processed; scheduling said at least one job to be processed, wherein said job is scheduled to be performed by processing resources that are already reserved for another larger job if said at least one job to be processed can be processed by those reserved processing resources before other processing resources required for said larger job are available; configuring dynamically the size of at least one cluster of processing resources from a pool of processing resources responsive to at least one attribute of said job to be processed; processing said at least one job to be processed from said queue of jobs to be processed by assigning said at least one job to be processed to said at least one cluster of processing resources; and making a result of said processing of said at least one job to be processed available to said at least one customer; wherein said step of configuring dynamically a pool of processing resources into at least one cluster of processing resources responsive to at least one attribute of said at least one job to be processed further includes the steps of; saving said cluster of processing resources from said pool of processing resources as they become available such that they are earmarked for creating a specific cluster to be used for processing said at least one job to be processed; saving a configuration file on said cluster of processing resources; and
rebooting said cluster of processing resources to configure dynamically said cluster of processing resources for said at least one job to be processed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 24, 26)
-
-
9. An apparatus including
means for receiving at least one job to be processed from at least one customer; -
means for estimating a time for completion of processing for said at least one job to be processed; means for placing each of said at least one job to be processed in a queue of jobs to be processed; means for sorting said queue of jobs to be processed; means for scheduling said at least one job to be processed, wherein said job is scheduled to be performed by processing resources that are already reserved for another larger job if said at least one job to be processed can be processed by those reserved processing resources before other processing resources required for said larger job are available; means for configuring dynamically the size of at least one cluster of processing resources from a pool of processing resources responsive to at least one attribute of said job to be processed; means for processing said at least one job to be processed from said queue of jobs to be processed by assigning said at least one job to be processed to said at least one cluster of processing resources; and means for making a result of said processing of said at least one job to be processed available to said at least one customer; wherein said means for configuring dynamically a pool of processing resource into at least one cluster of processing resources responsive to at least one attribute of said at least one job to be processed further includes; means for saving said cluster of processing resources from said pool of processing resources as they become available such that the are earmarked for creating a specific cluster to be used for processing ad job to be processed; means for saving a configuration file on said cluster of processing resources; and means for rebooting said cluster of processing resources to configure dynamically said cluster of processing resources for processing of said at least one job to be processed. - View Dependent Claims (10, 11, 12, 13, 14, 15, 25, 27)
-
-
16. An apparatus as in clam 15, wherein said fee is based on said time for completion of processing for said at least one job to be processed.
-
17. A system including
a request receiver element configured to receive at least one job to be processed from at least one customer, said request receiver element in communication with a pool of processing resources; -
a queue of jobs to be processed and disposed to being sorted according to a priority assigned to each of said at least one job to be processed, said queue of jobs to be processed being in communication with said pool of processing resources; a smart scheduler that schedules said at least one job to be processed to be performed by processing resources that are already reserved for another larger job if said at least one job to be processed can be processed by those reserved processing resources before other processing resources required for said larger job are available; and said pool of processing resources configured to run at least one job to be processed, said pool of processing resources and disposed to being dynamically divided into clusters of processing resources which may run in parallel; wherein said pool of processing resources are disposed to being dynamically divided into clusters of processing resources which may run in parallel is responsive to at least one attribute of said at least one job to be processed, and further include a procuring element disposed to collect processing resources from said pool of processing resources as they become available such that they are earmarked for creating a specific cluster to be used for processing said at least one job to be processed; an initializing element disposed to save a configuration file on said cluster of processing resources; a rebooting element disposed to soft reboot said cluster of processing resources such that said cluster of processing resources is dynamically created; an executing element configured to run said at least one job to be processed on said cluster of processing resources; and a transfer element disposed to deliver a result of said run of said at least one job to be processed to said at least one customer. - View Dependent Claims (18, 19, 20, 21, 22, 23, 28)
-
Specification