CPU-MIC异构并行架构下基于大规模频繁子图挖掘的药物发现算法

本文提出cmFSM算法,针对生物信息学中的药物发现,通过CPU-MIC异构并行架构加速大规模频繁子图挖掘。cmFSM在单节点、多节点及CPU-MIC协作上实现并行优化,有效解决内存约束和时间需求,性能优于现有算法。实验表明,即使使用少量并行资源,cmFSM也能显著提升挖掘效率。
摘要由CSDN通过智能技术生成

CPU-MIC异构并行架构下基于大规模频繁子图挖掘的药物发现算法


彭绍亮1,牛琦1,李肯立1,邹权2

湖南大学信息科学与工程学院,湖南 长沙 410082

电子科技大学基础与前沿研究院,四川 成都 610054

 

摘要频繁子图挖掘是许多实际应用领域中需要解决的重要问题,由于计算密集性、挖掘的图集及其结果容量大,现有的频繁子图挖掘方案无法满足时间需求,其处理效率是目前面临的主要挑战。原创性地提出了并行加速的频繁子图挖掘工具cmFSM。cmFSM主要在3个层次上进行并行优化:单节点上的细粒度OpenMP并行化、多节点多进程并行化和CPU-MIC协作并行化。在单节点上cmFSM的处理速度比基于CPU的最佳算法快一倍,在多节点方案中cmFSM提供可扩展性。结果表明,即使只使用一些并行计算资源,cmFSM也明显优于现有的最先进的算法。这充分表明提出的工具在生物信息学领域的有效性。

关键词  频繁子图挖掘 ; 生物信息学 ; 并行算法 ; 内存约束 ; 同构 ; 集成众核

640?wx_fmt=jpeg

论文引用格式:

彭绍亮, 牛琦, 李肯立, 邹权. CPU-MIC异构并行架构下基于大规模频繁子图挖掘的药物发现算法. 大数据[J], 2019, 5(2): 89-103

PENG S L, NIU Q, LI K L, ZOU Q. A scalable CPU-MIC coordinated drug-finding tool by frequent subgraph mining. Big Data Research[J], 2019, 5(2): 89-103

640?wx_fmt=jpeg

1 引言


在生物信息学研究中,为帮助在药理学化合物数据库或生物网络的核心功能结构中寻找新药,频繁子图挖掘的解决方案尤为重要。但现有的频繁子图挖掘方案无法有效解决内存消耗与时间需求问题。Lin W等人认为频繁子图挖掘问题可分为两个方面:一方面是在一个图的不同区域挖掘子图,适用于社交网络分析领域;另一方面是在大规模图集中挖掘子图,适用于计算药理学和生物信息学领域。两方面都面临共同的问题:大规模挖掘任务产生的大量挖掘结果超过了单台机器的存储器空间,且无法满足时间需求。并行技术是解决这类问题的有效方案。针对第一方面,专家已经提出基于串行CPU技术、并行计算框架(MapReduce、MPI、Spark)及图形处理器(graphics processing unit,GPU)的解决方案。本文意在解决生物信息学领域中频繁子图挖掘的问题。


2 相关工作

现有频繁子图挖掘方案以递归计数为基础,可以挖掘出所有频繁子图,且大部分频繁子图挖掘算法基于广度优先搜索(breadthfirst searc,BFS)改进生成,例如基于先验的挖掘算法(apriori-based algorithm for mining,AGM)和频繁子图挖掘(frequent subgraph discovery,FSG)算法工具。但是深度优先搜索(depth-first-search,DFS)内存需求更低、性能更优。Meinl T等人对一些典型的DFS算法(如MoFa、FFSM、gSan和Gaston)进行了定量比较和详细比较,发现遇到大规模挖掘任务时,它们很难满足时间需求。值得注意的是,它们都是单核串行版本。此外,Buehrer G等人提出了多核系统中的并行挖掘策略,并在多个内存处理器间划分挖掘任务。这些解决方案充分利用了单节点上的机器资源实现加速挖掘。然而,这些方案都是基于内存的,并假设内存空间适配于图集和挖掘规模。但是,随着数据量的增加以及支持度的降低,挖掘规模呈指数递增,内存空间不再适配。为解决这个问题,Wang C等人和Nguyen S N等人基于磁盘分别提出ADIMine算法和数据分区方法。但是这类方案又面临着访问数据的巨大开销问题。

