OpenMP程序通过做检查点来实现容错,现有检查点方法未考虑活跃变量的语义,通过原始值拷贝来保存活跃变量,存在检查点保存量过大的问题。对此提出数组活跃变量检查点优化算法。该算法基于程序分析,处理隐式定值和隐式引用,运用活跃变量分析法得出数组元素中的活跃变量,在适当的情况下采用由下标和数组首地址构成的表达式来表达数组元素,省略其原始值在检查点中的保存,从而减少检查点的数据保存量,达到降低检查点开销的目的。实验表明,该算法可以减少检查点的数据保存量,降低数组元素的数据保存量,达到降低检查点开销的目的,并且消除隐式定值和隐式引用带来的一些不良影响。
The OpenMP program uses the checkpoint to achieve fault tolerance. The existing checkpoint method does not consider the semanteme of active variables,the original value is copied to save the active variables,thus the checkpoint meets the problem of too big storage. In this paper the array active variable checkpoint optimization algorithm is proposed.The algorithm based on program analysis,deals with Implicit Value and Implicit Reference,uses the analytic method of the active variable to obtain active variables in array elements,and in appropriate circumstances uses the expression composed of the array subscript and the address of the first array element to express an array element,omitting the original value stored in the checkpoint,thereby reducing the checkpoint data storage capacity,to reduce the overhead of the checkpoint.Experiments show that,the algorithm can reduce checkpoint data quantity,can reduce the amount of data storage of array elements,to reduce the overhead of the checkpoint,and can eliminate certain adverse effects of implicit value and implicit reference.