Performance modeling and prediction for scientific Java applications
Master of Science
This thesis develops an execution time model for predicting the performance of computation intensive scientific Java applications. Performance modeling can help in balancing the application workload of different problem sizes in a Grid environment. We propose a profiling based modeling method and introduce the concepts of point of predictability (PoP) and point of unpredictability (PoU) for performance prediction of Java programs. The point of predictability accounts for the volatile nature of the effects of JIT compilation on the execution time for small problems, while the point of unpredictability accounts for the effects of memory limitations and garbage collection on large problems. We present strategies to determine the point of predictability and point of unpredictability. Experimental results show that this model can accurately predict execution time for problem sizes between these two points which enables us to perform practical load balancing for scientific Java applications intended for execution on a Grid.