Hill S等人基于MapReduce框架提出了IFSM算法。该算法首先计算图表集合中的所有频繁子图的支持度。其次,排除未达到设定支持度的频繁子图。与IFSM[10]类似,FSM-H和mrFSM也是通过迭代方法在MapReduce框架上开发的,且更加关注每次迭代中的负载平衡。然而MapReduce框架不适合迭代计算,可能会产生大量I/O和序列化开销,因此基于MapReduce的这些方案仍然会产生严重的性能问题。MapReduce框架上性能更为出色的是MRFSM。MRFSM不采用迭代方法,而是根据支持度智能化地过滤频繁子图,再将所有频繁子图分配给所有机器进行挖掘,并整合最终结果。因为没有迭代,所以它能提供比IFSM、FSMH和mrFSM更好的性能。但是MRFSM使用标准I/O和数据间的交互,其性能受到严格限制。此外对于大规模挖掘任务,每台机器上会产生严重的存储压力,MRFSM无法满足时间需求。

针对大规模挖掘问题,笔者提出了cmFSM算法。该算法分别在3个方面实现了并行化:单节点上的细粒度OpenMP(共享存储并行编程)并行化、多节点多进程并行化和CPU-MIC协作并行化。


3 算法介绍

cmFSM算法实现了多级别和多粒度的并行性,并以集成众核(many integrated core,MIC)为加速器,使用OpenMP实现多线程,目的是解决药物发现过程中大规模频繁子图挖掘的时间需求和内存限制等问题。信息传递接口(message passing interface, MPI)基于4种静态任务划分策略和一种基于监管的动态任务划分策略,实现最佳负载平衡。此外,在传输模式下使用MIC仅传输双边频繁子图,并备份复杂数据结构,以避免过度传输造成的瓶颈。通过充分利用MIC的多核计算能力,可以在CPU和MIC协作的情况下达到预期的执行速度。

3.1 单节点上的OpenMP并行化

3.1.1 并行化策略

基于DFS的频繁子图算法难以控制并行粒度,且无法控制递归过程,造成程序一直调用函数的后果,从而产生大量挖掘结果,这必然会导致不同挖掘任务间的负载不平衡。

为了解决这个问题,笔者采用基于OpenMP的细粒度并行策略。具体来说,挖掘频繁子图的过程将公共递归挖掘过程转化为BFS循环挖掘过程,从而实现单边增长粒度的并行性。此外,笔者创立了4个新缓冲区:原子区、t子区、l子区和c子区。原子区记录每个级别(从单边到多边的频繁级别)挖掘的子图集,并按照规定级别进行挖掘,其中同一级别的子图具有相同的边数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mic与gpu对比,GPGPU与MIC定位相似,两者都是相对于CPU具有较高性价比的高性能解决方案,甚至连外形都是一样使用PCI-E插槽的板卡。但对于“核”这个概念来说,两者却有很大的不同。GPGPU中所说的核,以CUDA为例,是指一个SP(即流处理器),SP的功能只有计算,以NVIDIA的Fermi GPU为例,32个SP组成一个SM(流处理器群),一个SM 才有两个控制单元。也就是说每16个GPU的“核”,必须执行同一条指令。而MIC得设计思路与GPGPU完全不同。MIC的每个“核”,可以简单看作一个X86核心,也就是与现有PC机或小型服务器上的CPU核心相同的核。因此MIC编程可以最大限度地沿袭已有CPU上的并行程序,甚至可以一定程度上认为MIC上的每个“核”都是独立的节点,亦即将MIC作为一个超小型的集群。MIC的“核”虽然是x86架构,虽然单核的功能比GPGPU的核强大不少,但要指望单兵作战接近主流CPU,暂时还是不现实的。MIC依靠和GPGPU一样,靠人海战术。说起“人数”,GPGPU动辄上百核,MIC只有几十核,几十单核性能再强,在并行应用中也掀不起多少浪花。由于MIC的核心是Intel的CPU,核心数即使上不去了,Intel处理器可以超线程。在MIC上,每个核心能同时并发执行4个线程,而且这4个线程被Intel成为“硬件线程”,其性能大幅提升,几乎可以把每个线程看作真正的核心。因此,MIC“执行核”的数量,核GPGPU实际差不多。 另外,MIC采用了SMP结构,以一致性共享缓存为中心,这种设计使得MIC可以使用传统CPU的编程模型,而不需要针对性的硬件,设计新的程序结构。 MIC对现有程序改动之小还体现在编程简易性和工具方面。编程简易性上,MIC常用的offload模式只需要加上少数几条编译指导语句,就可以使程序利用MIC进行运算,而此时的程序源代码,是可以与传统的CPU程序共用的,减少了维护成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值