Executing a distributed java application on a plurality of compute nodes

Patent Number: 9086924, issued on 2015/07/21
Applied on 2008/04/24, 12/109,238
Inventor(s): Amanda Randles, Eric Barsness, David Darrington, John Santosuosso
Assignee: International Business Machines Corporation

Abstract: Methods, systems, and products are disclosed for executing a distributed JAVA application on a plurality of compute nodes. The JAVA application includes a plurality of jobs distributed among the plurality of compute nodes. The plurality of compute nodes are connected together for data communications through a data communication network. Each of the plurality of compute nodes has installed upon it a JAVA Virtual Machine (`JVM`) capable of supporting at least one job of the JAVA application. Executing a distributed JAVA application on a plurality of compute nodes includes: tracking, by an application manager, JVM environment variables for the JVMs installed on the plurality of compute nodes; and configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the JVM environment variables for the JVMs installed on the plurality of compute nodes.

Claims: 1. A method of executing a distributed application on a plurality of compute nodes, the application comprising a plurality of jobs distributed among the plurality of compute nodes, the plurality of compute nodes connected together for data communications through a data communication network, each of the plurality of compute nodes having installed upon it a Virtual Machine (`VM`) capable of supporting at least one job of the application, the method comprising: tracking, by an application manager, VM environment variables for the VMs installed on the plurality of compute nodes; and configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes. 2. The method of claim 1 wherein configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes further comprises performing for at least one job of the application: selecting, for that job, one of the compute nodes on which to execute that job in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes and at least one desired VM environment variable for that job; and configuring that job on the selected compute node for execution. 3. The method of claim 1 wherein the VM environment variables further comprise minimum and maximum heap sizes. 4. The method of claim 1 wherein the VM environment variables further comprise page size options. 5. The method of claim 1 wherein the VM environment variables further comprise debug trace status. 6. The method of claim 1 further comprising: identifying, by each VM supporting at least one job of the application on the plurality of compute nodes, the VM environment variables for that VM; and providing, by each VM supporting at least one job of the application on the plurality of compute nodes, the identified VM environment variables to the application manager. 7. The method of claim 1 wherein executing a distributed application on a plurality of compute nodes further comprises executing a distributed application on a parallel computer, the parallel computer comprising the plurality of compute nodes and a service compute node, the application manager installed upon the service compute node, the plurality of compute nodes connected for data communications through a plurality of data communications networks, at least one data communications network optimized for collective operations, and at least one other data communications network optimized for point to point operations. 8. A computing system capable of executing a distributed application on a plurality of compute nodes, the application comprising a plurality of jobs distributed among the plurality of compute nodes, the plurality of compute nodes connected together for data communications through a data communication network, each of the plurality of compute nodes having installed upon it a Virtual Machine (`VM`) capable of supporting at least one job of the application, the computing system comprising one or more computer processors and computer memory operatively coupled to the computer processors, the computer memory having disposed within it computer program instructions capable of: tracking, by an application manager, VM environment variables for the VMs installed on the plurality of compute nodes; and configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes. 9. The computing system of claim 8 wherein configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes further comprises performing for at least one job of the application: selecting, for that job, one of the compute nodes on which to execute that job in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes and at least one desired VM environment variable for that job; and configuring that job on the selected compute node for execution. 10. The computing system of claim 8 wherein the VM environment variables further comprise minimum and maximum heap sizes. 11. The computing system of claim 8 wherein the VM environment variables further comprise page size options. 12. The computing system of claim 8 wherein the computer memory has disposed within it computer program instructions capable of: identifying, by each VM supporting at least one job of the application on the plurality of compute nodes, the VM environment variables for that VM; and providing, by each VM supporting at least one job of the application on the plurality of compute nodes, the identified VM environment variables to the application manager. 13. A computer program product for executing a distributed application on a plurality of compute nodes, the application comprising a plurality of jobs distributed among the plurality of compute nodes, the plurality of compute nodes connected together for data communications through a data communication network, each of the plurality of compute nodes having installed upon it a Virtual Machine (`VM`) capable of supporting at least one job of the application, the computer program product disposed upon a computer readable recordable medium, the computer program product comprising computer program instructions capable of: tracking, by an application manager, VM environment variables for the VMs installed on the plurality of compute nodes; and configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes. 14. The computer program product of claim 13 wherein configuring, by the application manager, the plurality of jobs for execution on the plurality of compute nodes in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes further comprises performing for at least one job of the application: selecting, for that job, one of the compute nodes on which to execute that job in dependence upon the VM environment variables for the VMs installed on the plurality of compute nodes and at least one desired VM environment variable for that job; and configuring that job on the selected compute node for execution. 15. The computer program product of claim 13 wherein the VM environment variables further comprise minimum and maximum heap sizes. 16. The computer program product of claim 13 wherein the VM environment variables further comprise page size options. 17. The computer program product of claim 13 wherein the VM environment variables further comprise debug trace status. 18. The computer program product of claim 13 further comprising computer program instructions capable of: identifying, by each VM supporting at least one job of the application on the plurality of compute nodes, the VM environment variables for that VM; and providing, by each VM supporting at least one job of the application on the plurality of compute nodes, the identified VM environment variables to the application manager.