CN102667710B - 从复杂网络中识别模块化结构的方法和工具 - Google Patents
从复杂网络中识别模块化结构的方法和工具 Download PDFInfo
- Publication number
- CN102667710B CN102667710B CN201080051364.2A CN201080051364A CN102667710B CN 102667710 B CN102667710 B CN 102667710B CN 201080051364 A CN201080051364 A CN 201080051364A CN 102667710 B CN102667710 B CN 102667710B
- Authority
- CN
- China
- Prior art keywords
- task
- data
- instrument
- processing device
- subtask
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种用于从复杂网络中鉴定模型结构的工具,其使用了一个具有一个CPU和一个并行处理设备的计算系统。该工具包括一个用于读取任务数据的数据读取工具;一个用于储存一套预设子模块的模块储存工具,这些子模块各自指示着一个特殊进程;一个用于确定任务模块的确定工具,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行;一个用于接收由确定工具转换而来的任务模块的第一界面;一个用于根据多重并行处理器将任务数据分为多重数据子集的发报机工具;一个用于接收由发报机转换而来的任务数据的第二界面;一个用于接收由第一界面转换而来的任务模块的第一前端;一个用于接收由第一前端传递过来的任务模块,产生能被多重并行处理器从任务模块中读取的子任务进程,以及分配这些子任务进程到多重并行处理器的程序汇编工具;一个用于接收来自于第二界面的多重数据子集,并将这些多重数据子集分别传递给多重并行处理器的第二前端;用于分别平行执行子任务进程,这些子任务进程是由程序汇编工具根据数据子集分配形成的,并获得平行结果的多重并行处理器;以及一个用于处理平行结果,从复杂网络中获得模型结构的分类工具。
Description
技术领域
本发明主要涉及模块化结构的识别,特别是一种从复杂网络中识别模块化结构的方法和工具,以及一个计算系统。
技术背景
复杂网络是指具有复杂拓扑特征的网络。复杂网络的研究因诸如生物技术网络(细胞网络,蛋白相互作用网络,神经网络),互联网/万维网,社交网络等真实网络的实证研究而被激发。这些真实网络最广泛的特征之一是存在模块化结构或群组,例如,如果用一个图来代表一种复杂网络,群组由顶点组织,同一群组中含有许多边以及相对较少的边连接不同群组的顶点。从复杂网络中识别模块化结构对理解图表描述的实际问题具有重要意义,例如,追踪在线病毒,社交网络服务中的社会行为分析,检测重要基因功能等等。
目前已经有一些方法可以利用串行计算设备,即中央处理器(CPUs)来从复杂网络中识别模块化结构。传统方法像分层聚类法,划分聚类法,谱聚类法等,分割方法中的Girvan-Newman算法以及模块化贪婪算法需要花费很长时间才能完成计算,这归因于复杂网络的巨大规模。例如,社交网络领域的Facebook在2010年2月宣布有4亿用户。因此,相应的图有上百万的边和顶点。现存真实复杂网络具有数据量大,计算的时间和空间复杂度高的特征.因此,利用串行计算设备从复杂网络中检测模块化结构的方法已经暴露出了执行时间长, 用户交互低和能源效率低的缺陷。另一方面,虽然超级计算机工作站或高性能计算集群能够在较短时间内完成计算,但是花费较高,对开发人员不友好,阻碍了通用研究和商业推广。
因此,需要寻找从复杂网络中鉴定模型结构的方法和工具,或者一个具有CPU和并行处理设备,比如图形处理器(GPU)或者分布于网络中的处理单元的计算系统,这个计算系统能够在较短时间内完成计算,同时节约成本。
发明摘要
本发明提供一套工具,一种方法和一个系统用于从复杂网络中识别模块化结构,它们能够在较短时间完成计算并节约成本。
本发明一个方面,是一套用于从复杂网络中识别模块化结构的工具。其使用了一个具有CPU和一个并行处理设备的计算系统。此工具包括一个位于CPU上的数据读取工具,用来读取任务数据,该任务数据包括复杂网络中的节点,具有节点间关系权重的边和复杂网络中执行任务的任务参数;一个位于CPU上的模块储存工具,用于储存预定义的子块集合,这些子模块各自指示着一个特殊进程;一个位于CPU上的确定工具,用于确定任务模块,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行;一个位于CPU上的第一界面,用于接收由确定工具转换而来的任务模块;一个位于CPU上的发报机工具,用于根据多重并行处理器将任务数据分为 多重数据子集;一个位于CPU上的第二界面,用于接收由发报机转换而来的任务数据;一个位于并行处理设备上的第一前端,连接着第一界面,用于接收由第一界面转换而来的任务模块;一个位于并行处理设备上的程序汇编工具,用于接收由第一前端传递过来的任务模块,产生能被多重并行处理器从任务模块中读取的子任务进程,以及分配这些子任务进程到多重并行处理器;一个位于并行处理设备上的第二前端,连接着第二界面,用于接收来自于第二界面的多重数据子集,并将这些多重数据子集分别传递给多重并行处理器;多重并行处理器,用于分别平行执行子任务进程,这些子任务进程是由程序汇编工具根据数据子集分配形成的,并获得平行结果;以及一个分类工具,用于处理平行结果,从复杂网络中获得模型结构。
本发明另一方面,从复杂网络中鉴定一种模型结构的方法,其使用了一个具有一个CPU和一个并行处理器的计算系统,此方法包括通过CPU上的数据阅读工具阅读任务数据,该任务数据包括复杂网络中的节点,具有指明节点间关系数值的边缘,以及复杂网络中执行任务的任务参数;通过CPU上的确定工具确定任务模块,从而根据任务数据分配子任务进程,这些子任务进程分别由并行处理设备中的多重并行处理器执行,它们来自于一套预设的指明了一个特殊进程的子模块,并将任务模块转换到CPU上的第一界面;通过第一界面将任务模块转换到并行处理设备上的第一前端;通过第一前端将任务模块传递给并行处理设备上的程序汇编工具;由程序汇编工具产生可由多重并行处理器从任务模块中读取的子任务进程,并将子任务进程分配给 多重并行处理器;由位于CPU上的发报机工具根据多重并行处理器将任务数据分成多重数据子集;由位于CPU上的第二界面将多重数据子集转换到并行处理设备上的第二前端;由第二前端分别将多重数据子集传递给多重并行处理器;通过多重并行处理器平行执行子任务进程,这些子任务进程是由程序汇编工具分别根据数据子集分配的,获得平行结果;以及通过分类工具处理平行结果,从复杂网络中获得模型结构。
本发明另一方面,从复杂网络中鉴定模型结构的系统,其包括一个CPU和一个并行处理设备。CPU包括一个用于阅读任务数据的数据阅读工具,这些任务数据包括复杂网络中的节点,具有指明节点间关系数值的边缘和复杂网络中任务执行的任务参数;一个用来储存一套预设子模块的模块储存工具,这些子模块各自分别指示着一个特定的进程;一个确定任务模块的确定工具,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行;一个用于接收由确定工具转换而来的任务模块的第一界面;一个用来根据多重并行处理器将任务数据分成多重数据子集的发报机工具;一个用来接收由发报机工具转换而来的任务数据的第二界面。并行处理设备包括一个连接第一界面的第一前端,用来接收由第一界面转换而来的任务模块;一个用来接收由第一前端传递过来的任务模块的程序汇编工具,从任务模块中产生可被多重并行处理器读取的子任务进程;一个连接第二界面的第二前端,用来接收来自第二界面的多重数据子集和 分别将多重数据子集传递给多重并行处理器;多重并行处理器用来平行执行任务,子任务进程根据数据子集分别被程序汇编工具分配来获得平行结果;一个分类工具,用来处理平行结果,从复杂网络中获得模型结构。
附图说明
结合阅读文中的附图,将能够更好的理解前面提到的发明内容,以及接下来的具体实施方式,这些附图以举例的行式给出,不能作为对权利要求的限制。
图1是一个说明一个发明实例的计算系统模块图。
图2是一个说明另一个发明实例的计算系统模块图。
图3说明复杂网络数据的一种结构实例。
图4显示的是储存预定义子图的一个模块储存工具实例。
图5是子图的BFS搜索流程图。
图6是计算结点中心度流程图。
图7是分类工具执行的流程图。
图8是另一个发明实例中用到的从复杂网络中识别模块化结构的方法流程图。
具体实施方式
这里将对附图说明中的具体实例进行参照说明。在下面的详尽描述中,阐述了许多具体细节以提供一个关于本发明的透彻理解。
图1是对应一个发明实例的计算系统1000的说明图。计算系统1000包含一个CPU200和GPU300,作为并行处理设备的举例。需要声明的是,尽管图1仅例出了一个CPU200和一个GPU300,计算系统1000中包含的CPUs和GPUs的数量不局限于一个,并且它们的数量可以根据需求调整。同样需要理解的是,尽管图1展示了GPU300作为并行处理设备,不同情况下并行处理设备的具体产品形式可以改变。例如,并行处理设备可能是分布在一个网络中的多个处理单元,这些设备能够执行并行处理,彼此间能够交换数据或信息,例如一个局域网(LAN)或者是一个万维网(WAN)。
GPU300实例可能使用nVidia开发的通用图形处理单元(GPGPU)平台的计算统一设备架构(CUDA)。然而,在本发明的启发下,其他的商用GPUs也可以使用。
参照图1,CPU200包含一个数据读取工具210,一个发报机工具220,一个模块储存工具230,一个确定工具240,一个第一接口250和一个第二接口255。GPU300包含多个并行处理器310-1,310-2…,310-N,其中N是一个整数。为了描述清晰,多个并行处理器310-1,310-2…,310-N将会在下文中统一被称作是并行处理器310。
GPU300进一步由一个第一前端320,一个第二前端325, 一个程序汇编工具330和一个分类工具340组成。然而,需要声明的是,尽管分类工具340显示为包含在GPU300中,它可以有不同的位置。例如,分类工具340可能放置在CPU200中,本发明也适用于这些实例。
特别地,数据读取工具210读取任务数据,这些数据包括复杂网络中的结点,具有指示结点间关系的数值的边,以及复杂网络中执行任务的任务参数。
由计算系统1000确定的模块化结构可能包含多个社区,其中每个社区内的结点之间的关系更加紧密。例如,在一个蛋白质-蛋白质相互作用网络中,蛋白质间的相互作用对于几乎所有的生物功能至关重要。例如,细胞外部信号是由信号分子的蛋白质-蛋白质相互作用介导进入细胞内部。这一过程被称为信号转导,它在许多生物进程和许多疾病,比如癌症中扮演着重要的角色。通常可以可视化网络图中的蛋白相互作用,表征这些网络图中嵌入的模块化结构具有重要意义。在这些情况下,任务数据中的结点可能分别是不同的蛋白。这些结点间的关系表示蛋白间的相互作用。任务参数描述用来决定蛋白质模块结构的任务,并且模块化结构中的每个团体包含着具有相互作用趋向的蛋白质。
另外一个实例,在社交网络中,结点可能代表社交网络中的不同成员,具有相应数值的边代表结点间的特定关系。例如,在一个公司的社交网络中,结点代表的是公司员工。关系,即具有相应数值 的边缘可能代表的是任意两个员工工作区域间的空间距离。这种情况下,距离较近的员工可被认为是在同一部门。因此,最终获得的模块化结构包含同一部门里的员工。
任务参数可被用于控制最终获得的模块化结构。例如,任务参数可能会指定一个最终的模块化结构要满足的条件,比如模块化结构的最大尺寸,模块化结构的最小数量。
模块储存工具230储存着一套预定义的子模块,每个子模块分别代表了一个特殊的处理进程。稍后会对预定义的子模块进行详细的描述。
确定工具240根据任务数据从储存在模块储存工具230的预定子模块中确定一个任务模块。然后确定工具240将任务数据传输给第一接口250。任务数据用来分配子任务进程,这些子任务进程将会在相应的多个并行处理器310中执行。任务模块的确定可被定制为特定的任务,下面会作举例说明。
发报机工具220根据并行处理设备(GPU)300上的多个并行处理器310将任务数据分为多重数据子集。发报机工具220可能通过检查GPU的构造来分配任务数据,然后设置数据子集的大小。
如图1所示,GPU300上的第一前端320连接着CPU200上的第一接口250。第一前端320接收来自于第一界面250传输的任务模块,然后将任务模块传递给程序汇编工具330。
程序汇编工具330接收来自第一前端320传输的任务模块, 产生可被多个并行处理器310读取的子任务进程。例如,程序汇编工具330为并行处理单元310以GPU可读机器代码的形式将任务模块转换成子任务进程。然后,调度330分别将子任务进程分配给多个并行处理器310。
位于GPU300上的第二前端325,连接着CPU200上的第二接口255,接收来自第二接口255的多重数据子集。然后第二前端325分别将多重数据子集传递给多个并行处理器310。
多个并行处理器310分别并行处理由发报机工具根据数据子集分配的子任务进程,并获得并行结果。分类工具340处理并行结果以获得复杂网络中的模块化结构。
需要声明的是,尽管图1分别展示了两个接口250和255,它们也可以联合在一起。也就是说,接口250和255可能包含在同一元件中。这也适用于第一前端320和第二前端325,它们可能包含于同一元件中。
另一方面,图1所示的元件是分布于CPU和并行处理设备上的。然而,这些元件可以整合为一个整体,比如本发明的一套工具。
因此本发明在低成本的并行处理设备,如GPU,的基础上提出一个并行计算系统,来识别复杂网络中的模块化结构,显著减少了计算的执行时间和成本,为商业和科研实体提供了一个复杂网络研究平台。
图2是本发明另一个实例中的计算系统1100的说明图。用 相似的编号来指示与图1中所示的相同或相似部分,这里为了简洁将会省去关于它们的详细描述。
除了那些图1所示的计算系统1000的组成元件外,图2的计算系统1100还包括一个可视化工具260,一个网络数据工具270和一个数据储存工具280。
特别地,图2的案例中,可视化工具260接收由分类工具340直接(如果分类工具340位于CPU200)或通过另一个中间元件(比如前端和接口)获得的模型结构,然后在监视器上展示模型结构。因此,为数据的解释提供了一个友好的方式。
网络数据工具270能够提取复杂网络数据,它们代表着结点和具有相应数值的边。例如,网络数据工具270能将一个特定网络,比如生物学或社交网络中的真实问题转换成复杂网络数据。图3阐明了复杂网络数据的结构实例。如图3所示,复杂网络数据的一个条目可能包含一个结点(结点1)索引和一个紧挨着结点1的结点(结点2)索引,以及代表着结点1和结点2之间的边的数值。图3仅仅显示了用于复杂网络数据的一个条目来做解释。然而,复杂网络数据的条目数量是没有限制的。例如,如果复杂网络中有M个结点,而且结点间的边没有方向性(即,从结点1到结点2的边与从结点2到经点1的边等价),那么复杂网络数据中条目的数目可能会是从1到C(M,2)。在边有方向性的情况下,比如从结点1到结点2的边与从结点2到结点1的边不同,因此它们具有不同的数值,复杂网络数据中 条目的数目将是从1到P(M,2)。
返回到图2,数据储存工具280储存复杂网络数据作为任务数据的一部分,这些任务数据将会被数据读取工具210读取。需要注意的是尽管图2所示的数据储存工具280位于CPU200,它也可能有不同的位置。例如,数据储存工具280可能是独立于CPU200和GPU300的一个非易失性或者易变的存储器,比如只读存储器(Read-Only Memory,ROM),随机存储器(Random Access Memory,RAM),硬盘,光盘,闪存等等。
令G(V,E,C)为一个复杂网络,其中顶点v∈V,边e∈E,相应的成本c∈C。在诸如生物学网络的真实复杂网络下,一个结点可能包含基因/蛋白质名,具有数值的边可能表示的是它们之间特定的相互作用,比如催化作用或结合。例如,任务数据可能由网络数据工具270产生或预先确定。网络数据工具270可能将蛋白相互作用网络描述为数字形式G(V,E,C)。
规定一个边缘e的介数作为所有节点对最短途径数。介数是边缘e在图表中的中间值。发生在与别的边缘间的许多最短途径的边缘具有较高的介数。
数据储存工具280储存任务数据用于复杂网络G(V,E,C),例如,以邻结矩阵的形式用于进一步处理。
图4所示为储存预定的一套子模块的模块储存工具230实例。在模块储存工具230中,阐述了分别代表着一个特殊处理进程的 处理子模块,比如图搜索子模块231,最短路径子模块233,以及中心性子模块235。然而,其他种类的处理子模块可以选择性或附加性地整合到模块储存工具230中。
如上所述,任务模块可以由确定工具240通过选择/结合储存在模块储存工具230中的一个或多个子模块的方式确定。例如,任务模块可能包括图表搜索子模块231和中间值子模块235的组合,或者是最短途径子模块233和中间值子模块235的组合。
图表搜索子模块231指示的是促使并行处理器310执行广度优先搜索(BFS)的流程。这种情况下,图表搜索子模块231的输入可能是一个预处理输入和源头节点,输出是来自于网络中源头节点S的广度优先树状图。例如,图5是一个适用于图表搜索子模块231的BFS程序500的流程图。
在S520处,数据输入图表搜索子模块231,比如多重数据子集之一。
在S530处,每个节点被描绘为CUDA流线型多处理器(并行处理器)上的一条线路。在S540处,基于拓扑特征,图表搜索子模块231指定一个源头节点s和一个最初的边界集F。令阵列F表示搜索的边界,阵列X表示访问节点。在每个反复过程中,每个边界节点探测其邻近节点,并将它们加到边界节点集F中。在S550处,图表搜索子模块231在下一个级别中找到F的连接节点,并将它们加到访问阵列X。在此期间,当完成搜索邻近节点时,当前节点将自己加到 访问节点集X。在S560处,边界节点集F被更新。例如,如果当前路径比已经存在的路径短,那么路径的长度将会被更新,并且会重复一次。
在S570处,确定了是否所有的节点被发现。如果仍然有节点将要被发现,途径500返回到S550,开启另一次反复。如果边界集F是空集,而且没有节点将会被发现,图表搜索子模块231途径会在S580处终止,在S580处产生一个广度优先树状图。这个广度优先树状图包含关于广度优先树状图介数的信息。
图表搜索子模块231可能进一步或选择性的指示DFS(深度优先搜索),这在计算领域是众所周知的,它可以类似于BFS被用于本发明。
当任务模块包括连续顺序的图表搜索子模块231和中间值子模块235组合时,中间值子模块235有一个路径促使并行处理器计算一个广度优先树状图用于所有的节点。图6是中间值子模块235指示的路径600的流程图。
在路径600的S610处,中间值子模块235可能会访问图表搜索子模块231来获得网络中节点的广度优先树状图。在S620处,确定是否所有的广度优先树状图其以所有节点作为源头都被找到的。如果发现仍然有广度优先树状图是用于一个特定的节点,路径400返回到S610来获得树状图用于特定的节点作为源头。
如果S620确定所有的广度优先树状图被找到,此路径进入 S630,这里会执行一个关于每个边缘介数的平行减少来获得节点间的相关系数。边缘相关系数的获得是使用公式w/b,这里w表示来自于复杂网络分量的边缘分量,b表示边缘介数。
路径500和600是并行处理进程,而且可分别由并行处理器310执行,从而获得平行结果,比如上述的相关系数。
在这种情况下,分类工具340使用来自于中间值子模块235的全面相关系数输入,获得网络的模型结构。图7是由分类工具340执行路径700的流程图。
在S710处,输入来自所有多重并行处理器310的相关系数作为平行结果。在S720处,分类工具340识别具有最大相关系数的边缘。
在S730处,具有最大相关系数的边缘被删除。在S740处,删除了此类边缘的网络被确定是否满足由任务参数指定的条件。例如,S740确定是否网络中剩下的所有团体的大小小于最大的团体大小。
如果在S740处条件不满足,路径700走向S705,中间值子模块235在这里被再次启动来获得相关系数,用于网络删除具有最大相关系数的边缘。
如果在S740处条件满足,路径700在S750处终止,这里会获得具有满足任务参数指定条件单元的模型结构。
另一方面,最短途径子模块233可能有路径用于寻找图表(网络)中每对节点间的最短路径。例如,APSP路径(所有节点对最短路径),SPSP(单个节点对最短路径),SSSP(单个源头最短路径),SDSP(单个终点最短路径)诸如此类的可被应用于最短路径子模块233。这些最短路径方法在计算领域都是众所周知的,所以这里省去其详尽描述。
当任务模块包括最短路径子模块233和中间值子模块235连续顺序的组合时,中间值子模块235有途径促使并行处理器建立分等级的聚类树状图。
在这种情况下,分类工具340利用任务参数作为系统参数削减分等级的聚类树状图,获得模型结构。
因此,获得了模型结构,并且其构成单元满足任务参数指定的条件。
在传统的分等级聚类算法中,典型步骤如下。分等级聚类步骤产生一系列数据分集,Pn,Pn-1,……,P1。第一个Pn含有n个单一簇,最后的P1含有一个单一含有n种情况的团体。在每个特殊时期,此方法将两个接近(最相似)的簇连接在一起。(在第一时期,意味着将两个相近的对象连接在一起,知道每个簇在最初的时期只有一个对象。)。由于定义簇间距离(或相似性)的方式不同,方法的差异性呈现出来。在这个实例中,我们用母体乘法为基础的所有节点对最短路径算法计算距离。
我们的工作通过用加入和最小操作取代乘法和额外的操作,改变了Volkov和Demmel提供的母体乘法路径。共享的储存器被用户用来管理缓存,从而提高性能。Volkov和Demmel引进母体R,C和Di中的部分来共享模块上的存储空间:R被引进64×4尺寸的模块,C被引进16×16尺寸大小的模块,Di被引进64×16尺寸大小的模块。这些数值被选用来最大化CUDA设备的通量。在执行期间,每一条线路计算Di的64×16值。算法1描述了改进的母体乘法要点。母体乘法要点的具体内容请参考:LU,QR and Cholesky Factorizations using Vector Capabilities of GPUs.Vasily Volkov and James Demmel.Technical Report No.UCB/EECS-2008-49.
本发明开发了一种以GPU为基础的平行计算系统来鉴定复杂网络中的模型结构,显著减少了计算的执行时间和成本,提供了一个复杂网络研究平台用于商业、科研等用途。
图8所示是从复杂网络中鉴定模型结构的方法2000的流程图,它使用的是本发明一个实例中的一个含有一个CPU和一个并行处理设备(例如GPU)的计算系统。方法2000可能由图1的计算系统1000的相应元件执行。
特别地,在S2100处,包括复杂网络的节点,具有指示节点间关系价值的边缘,以及任务数据被执行的任务参数的这些任务数据的读取是利用CPU200上的数据读取工具210。
在S2200处,CPU200上的确定工具240根据任务数据,从 一套预设的分别指示着一个特殊处理进程的子模块集中确定任务模块,并且将任务模块转换到CPU200上的第一界面250。任务模块用来分配子任务进程,这些子任务进程将分别由并行处理设备300上的多重并行处理器310-1,310-2,……,310-N执行,其中N是一个整数。
在S2220处,任务模块由第一界面250传输给并行处理设备300上的第一前端320。然后在S2240处,由第一前端将任务模块传递给并行处理设备300上的程序汇编工具330。
在S2260处,程序汇编工具330产生子任务进程,这些子任务进程可被多重并行处理器310从任务模块中读取,因此将这些子任务进程分配给多重并行处理器310。
另一方面,在S2300处,发报机工具220将任务数据根据多重并行处理器310分为多重数据子集。
在S2320处,第二界面255在CPU200上将多重数据子集转换到并行处理设备上的第二前端325。在S2340处,第二前端325将多重数据子集分别传递给多重并行处理器。
接收了任务处理进程和数据子集后,在S2400处,多重并行处理器310-1,310-2…,310-N平行操作,程序汇编工具根据数据子集分别分配子任务进程,获得平行结果。
在S2500处,分类工具340(位于CPU200或GPU300上)处理平行结果,获得复杂网络中的模型结构。
根据本发明,在复杂网络中鉴定模型结构的方法可能会结合上述图1-7中的一个或多个因素。
例如,此方法可能进一步包括提取复杂网络数据和将复杂网络数据以任务数据的一部分储存,其中的复杂网络数据代表着节点和具有数值的边缘。
同样,任务模块可能包括图表搜索子模块和中间值子模块的组合,或是最短路径子模块和中间值子模块的组合。图5-7所示的路径同样可应用于方法2000。
需要注意的是,图8所示的方法2000的步骤并不是必须要按图所示的顺序进行。例如,步骤S2200-S2260可能与步骤S2300-S2340同时进行,或是在步骤S2300-S2340之后进行。
正如能被计算领域的专业人才重视一样,一个具有相关计算机-可读媒体的计算机系统,其相关计算机-可读媒体含有用于控制计算机系统的说明,能够被用来执行这里列举的杰出实例。这个计算机系统可能至少包括一台计算机,比如一台微处理器,还包括数字信号处理器和相关的外围电子线路。
尽管语言描绘的主题特指的是结构特征和/或方法学领域,需要理解的是,附加的权利要求中定义的主题不是必须限定在上述特定的特征或是领域的。在一定程度上,上述的特定特征和领域以实例的形式用于说明权利的执行。
Claims (15)
1.一种从复杂网络中鉴定模型结构的方法,其使用一个具有一个CPU和一个并行处理设备的计算系统,该方法的特征是,
通过CPU上的一个数据读取工具读取任务数据,其中任务数据包括复杂网络中的节点,具有指示节点间关系数值的边缘,以及复杂网络中任务被执行的任务参数;
通过CPU上的一个确定工具确定任务模块,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行,并将任务模块转换到CPU上的第一界面;
通过第一界面将任务模块转换到并行处理设备上的第一前端;
通过第一前端将任务模块传递给并行处理设备上的程序汇编工具;
由程序汇编工具产生子任务进程,这些子任务进程能被多重并行处理器从任务模块中读取,并将这些子任务进程分配给多重并行处理器;
由CPU上的发报机工具根据多重并行处理器将任务数据分为多重数据子集;
由CPU上的第二界面将多重数据子集转换到并行处理设备上的第二前端;
由第二前端分别将多重数据子集传递给多重并行处理器;
由多重并行处理器分别平行执行子任务进程,其中这些子任务进程是由程序汇编工具根据数据子集分配的,来获得平行结果;
以及由分类工具处理平行结果来获得复杂网络中的模型结构;并且
其中,所述确定工具与所述发报机工具是并行的。
2.权利要求1所述的方法,其中的并行处理设备是一个图表处理器,其分布于局域网或万维网。
3.权利要求1所述的方法,其中的任务模块包括图表搜索子模块和中间值子模块的组合,或最短路径子模块和中间值子模块的组合。
4.权利要求1所述的方法,其中的节点代表不同的基因或蛋白,数值代表这些节点间的特定相互作用。
5.权利要求1所述的方法,其中的节点代表一个团体中的不同成员,数值代表这些节点间的特定关系。
6.权利要求1所述的方法,其进一步的特征是,
由CPU上的网络数据工具提取复杂网络数据,这些网络数据包括节点和有数值的边缘;
以及由CPU上的数据储存工具将复杂网络数据作为任务数据的一部分进行储存。
7.权利要求1所述的方法,其中的模型结构是由多重的团体组成,这些团体各自分别含有紧密相关的节点。
8.一套从复杂网络中鉴定模型结构的工具,其使用的是一个具有一个CPU和一个并行处理设备的计算系统,该工具的特征是,
位于CPU上的数据读取工具,用于读取任务数据,这些任务数据包括复杂网络中的节点,具有指示节点间相互关系数值的边缘,以及复杂网络中执行一个任务的任务参数;
位于CPU上的模块储存工具,用于储存一套预设的子模块,这些子模块各自指示着一个特殊的进程;
位于CPU上的确定工具,用于确定任务模块,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行;
位于CPU上的第一界面,用于接收由确定工具转换而来的任务模块;
位于CPU上的发报机工具,用于根据多重并行处理器将任务数据分为多重数据子集;
位于CPU上的第二界面,用于接收由发报机转换而来的任务数据;
位于并行处理设备上的第一前端,其连接着第一界面,用于接收由第一界面转换而来的任务模块;
位于并行处理设备上的程序汇编工具,用于接收由第一前端传递过来的任务模块,产生能被多重并行处理器从任务模块中读取的子任务进程,以及分配这些子任务进程到多重并行处理器;
位于并行处理设备上的第二前端,其连接着第二界面,用于接收来自于第二界面的多重数据子集,并将这些多重数据子集分别传递给多重并行处理器;
多重并行处理器,用于分别平行执行子任务进程,这些子任务进程是由程序汇编工具根据数据子集分配形成的,获得平行结果;
以及分类工具,用于处理平行结果,获得复杂网络中的模型结构;并且
其中,所述确定工具与所述发报机工具是并行的。
9.权利要求8所述的工具,其中的并行处理设备是一个图表处理器,其分布于局域网或万维网。
10.权利要求8所述的工具,其中的任务模块包括图表搜索子模块和中间值子模块的组合,或最短路径子模块和中间值子模块的组合。
11.权利要求8所述的工具,其中的节点代表不同的基因或蛋白,数值代表这些节点间的特定相互作用。
12.权利要求8所述的工具,其中的节点代表一个团体中的不同成员,数值代表这些节点间的特定关系。
13.权利要求8所述的工具,其进一步的特征是,
网络数据读取器,用于提取图表,这些图表代表了节点和有数值的边缘;
以及数据储存器,用于将图片作为任务数据进行储存。
14.权利要求8所述的工具,其中的模型结构是由多重的团体组成,这些团体各自分别含有紧密相关的节点。
15.一个用于从复杂网络中鉴定模型结构的系统,其包括一个CPU和一个并行处理设备,其中,
CPU包括:
数据读取工具,用于读取任务数据,这些任务数据包括复杂网络中的节点,具有指示节点间相互关系数值的边缘,以及复杂网络中执行一个任务的任务参数;
模块储存工具,用于储存一套预设的子模块,这些子模块各自指示着一个特殊的进程;
确定工具,用于确定任务模块,从而根据任务数据从一套分别指示着一个特定进程的预设子模块中分配子任务进程,这些子任务进程将会分别由并行处理设备上的多重并行处理器中执行;
第一界面,用于接收由确定工具转换而来的任务模块;
发报机工具,用于根据多重并行处理器将任务数据分为多重数据子集;以及
第二界面,用于接收由发报机转换而来的任务数据;
并且其中,所述确定工具与所述发报机工具是并行的;
并行处理设备包括:
位于并行处理设备上的第一前端,其连接着第一界面,用于接收由第一界面转换而来的任务模块;
位于并行处理设备上的程序汇编工具,用于接收由第一前端传递过来的任务模块,产生能被多重并行处理器从任务模块中读取的子任务进程,以及分配这些子任务进程到多重并行处理器;
位于并行处理设备上的第二前端,其连接着第二界面,用于接收来自于第二界面的多重数据子集,并将这些多重数据子集分别传递给多重并行处理器;
多重并行处理器,用于分别平行执行子任务进程,这些子任务进程是由程序汇编工具根据数据子集分配形成的,获得平行结果;以及
分类工具,用于处理平行结果,获得复杂网络中的模型结构。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2010/077949 WO2012051757A1 (en) | 2010-10-21 | 2010-10-21 | Method and tool suite device for identifying modular structure in complex network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102667710A CN102667710A (zh) | 2012-09-12 |
CN102667710B true CN102667710B (zh) | 2014-09-03 |
Family
ID=45974623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080051364.2A Active CN102667710B (zh) | 2010-10-21 | 2010-10-21 | 从复杂网络中识别模块化结构的方法和工具 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102667710B (zh) |
WO (1) | WO2012051757A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2994296B1 (fr) * | 2012-08-01 | 2015-06-19 | Netwave | Procede de traitement de donnees pour analyse situationnelle |
FR2994358B1 (fr) * | 2012-08-01 | 2015-06-19 | Netwave | Systeme de traitement de donnees de connexion a une plateforme d'un site internet |
US10255105B2 (en) * | 2017-04-11 | 2019-04-09 | Imagination Technologies Limited | Parallel computing architecture for use with a non-greedy scheduling algorithm |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272328A (zh) * | 2008-02-29 | 2008-09-24 | 吉林大学 | 基于智能代理系统的分散式社会网络聚类方法 |
CN101278257A (zh) * | 2005-05-10 | 2008-10-01 | 奈特希尔公司 | 用于分布式社区发现的方法和装置 |
CN101383748A (zh) * | 2008-10-24 | 2009-03-11 | 北京航空航天大学 | 一种复杂网络中的社区划分方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839808B2 (en) * | 2001-07-06 | 2005-01-04 | Juniper Networks, Inc. | Processing cluster having multiple compute engines and shared tier one caches |
US8117288B2 (en) * | 2004-10-12 | 2012-02-14 | International Business Machines Corporation | Optimizing layout of an application on a massively parallel supercomputer |
-
2010
- 2010-10-21 WO PCT/CN2010/077949 patent/WO2012051757A1/en active Application Filing
- 2010-10-21 CN CN201080051364.2A patent/CN102667710B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278257A (zh) * | 2005-05-10 | 2008-10-01 | 奈特希尔公司 | 用于分布式社区发现的方法和装置 |
CN101272328A (zh) * | 2008-02-29 | 2008-09-24 | 吉林大学 | 基于智能代理系统的分散式社会网络聚类方法 |
CN101383748A (zh) * | 2008-10-24 | 2009-03-11 | 北京航空航天大学 | 一种复杂网络中的社区划分方法 |
Non-Patent Citations (8)
Title |
---|
吴诚堃.网络入侵检测系统中基于多核平台的模式匹配技术研究.《计算机工程与科学》.2009,第31卷(第9期),第1-4,16页. |
基于CPU_GPU集群的分子动力学并行计算研究;苏丽丽;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20100731;第2010(年)卷(第7期);第I137-49页 * |
基于CUDA的蛋白质翻译后修饰鉴定MS-Alignmengt算法加速研究;翟艳堂;《计算机应用研究》;20100930;第27卷(第9期);第2409-2414页 * |
基于多核CPU的复杂网络簇结构并行识别算法研究;高亮亮;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20090831;第2009(年)卷(第2期);第I138-827页 * |
网络入侵检测系统中基于多核平台的模式匹配技术研究;吴诚堃;《计算机工程与科学》;20091231;第31卷(第9期);第1-4,16页 * |
翟艳堂.基于CUDA的蛋白质翻译后修饰鉴定MS-Alignmengt算法加速研究.《计算机应用研究》.2010,第27卷(第9期),第3409-3414页. |
苏丽丽.基于CPU_GPU集群的分子动力学并行计算研究.《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》.2010,第2010(年)卷(第7期),第I137-49页. |
高亮亮.基于多核CPU的复杂网络簇结构并行识别算法研究.《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》.2009,第2009(年)卷(第2期),第I138-827页. |
Also Published As
Publication number | Publication date |
---|---|
WO2012051757A1 (en) | 2012-04-26 |
CN102667710A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | SolidBin: improving metagenome binning with semi-supervised normalized cut | |
Chen et al. | Deep soft K-means clustering with self-training for single-cell RNA sequence data | |
Zhao et al. | Automated learning of generative models for subcellular location: building blocks for systems biology | |
TWI360754B (en) | Web page analysis using multiple graphs | |
Zhang et al. | Genetic programming with multi-tree representation for dynamic flexible job shop scheduling | |
Puckelwartz et al. | Supercomputing for the parallelization of whole genome analysis | |
KR101329350B1 (ko) | 그래프의 매개 중심성 갱신 방법 | |
CN105354202B (zh) | 数据推送方法及装置 | |
CN102667710B (zh) | 从复杂网络中识别模块化结构的方法和工具 | |
Messer et al. | MiniApps derived from production HPC applications using multiple programing models | |
US9536042B2 (en) | Using RNAi imaging data for gene interaction network construction | |
CN115699107A (zh) | 确定细胞的生物学特性之间的对应关系的方法 | |
Zheng et al. | Solving two-stage stochastic route-planning problem in milliseconds via end-to-end deep learning | |
CN113240400A (zh) | 一种基于知识图谱的候选人确定方法及装置 | |
CN112765230A (zh) | 基于互联网金融的支付大数据分析方法及大数据分析系统 | |
Zhang et al. | Collaboration of experts: Achieving 80% top-1 accuracy on imagenet with 100m flops | |
CN111639077A (zh) | 数据治理方法、装置、电子设备、存储介质 | |
CN112860850B (zh) | 人机交互方法、装置、设备及存储介质 | |
Murphy | Location proteomics: a systems approach to subcellular location | |
Lin et al. | The distributed system for inverted multi-index visual retrieval | |
Bossek et al. | Evolving instances for maximizing performance differences of state-of-the-art inexact TSP solvers | |
Yalaoui et al. | Heuristics for Optimization and Learning | |
Ruiz et al. | Stroma classification for neuroblastoma on graphics processors | |
D’Agostino et al. | A fine-grained CUDA implementation of the multi-objective evolutionary approach NSGA-II: potential impact for computational and systems biology applications | |
CN115345291A (zh) | 一种图处理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211027 Address after: 310000 room 802-7, No. 1382, Wenyi West Road, Cangqian street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Xuezhao Culture Technology Co.,Ltd. Address before: Room A301, biomedical park, No. 5, Kaifa Road, Haidian District, Beijing 100085 Patentee before: BEIJING PROSPEROUS BIOPHARM Co.,Ltd. |
|
TR01 | Transfer of patent right |