The goal of the Grid Application Development Software (GrADS) Project is to provide programming tools and an execution environment to ease program development for the Grid. This paper presents recent extensions to the GrADS software framework: a new approach to scheduling workflow computations, applied to a 3-D image reconstruction application; a simple stop/migrate/restart approach to rescheduling Grid applications, applied to a QR factorization benchmark; and a process-swapping approach to rescheduling, applied to an N-body simulation. Experiments validating these methods were carried out on both the GrADS MacroGrid (a small but functional Grid) and the MicroGrid (a controlled emulation of the Grid).
1Department of Computer Science and Engineering, University of California at San Diego, San Diego, CA 92093. E-mail: {berman, casanova, achien, hdail, lxin, aoo, osievert, huaxia}@ucsd.edu 2Computer Science Dept., Rice University, Houston, TX 77005. E-mail: {keith, anshuman, ken, chk, anirban, mgabi, mmzn, johnmc}@rice.edu 3Department Computer Science, University of Illinois, Urbana, IL 61801. E-mail: {weideng, cmendes, reed}@uiuc.edu 4Innovative Computing Lab, University of Tennessee, Knoxville, TN 37996. E-mail: {dongarra,yarkhan,shi}@utk.edu 5Department Computer Science, University of Houston, Houston, TX 77204. E-mail: {johnsson,bliu2,mpate}@uh.edu 6To whom correspondence should be addressed.
Parallel computing is now popular and mainstream, but performance and ease of use remain elusive to many end-users. There exists a need for performance improvements that can be easily retrofitted to existing parallel applications. In this paper we present MPI process swapping, a simple performance enhancing add-on to the MPI programming paradigm. MPI process swapping improves performance by dynamically choosing the best available resources throughout application execution, using MPI process over-allocation and real-time performance measurement. Swapping provides fully automated performance monitoring and process management, and a rich set of primitives to control execution behavior manually or through an external tool. Swapping, as defined in this implementation, can be added to iterative MPI applications and requires as few as three lines of source code change. We verify our design for a particle dynamics application on desktop resources within a production commercial environment.
Despite the enormous amount of research and development work in the area of parallel computing, it is a common observation that simultaneous performance and ease-of-use are elusive. We believe that ease-of-use is critical for many end users, and thus seek performance enhancing techniques that can be easily retrofitted to existing parallel applications. In a precious paper we have presented MPI (message passing interface) process swapping, a simple add-on to the MPI programming environment that can improve performance in shared computing environments. MPI process swapping requires as few as three lines of source code change to an existing application. In this paper we explore a question that we had left open in our previous work: based on which policies should processes be swapped for best performance? Our results show that, with adequate swapping policies, MPI process swapping can provide substantial performance benefits with very limited implementation effort.
Initial efforts within the GrADS project have demonstrated the complexity of writing applications for the Grid and managing their execution. To deal with this complexity, the GrADS project has adopted a strategy for program preparation and execution that revolves around the idea that a program must be configurable to run on the Grid. To be configurable in the sense intended by GrADS, a program must contain more than just code, it must also include a portable strategy for mapping the program onto distributed computing resources and a mechanism to evaluate how well that mapped program will run on a given set of resources. Our current goal in selecting resources is to minimize runtime, but our design allows for other factors, such as cost of resources, to be considered as well. Once a configurable object program, plus input data, is provided to the GrADS execution system, there must be a process that initiates the resource selection, launches the problem run, and sees it through to completion of execution. In the GrADS execution framework the Application Manager is the process that is responsible for these activities-either directly or through the invocation of other GrADS components or services. In this scenario, the individual GrADS components only need to know how to accomplish their task(s); the question of when and with what input or state becomes the Application Manager's responsibility. The goal of this document is to define the role of the Application Manager in initiating, monitoring, and finalizing execution of a GrADS application.
David Musser合作论文数Computer Science Department
Rensselaer Polytechnic Institute
1