Resilient message passing in applications executing separate threads in a plurality of virtual compute nodes
First Claim
Patent Images
1. A system comprising:
- a plurality of virtual compute nodes, each of the virtual compute nodes comprises at least two physical computing resources, each of the physical computing resources perform identical computing tasks for a virtual compute node;
an application manager that is configured to receive an application to execute, said application having a plurality of execution threads, each of said execution threads being operable on a different virtual computing node in the plurality of virtual compute nodes, said application further configured to use a message passing system to pass messages from one execution thread to another; and
an application execution environment that exposes said virtual compute nodes to the application, said application execution environment configured to;
receive, from the application manager;
a first execution thread of the parallel processing application; and
an identity of a first virtual compute node in the plurality of virtual compute nodes, the first virtual compute node comprises the at least two physical computing resources that are to execute the first execution thread;
receive a first message from a second virtual compute node executing a second execution thread of the application, the first message being addressed to the first virtual compute node;
provide the first message to the at least two physical computing resources of the first virtual compute node, each of the at least two physical computing resources executing the first execution thread for the application;
receive a second message from a first physical computing resource in the at least two physical computing resources, the second message based upon the first message, the second message having an address for a third virtual compute node; and
transfer the second message to the third virtual compute node.
2 Assignments
0 Petitions
Accused Products
Abstract
A message passing system may execute a parallel application on multiple compute nodes. Each compute node may perform a single workload on at least two physical computing resources. Messages may be passed from one compute node to another, and each physical computing resource assigned to a compute node may receive and process the messages. In some embodiments, the compute nodes may be virtualized so that a message passing system may only detect a single compute node and not the multiple underlying physical computing resources.
12 Citations
20 Claims
-
1. A system comprising:
-
a plurality of virtual compute nodes, each of the virtual compute nodes comprises at least two physical computing resources, each of the physical computing resources perform identical computing tasks for a virtual compute node; an application manager that is configured to receive an application to execute, said application having a plurality of execution threads, each of said execution threads being operable on a different virtual computing node in the plurality of virtual compute nodes, said application further configured to use a message passing system to pass messages from one execution thread to another; and an application execution environment that exposes said virtual compute nodes to the application, said application execution environment configured to; receive, from the application manager; a first execution thread of the parallel processing application; and an identity of a first virtual compute node in the plurality of virtual compute nodes, the first virtual compute node comprises the at least two physical computing resources that are to execute the first execution thread; receive a first message from a second virtual compute node executing a second execution thread of the application, the first message being addressed to the first virtual compute node; provide the first message to the at least two physical computing resources of the first virtual compute node, each of the at least two physical computing resources executing the first execution thread for the application; receive a second message from a first physical computing resource in the at least two physical computing resources, the second message based upon the first message, the second message having an address for a third virtual compute node; and transfer the second message to the third virtual compute node. - View Dependent Claims (2, 3, 4, 5, 10)
-
-
6. The system of claim,
said application manager further configured to: -
determine a number of virtual compute nodes to be assigned to said application; identify physical computing resources to execute an execution thread and configure a computing resource manager for said physical computing resources; and cause said execution threads to be started on each of said physical computing resources. - View Dependent Claims (7, 8, 9)
-
-
11. A method for operating a first virtual compute node in a message passing environment for executing a parallel processing application, said method comprising:
-
receiving, from an application manager; a first execution thread of the parallel processing application; and an identity of at least two physical computing resources to execute the first execution thread, the first virtual compute node comprises the at least two physical computing resources; receiving a first message from a second virtual compute node executing a second execution thread of the parallel processing application, the first message being addressed to said first virtual compute node; providing the first message to the at least two physical computing resources of the first virtual compute node, each of said at least two physical computing resources executing the first execution thread for said parallel processing application; receiving a second message from a first physical computing resource in the at least two physical computing resources, the second message based upon the first message, said second message having an address for a third virtual compute node; and transferring said second message to said third virtual compute node. - View Dependent Claims (12, 13, 14)
-
-
15. A system comprising:
-
multiple physical computing resources; an application manager that is configured to receive an application to execute, said application having a plurality of workflow portions, each of said workflow portions being executable on a different virtual compute node amongst a first set of virtual compute nodes, said application further configured to use a message passing system to pass messages from one workflow portion to another; an application execution environment that is configured to; expose the first set of virtual compute nodes to the application, each of said virtual compute nodes executing a workflow portion of said application; transmit communications from a first virtual compute node in the first set of virtual compute nodes to a second virtual compute node in the first set of virtual compute nodes; for each of said virtual compute nodes; provide at least two physical computing resources, each of said physical computing resources executing an identical workflow portion; and forward communications received by a virtual compute node to each of said physical computing resources associated with said virtual compute node. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification