IP Library › Patent Application 16997880
Patent Application
App. No. 16/997,880

Operating System for Distributed Enterprise Artificial Intelligence Programs on Data Centers and the Clouds

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
16/997,880
Abstract

A system including a master machine and a plurality of worker machines is disclosed. the master machine includes, for example, an API server configured to receive a job description; a resource allocation module configured to determine a number of virtual machines required to perform a job based on the job description; a container scheduling module configured to create a container containing the number of virtual machines required to perform the job, wherein at least two of the virtual machines in the container resides on different worker machines, and wherein each of the virtual machines is configured to run a same application to perform the job.

Claims (35)

1 . A system comprising a master machine and a plurality of worker machines, the master machine comprising:

an API server configured to receive a job description;

a resource allocation module configured to determine a number of virtual machines required to perform a job based on the job description;

a container scheduling module configured to create a container containing the number of virtual machines required to perform the job,

wherein at least two of the virtual machines in the container resides on different worker machines, and

wherein each of the virtual machines is configured to run a same application to perform the job.

2 . The system of claim 1 , wherein the master machine further comprises a database module configured to store job descriptions.

3 . The system of claim 2 , wherein the master machine further comprises a data tracking module configured to track the location of one or more datasets stored in the database module.

4 . The system of claim 1 , wherein the master machine further comprises an event server configured to broadcast the job description to the container scheduling module and the resource allocation module.

5 . The system of claim 1 , wherein the job description corresponds to one of uploading an application program, uploading a dataset, and running an application program on the worker machines.

6 . The system of claim 1 , wherein the master machine further comprises a web server configured to receive a job description from a web interface.

7 . The system of claim 1 , wherein each of the worker machines comprises an MLEngine configured for running a machine learning program.

8 . The system of claim 1 , wherein the master machine further comprises an authentication module configured for authenticating users.

9 . The system of claim 1 , wherein at least one of the work machines hosts at least two virtual machines belonging to different containers.

10 . The system of claim 1 , further comprising an application cluster containing one or more applications that can run on the virtual machines on the worker machine.

11 . The system of claim 1 , wherein each of the worker machines comprises an MLEngine configured to carry out computation and training of machine learning models.

12 . The system of claim 1 , wherein the master machine further comprises a MLEngine Scheduler configured to verify the job description.

13 . A method of running an application comprising:

receiving a job description from a client;

storing the job description in a database;

determining a number of virtual machines needed to perform a job based on the job description;

creating a distributed container containing the number of virtual machines across a plurality of physical machines; and

enabling instances of an application on each of the virtual machines to perform the job.

14 . The method of claim 13 , wherein the job description is received at a master machine in communication with a plurality of worker machines, and the job description corresponds to one of uploading an application program, uploading a dataset, and running an application program on the worker machines.

15 . The method of claim 14 , wherein at least two of the virtual machines in the container resides on different worker machines.

16 . The method of claim 14 , each of the worker machines comprises an MLEngine configured for running a machine learning program.

17 . A non-transitory computer-readable medium comprising instructions which, when executed by a processor, initiate a process comprising:

receiving a job description from a client;

storing the job description in a database;

determining a number of virtual machines needed to perform a job based on the job description;

creating a distributed container containing the number of virtual machines across a plurality of physical machines; and

enabling instances of an application on each of the virtual machines to perform the job.

18 . The non-transitory computer-readable medium of claim 17 , wherein the job description is received at a master machine in communication with a plurality of worker machines, and the job description corresponds to one of uploading an application program, uploading a dataset, and running an application program on the worker machines.

19 . The non-transitory computer-readable medium of claim 18 , wherein at least two of the virtual machines in the container resides on different worker machines.

20 . The non-transitory computer-readable medium of claim 18 , wherein each of the worker machines comprises an MLEngine configured for running a machine learning program.