文档挖掘在很多领域都有着重要用途。由于文档数量多、计算复杂度高,目前文档挖掘主要使用集群系统完成,消耗大量的电力。虽然异构多核在能耗上具有优势,但将传统的文档挖掘移植到异构多核平台上还缺乏能耗优化的方法和工具,目前多核的应用还主要集中在利用并行计算提高速度方面。本课题的主要目的是利用现有的异构多核体系结构(特别是GPU),将文档挖掘任务中存在的复杂计算从CPU转移到功耗更低的GPU上,从而在不影响运算速度的前提下达到降低功耗的目标。主要研究内容是在构建异构多核的速度和功耗模型以及文档挖掘的任务模型的基础上,研究自动的任务分解和资源配置的优化方法,设计并实现异构多核上编程模式与示范用例,还研究文档特征提取和降维的新方法。课题的研究成果不仅可以填补低功耗文档挖掘技术的空白,还对其它低功耗研究和多核技术发展有着借鉴意义。
text mining;low energy;heterogeneous multicore;parallel computing;
文档挖掘在很多领域都有着重要用途。现在的文档挖掘系统面临着海量数据处理和计算复杂度高的双重挑战,本课题结合异构多核的计算平台和新型的文档挖掘算法,在提高挖掘算法的运行速度的同时减少了计算的能耗。 课题首先从构建异构多核的速度和功耗模型出发,研究了异构多核环境中任务分解方法,在CPU多核和GPU多核上通过C++模版元编程实现了包括层次分解、流水线分解和MapReduce的分解模型,利用模版机制自动为不同多核架构实现源到源的代码变换。为提高任务在多核环境下的执行效率,我们分别提出了三种不同的方法。1)针对多处理器多核系统,我们设计了缓存感知的双层任务窃取调度CAB算法,最多可减少存储密集型应用55%的运行时间;2)针对异构多核系统;我们设计了基于历史任务分配和依据偏好的WATS算法,充分考虑不同核芯的计算能力并对任务进行调度,实验表明对计算密集型应用可以提高64%的性能;3)针对多路多核处理器上运行的并发任务,我们设计了CAC算法,同时考虑任务的内存消耗和计算开销,实验表明我们的方法能够显著提高程序性能。 其次,针对文档挖掘的任务,课题组提出了不精确光谱分析的降维方法,大规模地降低了LSI的计算复杂度,在分类问题上取得与LSI相同的精度的同时有效地减少计算时间和能耗。在文档挖掘的应用方面,提出了社会网络中寻找最有影响力节点问题的GAUP算法,通过两个阶段分别计算用户的偏好和基于偏好的top-k节点,实验表明GAUP方法优于传统HITS算法和协同过滤方法。此外,我们研究了从新闻搜索结果中寻找细粒度话题的算法,通过考虑多个相似度和凝聚聚类的方法,取得了优于Google News 40%的结果。最后,我们还研究了通过静态分析和动态执行相结合的方法,从Web应用的JavaScript代码中提取有用信息。 最后,针对数据向云端迁移的趋势,我们还开展了云数据管理方面的研究。设计并实现了云备份和同步工具RosyCloud、云备份和检索系统CloudDepot、以及云端查询的可验证索引。 经过三年多来的努力,本课题获得了两个国际会议的最佳论文奖,已经发表论文12篇,还与众多国内外同行交流了研究成果。