Supercomputers have developing fast in recent years,and predicting execution time of parallel programs becomes an important problem.Constructing skeleton for parallel programs is an approach to predict execution time of a program while its ex-ecution environment changes,but it can't solve the prediction problem with variable inputs,which restricts the application of program skeletons.This thesis proposed a method that is based on skeleton approach,and may predict execution time of parallel programs while both the input and the environment change.Works made in this thesis are as listed below:1.This thesis uses code instrument technique record the execution of branches and loops in a parallel program to collect its execution logic,and trains a model to predict the execution logic with the input of program using logistic regression and lasso regression.2.This thesis clusters multiple processes of a parallel program using the collected execution logic,uses tracing tool to generate a parallel program's communication traces,then merge and compress traces with the clustering result.After that,this paper restores the execution process of the program by combining the trace to-gether with the prediction result of execution logic to get a restoration program.The restoration program restores the execution process of the origin program,and has a shorter execution time,which allows us to predict execution time of the origin program at a relatively low time cost.3.This thesis deploys experiments on 3 parallel programs,which are MCB,LULESH and STREAM,and analyzes the experiment result to verify the effectiveness of the proposed method.The experiment results shows that the proposed method works well on some parallel programs. |