A compiler assisted remote computation progress monitoring mechanism in grid environment
Technology scaling from generation to generation provides more and more powerful, but geographically distributed, computational resources. As computational needs grow, aggregating and sharing these computational resources has become increasingly important. With the increased popularity and scale of grid systems and the desire to share cycles among organizations, establishing trust across entities becomes a significant issue. Computational grids and cycle-sharing systems need facilities to monitor jobs executing on remote systems, for ensuring both correctness and progress. ^ This thesis describes a system to track the correctness and progress of programs executing on a remote, and potentially fraudulent, computational resource. A novel feature of our system is that it automatically constructs cooperating submitter and host programs from the original application program, and these cooperating programs allow both correctness and progress to be monitored with negligible overhead to protect against common fraudulent behaviors. ^ This thesis describes the compiler techniques and algorithms that allow the above cooperating programs to be automatically generated. We first introduce an approach to verifying a remotely executing job by randomly sampling parts of computation and recomputing them on a trusted machine. Next we present the design and implementations of an approach to tracking a remotely executing program with a finite state automata (FSA) model. We then present a probabilistic code generation mechanism to enhance the FSA based tracking to guard against potential replay attacks from a fraudulent host. Finally, we present the implementation and evaluation of prototype systems based on the above mechanisms.^
Samuel P. Midkiff, Purdue University, Y. Charlie Hu, Purdue University.