Scheduling and management in a personal datacenter
First Claim
1. A computer-implemented method for providing parallel processing in a heterogeneous personal computing environment, the method comprising:
- determining one or more available computing resources in the computing environment by gathering information related to one or more computing resources actively connected to a personal network wherein determining further comprises determining if a device is a candidate to leave the computing environment based upon a current time and a historical entry and exit of the device to the personal network and categorizing that device as an unavailable computing resource when it is determined the device is the candidate to leave the computing environment;
running one or more benchmarks on the determined available computing resources to determine available capabilities that can be used for distributed computing;
receiving a job from an originating computing resource for execution on one or more other computing resources;
determining a schedule of one or more tasks for completing the job, wherein the tasks can be distributed to various available computing resources in the computing environment and the determined schedule selects a resource for each task that satisfies one or more performance criteria;
sending information describing each task to an available computing resource to perform the task;
managing each task to completion and gathering individual task results for the job; and
reporting the job results to the originating computing resource,wherein the preceding steps are performed by at least one processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A personal datacenter system is described herein that provides a framework for leveraging multiple heterogeneous computers in a dynamically changing environment together as an ad-hoc cluster for performing parallel processing of various tasks. A home environment is much more heterogeneous and dynamic than a typical datacenter, and typical datacenter scheduling strategies do not work well for these types of small clusters. Machines in a home are likely to be powered on and off, be removed and taken elsewhere, and be connected by an ad-hoc network topology with a mix of wired and wireless technologies. The personal data center system provides components to overcome these differences. The system identifies a dynamically available set of machines, characterizes their performance, discovers the network topology, and monitors the available communications bandwidth between machines. This information is then used to compute an efficient execution plan for data-parallel and/or High Performance Computing (HPC)-style applications.
25 Citations
20 Claims
-
1. A computer-implemented method for providing parallel processing in a heterogeneous personal computing environment, the method comprising:
-
determining one or more available computing resources in the computing environment by gathering information related to one or more computing resources actively connected to a personal network wherein determining further comprises determining if a device is a candidate to leave the computing environment based upon a current time and a historical entry and exit of the device to the personal network and categorizing that device as an unavailable computing resource when it is determined the device is the candidate to leave the computing environment; running one or more benchmarks on the determined available computing resources to determine available capabilities that can be used for distributed computing; receiving a job from an originating computing resource for execution on one or more other computing resources; determining a schedule of one or more tasks for completing the job, wherein the tasks can be distributed to various available computing resources in the computing environment and the determined schedule selects a resource for each task that satisfies one or more performance criteria; sending information describing each task to an available computing resource to perform the task; managing each task to completion and gathering individual task results for the job; and reporting the job results to the originating computing resource, wherein the preceding steps are performed by at least one processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system for managing a heterogeneous personal datacenter, the system comprising:
-
a processor and memory configured to execute software instructions embodied within the following components; a namespace component that manages a shared file system namespace between multiple computers in the personal datacenter; a process execution component that manages execution of processes on each computing resource, wherein each process represents a subdivision of a larger job managed by the system; a cluster resource manager that stores information describing available computing resources and ongoing distributed jobs that are executing on available computing resources in the personal datacenter; a resource identification component that identifies computing resources in a personal data center environment that are available for performing distributed, parallel computing tasks, wherein an available computing resource is considered to be unavailable based upon a current time and a historical entry and exit of the device to the personal network and categorizing that device as an unavailable computing resource when it is determined that the available computing resources may soon leave the personal datacenter; a benchmark component that determines one or more capabilities of each identified computing resource; a job scheduling component configured to determine a schedule for completing a computing job by analyzing the identified computing resources, the determined capabilities of each computing resource, and one or more demands of the computing job; and a job management component that manages execution of one or more tasks that make up a job on computing resources specified by the determined schedule. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable storage medium comprising instructions for controlling a computer system to schedule a job on one or more available computing resources in a personal datacenter, wherein the instructions, upon execution, cause a processor to perform actions comprising:
-
determining one or more demands of a job submitted for processing by one or more available computing resources in the personal datacenter; dividing the job into one or more tasks wherein each task is suitable for performing on one of the available computing resources; selecting a task of the job for scheduling; determining a suitable computing resource for performing the selected task by matching the determined demands of the task with capabilities identified for the determined computing resource, wherein determining a suitable device removes from consideration one or more of the available computing resources based upon an anticipated availability of the one or more available computing resources based upon a current time and a historical entry and exit of the device to the personal network and categorizing that device as an unavailable computing resource; determining an order in which to complete the task; and storing the determined resource and order as task information in a schedule that can be executed by the available computing resources.
-
Specification