Department of Mathematics
 Search | Help | Login | pdf version | printable version

Math @ Duke





.......................

.......................


Executing an application on a parallel computer

Patent Number: 8516494, issued on 2008/06/16    
Applied on 2013/08/20, 12/140,023
Inventor(s): Eric Barsness, Michael Brutman, David Darrington, Amanda Randles, John Santosuosso
Assignee: International Business Machines Corporation

Abstract: Methods, apparatus, and products are disclosed for executing an application on a parallel computer that include: executing, by a current compute node, a current task of the application, including producing results; determining, by the current compute node in dependence upon current network characteristics and application characteristics, whether to transfer the results to a next compute node for further processing by a next task on the next compute node or to execute the next task for further processing of the results on the current compute node; transferring, by the current compute node, the results to the next compute node for further processing by the next task on the next compute node if the determination specifies transferring the results to the next node; and executing, by the current compute node, the next task for further processing of the results if the determination specifies executing the next task on the current compute node.

Description: 1. A method of executing an application on a parallel computer, the parallel computer comprising a plurality of compute nodes connected together through a data communications network, the application carried out by a plurality of tasks, the method comprising: executing, by a current compute node, a current task of the application, including producing results; determining, by the current compute node in dependence upon current network characteristics and application characteristics, whether to transfer the results to a next compute node for further processing by a next task on the next compute node or to execute the next task for further processing of the results on the current compute node; transferring, by the current compute node, the results to the next compute node for further processing by the next task on the next compute node if the determination specifies transferring the results to the next compute node; and executing, by the current compute node, the next task for further processing of the results if the determination specifies executing the next task on the current compute node. 2. The method of claim 1 wherein the current network characteristics further comprise network utilization information. 3. The method of claim 1 wherein the current network characteristics further comprise computing environment characteristics for the compute nodes. 4. The method of claim 1 wherein the application characteristics further comprise task size for each task of the application. 5. The method of claim 1 wherein the application characteristics further comprise data size for the results produced by each task of the application. 6. The method of claim 1 wherein the application characteristics further comprise application execution optimizations. 7. A parallel computer capable of executing an application, the parallel computer comprising a plurality of compute nodes connected together through a data communications network, the application carried out by a plurality of tasks, the parallel computer comprising a plurality of computer processors and computer memory operatively coupled to the computer processors, the computer memory having disposed within it computer program instructions capable of: executing, by a current compute node, a current task of the application, including producing results; determining, by the current compute node in dependence upon current network characteristics and application characteristics, whether to transfer the results to a next compute node for further processing by a next task on the next compute node or to execute the next task for further processing of the results on the current compute node; transferring, by the current compute node, the results to the next compute node for further processing by the next task on the next compute node if the determination specifies transferring the results to the next compute node; and executing, by the current compute node, the next task for further processing of the results if the determination specifies executing the next task on the current compute node. 8. The parallel computer of claim 7 wherein the current network characteristics further comprise network utilization information. 9. The parallel computer of claim 7 wherein the current network characteristics further comprise computing environment characteristics for the compute nodes. 10. The parallel computer of claim 7 wherein the application characteristics further comprise task size for each task of the application. 11. The parallel computer of claim 7 wherein the application characteristics further comprise data size for the results produced by each task of the application. 12. The parallel computer of claim 7 wherein the application characteristics further comprise application execution optimizations. 13. A computer program product for executing an application on a parallel computer, the parallel computer comprising a plurality of compute nodes connected together through a data communications network, the application carried out by a plurality of tasks, the computer program product disposed upon a computer readable medium, wherein the computer readable medium is not a signal and the computer program product comprising computer program instructions capable of: executing, by a current compute node, a current task of the application, including producing results; determining, by the current compute node in dependence upon current network characteristics and application characteristics, whether to transfer the results to a next compute node for further processing by a next task on the next compute node or to execute the next task for further processing of the results on the current compute node; transferring, by the current compute node, the results to the next compute node for further processing by the next task on the next compute node if the determination specifies transferring the results to the next compute node; and executing, by the current compute node, the next task for further processing of the results if the determination specifies executing the next task on the current compute node. 14. The computer program product of claim 13 wherein the current network characteristics further comprise network utilization information. 15. The computer program product of claim 13 wherein the current network characteristics further comprise computing environment characteristics for the compute nodes. 16. The computer program product of claim 13 wherein the application characteristics further comprise task size for each task of the application. 17. The computer program product of claim 13 wherein the application characteristics further comprise data size for the results produced by each task of the application. 18. The computer program product of claim 13 wherein the application characteristics further comprise application execution optimizations.

 

dept@math.duke.edu
ph: 919.660.2800
fax: 919.660.2821

Mathematics Department
Duke University, Box 90320
Durham, NC 27708-0320