10 likes | 161 Views
Performance Modeling and Prediction for Scientific Java Applications Rui Zhang, Zoran Budimli ć , Ken Kennedy. Motivation. Point of Predictability. Time Complexity Model. Scientific computing on Grid is emerging Java is a good candidate – widely used, network oriented and platform neutral
E N D
Performance Modeling and Prediction for Scientific Java Applications Rui Zhang, Zoran Budimlić, Ken Kennedy Motivation Point of Predictability Time Complexity Model Scientific computing on Grid is emerging Java is a good candidate – widely used, network oriented and platform neutral Load balancing is crucial for grid computing An accurate performance model helps with making wise load balancing decisions Performance modeling of Java needs to face new characteristics brought by JVM - adaptive compilation and garbage collection Instrument Java source code to collect the loop taken and not taken counts for a set of problem sizes Use regression analysis to get the best fit function of each loop Build the time complexity model M = Performance Model Performance of Java applications on small problem size exhibits unpredictable behavior Experiments show that below a certain point, regression analysis is not able to give a practical model for load balancing of Java applications This problem size is highly correlated with the problem size that has finished almost all possible compilations We use the sum of compiled and inlined method count and percentage of time spent compiling to determine this point Choose calibration problem size set S based on PoP Collect execution time for each problem size in S Fit execution time onto to the time complexity model to get the performance model P The eligible working zone of P is [PoP, PoU] Modeling Process Overview Results Instrumentation and data collection (very small problem sizes) • Applications involved in experiments include JavaParsek, SmithWaterman, QRBench, SVDCBench, CholBench, LUBench • CPU utilization percentage (best = 100%, worst = 33%) achieved when allocating jobs onto three different platforms • about 75%, CPU clock rate based modeling • over 90%, our strategy Point of Unpredictability Conclusions and Future Work Calibration (small problem sizes) • Conclusion • By identifying PoP and PoU, we are able to use regression based performance modeling to give a practical performance model for load balancing of Java applications for Grid • Future work • Cache analysis in JVM environment • Adaptive tuning of the performance model • Some Java applications enter “heap thrashing” mode when problem size is too big, where the performance becomes unpredictable • We predict peak heap size and base heap size • Given a certain maximum heap size, we are able to estimate the point of unpredictability Actual execution