论文部分内容阅读
社交网络,通信网络、传感器网络等迅猛发展催生了大量快速变化的网络数据。由于图可以捕获网络数据中复杂的依存关系和交互作用,因此网络数据可以很自然地被表示为一个图。图数据通常是动态变化的,许多应用必须利用最新的图数据才能产生可以反映当前状态的结果。然而,传统的计算方式需要在整个数据集上重新运行,存在效率不高和资源浪费的问题。
增量计算是提高大规模动态图处理效率的有效手段。它的基本思想是利用上一个图的计算结果加速当前图计算的过程。此外,大多数图算法(例如PageRank)的计算过程利用迭代来更新顶点的状态,直到满足给定的收敛条件。然而传统的迭代图算法在下一轮的迭代计算依赖于上一轮迭代计算所产生的全部结果。事实上,并不是上一轮迭代计算产生的结果中的每个顶点都需要参与到下一轮的迭代,因为大多数图顶点的状态会在迭代中提前收敛,不需要在后续迭代中处理。这种迭代表现出的不一致的计算行为会导致许多冗余计算。
为了解决在动态图中存在的计算效率低和冗余计算的问题,本文提出了一个称为IncGraph的模型来支持动态图上的增量迭代计算。与传统的迭代方式不同,IncGraph通过将上一个图的结果与当前图已更改顶点相结合来获取最新的迭代结果。IncGraph的贡献包括:(1)提出了一种增量迭代计算模型,该模型主要包含三个步骤:第一步为预处理步骤,该步骤提出了图搜索算法来获取图更新后的已更改顶点;第二步为增量计算步骤,该步骤用于计算当前图的已更改顶点的结果;第三步为合并计算步骤,该步骤使用前一个图的结果和增量计算步骤的结果来计算得到最新的结果。(2)提出了一种增量更新方法,通过立即使用当前迭代的先前计算的顶点状态来更新未计算的顶点状态,以优化图算法中的迭代过程。(3)提出了一种传播控制方法,该方法通过过滤在迭代过程中处于非活动状态的顶点数据,使得后续迭代过程中要处理的数据规模将逐渐缩小,从而实现迭代图算法的快速收敛。
最后,本文基于SparkGraphX实现了IncGraph模型,并使用了三个具有代表性的迭代图算法来评估其性能。实验结果表明,与传统迭代方法相比,当在不同大小的数据集中添加100k顶点时,IncGraph的性能优化比平均为41.21%,最大为53.76%。当在不同数据集中添加顶点的百分比在0.01%到10%之间变化时,IncGraph的性能优化比在22.87%到70.1%之间。而且,IncGraph的结果误差很小,基本可以忽略。
增量计算是提高大规模动态图处理效率的有效手段。它的基本思想是利用上一个图的计算结果加速当前图计算的过程。此外,大多数图算法(例如PageRank)的计算过程利用迭代来更新顶点的状态,直到满足给定的收敛条件。然而传统的迭代图算法在下一轮的迭代计算依赖于上一轮迭代计算所产生的全部结果。事实上,并不是上一轮迭代计算产生的结果中的每个顶点都需要参与到下一轮的迭代,因为大多数图顶点的状态会在迭代中提前收敛,不需要在后续迭代中处理。这种迭代表现出的不一致的计算行为会导致许多冗余计算。
为了解决在动态图中存在的计算效率低和冗余计算的问题,本文提出了一个称为IncGraph的模型来支持动态图上的增量迭代计算。与传统的迭代方式不同,IncGraph通过将上一个图的结果与当前图已更改顶点相结合来获取最新的迭代结果。IncGraph的贡献包括:(1)提出了一种增量迭代计算模型,该模型主要包含三个步骤:第一步为预处理步骤,该步骤提出了图搜索算法来获取图更新后的已更改顶点;第二步为增量计算步骤,该步骤用于计算当前图的已更改顶点的结果;第三步为合并计算步骤,该步骤使用前一个图的结果和增量计算步骤的结果来计算得到最新的结果。(2)提出了一种增量更新方法,通过立即使用当前迭代的先前计算的顶点状态来更新未计算的顶点状态,以优化图算法中的迭代过程。(3)提出了一种传播控制方法,该方法通过过滤在迭代过程中处于非活动状态的顶点数据,使得后续迭代过程中要处理的数据规模将逐渐缩小,从而实现迭代图算法的快速收敛。
最后,本文基于SparkGraphX实现了IncGraph模型,并使用了三个具有代表性的迭代图算法来评估其性能。实验结果表明,与传统迭代方法相比,当在不同大小的数据集中添加100k顶点时,IncGraph的性能优化比平均为41.21%,最大为53.76%。当在不同数据集中添加顶点的百分比在0.01%到10%之间变化时,IncGraph的性能优化比在22.87%到70.1%之间。而且,IncGraph的结果误差很小,基本可以忽略。