CN103383772A - 用于实施图形着色的系统、方法以及计算机程序产品 - Google Patents

用于实施图形着色的系统、方法以及计算机程序产品 Download PDF

Info

Publication number
CN103383772A
CN103383772A CN2013101588567A CN201310158856A CN103383772A CN 103383772 A CN103383772 A CN 103383772A CN 2013101588567 A CN2013101588567 A CN 2013101588567A CN 201310158856 A CN201310158856 A CN 201310158856A CN 103383772 A CN103383772 A CN 103383772A
Authority
CN
China
Prior art keywords
summit
assigning
summits
classifying
independent sets
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.)
Granted
Application number
CN2013101588567A
Other languages
English (en)
Other versions
CN103383772B (zh
Inventor
乔纳森·麦克尔·科亨
威廉·N·贝尔
麦克尔·J·加兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN103383772A publication Critical patent/CN103383772A/zh
Application granted granted Critical
Publication of CN103383772B publication Critical patent/CN103383772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于实施图形着色的系统、方法和计算机程序产品。在使用中,识别具有多个顶点的图形。另外,分类图形的多个顶点,其中多个顶点的分类是优化的。

Description

用于实施图形着色的系统、方法以及计算机程序产品
技术领域
本发明涉及计算图形上的独立集,并且更具体地涉及图形着色。
背景技术
通过计算独立集来实施图形着色是有价值的决策实践。例如,可由并行算法使用图形着色来查找数据中的并行性。然而,用于通过计算独立集来实施图形着色的当前技术已与各种限制相关联。
例如,用于通过计算独立集来实施图形着色的当前实现方案已示出多种低效率,其可随着使用这些方法论所分析的数据集大小的增加而被放大。此外,当在并行计算设备上实施当前实现方案时,其可能示出低效率。因此存在解决与现有技术相关联的这些和/或其他问题的需求。
发明内容
提供一种用于实施图形着色的系统、方法和计算机程序产品。在使用中,识别具有多个顶点的图形。另外,将图形的多个顶点分类,其中多个顶点的分类是优化的。分类一般称为“着色”。
附图说明
图1示出了根据一个实施例的、用于实施图形着色的方法。
图2示出了根据另一个实施例的、用于在图形着色期间使用散列计算随机值的方法。
图3示出了根据又一个实施例的、用于在图形着色期间计算本地最大值和最小值的方法。
图4示出了根据又一个实施例的、用于在分类期间不考虑多个顶点的一个或多个的方法。
图5示出了根据又一个实施例的、用于在分类期间压缩图形的方法。
图6示出了示例性的系统,在其中可实现各种先前实施例的各种架构和/或功能性。
具体实施方式
图1示出了根据一个实施例的、用于实施图形着色的方法100。如操作102中所示,识别具有多个顶点的图形。在一个实施例中,图形可包括多个顶点的表示,其中多个顶点的每个顶点由一个或多个链接(例如边等)连接到一个或多个其他顶点。在另一个实施例中,多个顶点(例如节点等)的每个可表示各异的对象(例如数据元素等),使得图形的多个顶点表示对象的集合。在又一个实施例中,图形的每个链接可表示由链接所直接连接的顶点之间的关联。例如,由链接所直接连接的两个顶点可共享从属(dependency)、争用(contention)等。
另外,如操作104中所示,将图形的多个顶点分类,其中多个顶点的分类是优化的。在一个实施例中,分类多个顶点可包括为图形中的每个顶点指派随机数。例如,可生成0和1之间的随机数并指派给多个顶点的每个。在另一个实施例中,分类多个顶点可包括修改为每个顶点所指派的随机数(例如经由数学运算等)。
进一步地,在一个实施例中,分类多个顶点可包括将每个顶点的所指派的数与顶点的每个邻居的所指派的数相比较。例如,单个顶点的邻居可包括由图形内的单个链接所直接连接到该单个顶点的所有其他顶点(例如不是通过另一个顶点连接到该单个顶点的顶点等)。
仍进一步地,在一个实施例中,分类多个顶点可包括确定单个顶点的所指派的数是否大于单个顶点的每个邻居的每个所指派的数。例如,单个顶点的所指派的数可与单个顶点的每个邻居的所指派的数相比较,并且可从那些所指派的数中确定最大的数(例如本地最大值)。在另一个实施例中,单个顶点的所指派的数是否大于该单个顶点的每个邻居的每个所指派的数的确定可针对图形的每个顶点加以实施。
此外,在一个实施例中,分类多个顶点可包括确定单个顶点的所指派的数是否小于该单个顶点的每个邻居的每个所指派的数。例如,单个顶点的所指派的数可与单个顶点的每个邻居的所指派的数相比较,并且可从那些所指派的数中确定最小的数(例如本地最小值)。在另一个实施例中,单个顶点的所指派的数是否小于该单个顶点的每个邻居的每个所指派的数的确定可针对图形的每个顶点加以实施。
在一个实施例中,可通过经由第二数对所指派的数进行加、减、乘或另外的运算来修改为每个顶点所指派的数,其中第二数取决于顶点的一些属性或由某种过程所选择。所指派的数是否大于简单顶点的每个邻居的每个所指派的数的确定可受第一及第二数的组合影响。在另一个实施例中,随机数可包括随机数R并可由另一个值S所补充以形成成对的值(R,S)以在当比较图形顶点时被共同考虑。在又一个实施例中,值S可从诸如顶点度的图形的属性或某一其函数导出。另外,成对的值(R,S)可合并成单个值作为优化(例如通过两个数相加、在单个整数内存储R和S的位等)。
并且,在一个实施例中,分类多个顶点可包括,如果确定单个顶点的所指派的数大于单个顶点的每个邻居的所指派的数那么添加单个顶点到独立集。在另一个实施例中,图形中的具有比其每个邻居的所指派的数大的所指派的数的所有顶点可添加到独立集。通过该方式,独立集内的所有顶点可以是彼此独立的。例如,独立集内没有顶点可在图形内直接连接。在另一个示例中,独立集内的所有顶点可不彼此共享任何从属或争用。
此外,在一个实施例中,分类多个顶点可包括标注(label)(例如着色等)独立集中的所有顶点。例如,独立集中的每个顶点可标注为独立顶点。在另一个示例中,可从值的有限集合指派相同的值(例如来自颜色的有限集合的单个颜色等)给独立集中的所有顶点。
进一步地,在一个实施例中,分类多个顶点可包括从图形中移除独立集中的顶点并随后分类图形中的剩余顶点。例如,可通过多次迭代来实施分类多个顶点,其中在每次迭代期间,所有的独立顶点可被识别、置于独立集中、被标注以及从由随后的迭代所分类的图形中移除。在另一个实施例中,每次迭代可与其自己的独立集相关联,并且可采用与标注其他独立集的不同值(例如颜色等)来标注每个独立集,使得每次迭代的独立集包含来自该迭代的所有独立顶点。在又一个实施例中,在分类期间可仅分类多个顶点中的一部分。例如,可通过多次迭代来实施分类多个顶点,其中当分类了预定量的顶点、实施了预定次数的迭代等时分类可停止。
还进一步地,在一个实施例中,优化分类可包括在分类期间利用散列函数为图形中的每个顶点指派伪随机数。例如,可利用散列函数散列图形中的每个顶点的索引以获得所指派到该顶点的随机数。这样,可在分类期间避免一个或多个查找。例如,可通过在分类期间散列每个顶点的索引、而不是在数据结构中(例如阵列、表等)查找与随机数所指派到的顶点相关联的随机数,来获得图形中的每个顶点的随机数。
并且,在一个实施例中,优化分类可包括将每个顶点的所指派的数与顶点的每个邻居的所指派的数相比较,并确定单个顶点的所指派的数是否大于单个顶点的每个邻居的每个所指派的数,并同时确定单个顶点的所指派的数是否小于单个顶点的每个邻居的每个所指派的数。
例如,单个顶点的所指派的数可以与单个顶点的每个邻居的所指派的数相比较,并且可从那些所指派的数中确定最大的数(例如本地最大值)和最小数(例如本地最小值)。在另一个实施例中,单个顶点的所指派的数是否大于单个顶点的每个邻居的每个所指派的数的确定可针对图形的每个顶点加以实施。
在另一个实施例中,图形中的所有具有比其每个邻居的所指派的数大的所指派的数的顶点可添加到第一独立集,并且图形中的所有具有比其每个邻居的所指派的数小的所指派的数的顶点可添加到与第一独立集分开的第二独立集。这样,在多个顶点的分类期间所实施的迭代的次数可减少(例如二分之一),因为在每次迭代期间可添加两倍的顶点到独立集。
另外,在一个实施例中,优化分类可包括当多个顶点的一个或多个已添加到独立集时,在分类期间不考虑这种一个或多个顶点。例如,多个顶点可存储在数据结构(例如稀疏矩阵数据结构等)中,并且当一个或多个顶点已添加到独立集时,可在数据结构内标记(mark)这种顶点并可在将来的分类迭代中将其忽略。
进一步地,在一个实施例中,优化分类可包括在分类期间改变图形的大小。例如,优化分类可包括在分类的一次或多次迭代之后减小图形的大小。在另一个实施例中,当在优化期间一个或多个顶点已添加到独立集时,可从图形中移除这种顶点和其对应的边,这可导致比较早的图形具有较少的顶点和边的新图形。另外,该新图形可用于将来的分类迭代。在另一个实施例中,可正交地实施优化分类(例如,使得可彼此独立地应用多个优化等)。
现在将关于各种可选架构和特征来阐述更具示例性的信息,按用户的期望,前述框架可以采用或可以不采用该架构和特征加以实现。应特别注意的是,阐述下面的信息是出于示例性的目的而不应考虑为以任意方式加以限制。任意下面的特征可以可选地与或不与所描述的其他特征以外的特征合并。
图2示出了根据另一个实施例的、用于使用散列在图形着色期间计算随机值的方法200。作为选项,可在图1的功能性的情况下实行方法200。然而当然,可在任意所期望的环境中实现方法200。还应注意的是前述定义可在本描述期间应用。
如操作202中所示,识别具有多个顶点的图。另外,如操作204中所示,为图形中的每个顶点指派随机数,其中通过在每个顶点的索引上实施散列来计算每个随机数。例如,数据结构可包括图形内的每个顶点的索引,并且可散列这些索引以便确定用于每个顶点的随机数。在另一个实施例中,可为每个顶点计算散列和确定性的测量。在又一个实施例中,可通过在每个顶点的索引上实施散列并将随机数添加到每个顶点的度(例如每个顶点的直接邻居的数目)来计算随机数,使得具有较高度的顶点可被指派到独立集并比具有较低度的顶点先着色。
这样,可为每个顶点计算随机数而不用必须从存储器读随机数。例如,在每个顶点的索引上实施散列可避免必须查找指派到每个顶点的、存储在随机存储器中的阵列中的随机数,其中这种存储器访问可能比散列的实施更慢。另外,在每个顶点的索引上实施散列可避免对全局同步的需求。例如,在每个顶点的索引上实施散列可避免必须利用线程来选择随机数、为顶点指派随机数、等待所有线程结束选择并为所有顶点指派随机数、以及实施全局同步,其中所有线程采用所选择的随机数填充表并在继续图形着色之前进行同步。
进一步地,如操作206中所示,为每个顶点所指派的随机数与顶点的每个邻居的所指派的数相比较。还进一步地,如操作208中所示,如果确定为顶点所指派的随机数大于为顶点的每个邻居所指派的随机数,那么为独立集指派图形的一个或多个顶点。
还进一步地,在一个实施例中,通过实施散列来为每个顶点指派随机数、比较随机数、以及为独立集指派一个或多个顶点可实施为独立集确定过程和图形着色过程的一个或多个中的一部分。例如,图形着色过程可用来确定图形的多个顶点中的独立集。表1示出了示例性的独立集确定方法。当然,应注意的是阐述表1中所示的方法仅出于示例性目的,并因此不应考虑为以任意方式加以限制。
表1
PMIS方法
1.对于每个顶点j(并行地)
Phi[j]=随机值
2.对于每个未被标记的顶点j(并行地)
如果对于所有边(j,k)有Phi[j]大于Phi[k](并行归约(reduction))
标记为集合的部分
将所有邻居顶点标记为不是集合的部分(在最后迭代可跳过)
3.对未被标记的顶点的数目进行计数(并行归约)
如果(计数>0)则转到2
并且,在一个实施例中,表1中的方法的单次迭代的性能可导致可能不是最大的独立集的产生。例如,对于非最大变量,可跳过“将所有邻居顶点标记为不是集合的部分”,可能步骤3。在另一个实施例中,还可修改算法以例如通过将Phi[j]设置为等于顶点j的度加范围[0,1)中的随机数来优先化高度的顶点。
在另一个示例中,图形着色方法可用来对从图形中所计算的顶点的独立集进行着色。表2示出了示例性的图形着色方法。当然,应注意的是阐述表2中所示的方法仅出于示例性目的,并因此不应考虑为以任意方式加以限制.
表2
图形着色方法
当未着色的顶点存在时
计算S=PMIS(或非最大独立集)
将S的所有条目标记为颜色=c
从图形中移除S的所有条目
c++
另外,例如见M.Luby的“A simple parallel algorithm for the maximalindependent set problem,”SIAM Journal on Computing4(1986)1036、M.T.Jones和P.E.Plassmann的“A Parallel Graph Coloring Heuristic,”SIAMJournal of Scientific Computing14(1993)654以及J.R.Allwright、R.Bordawekar、P.D.Coddington、K.Dincer和C.L.Martin的“A comparison ofparallel graph coloring algorithms.”Technical Report Tech.Rep.SCCS-666,Syracuse University,1995,在此对其全文通过援引的方式加以合并,并且其描述示例性的独立集确定方法和图形着色方法。
进一步地,在一个实施例中,关于表1,通过在每个顶点的索引上实施散列来为图形的每个顶点计算随机数可包括,经由散列函数根据存储在稀疏矩阵数据结构中的列索引数据来直接在片上计算Phi[k]。这可实施来代替从辅助阵列中读取Phi[k],其可要求自存储器的收集(gather)。在另一个实施例中,通过在每个顶点的索引上实施散列来为图形的每个顶点计算随机数还可允许方法完全跳过表1的循环1。
这样,独立集确定方法的整个迭代可成为单个广义稀疏矩阵向量乘(SpMV)操作,对其可存在有效的并行实现方案,跟随有表1的循环3中的并行归约。在另一个实施例中,如果仅期望独立集,那么可跳过表1的循环3,整个方法可构建为单个广义稀疏矩阵向量乘。这样,可以不需要非必要的全局通信和全局同步。
图3示出了根据另一个实施例的、用于在图形着色期间计算本地最大值和最小值的方法300。作为选项,可在图1和2的功能性的情况下实行方法300。然而当然,可在任意所期望的环境中实现方法300。还应注意的是前述定义可在本描述期间应用。
如操作302中所示,识别具有多个顶点的图形。另外,如操作304中所示,为图形中的每个顶点指派随机数。进一步地,如操作306中所示,最小和最大顶点均从图形的多个顶点中被同时计算。在一个实施例中,可通过确定为每个顶点所指派的随机数是否大于为每个顶点的所有邻居所指派的每个随机数来计算最大顶点。
另外,可通过确定为每个顶点所指派的随机数是否小于为每个顶点的所有邻居所指派的每个随机数来计算最小顶点。在另一个实施例中,可与确定图形的最小顶点同时实施确定图形的最大顶点。在又一个实施例中,如果顶点被确定为既是最小又是最大顶点,那么顶点可被自动确定为最小或最大顶点(例如,通过任意选择、通过预定的默认确定等)。
仍进一步地,如操作308中所示,图形的经确定为最大顶点的所有顶点可存储在第一独立集中,并且图形的经确定为最小值顶点的所有顶点可存储在与第一独立集分开的第二独立集中。在一个实施例中,为图形中的每个顶点指派随机数、从图形中同时计算最小和最大顶点、以及为分开的独立集指派最大和最小顶点可实施为独立集确定方法和图形着色方法的一个或多个中的一部分。
例如,表3示出了计算最小和最大顶点二者的经修改的独立集确定方法。当然,应注意的是阐述表3中所示的方法仅出于示例性目的,并因此不应考虑为以任意方式加以限制。
表3
经修改的PMIS方法
1.对于每个顶点j(并行地)
Phi[j]=随机值
2.对于每个顶点j(并行地)
如果j未被标记
如果对于所有边(j,k)有Phi[j]大于/小于Phi[k](并行归约)
标记为最大/最小集合的部分
将所有邻居顶点标记为不是最大/最小集合的部分
否则如果j被标记为不是最小集合的部分,但关于最大集合未被标记
如果对于所有边(j,k)有Phi[j]大于Phi[k](并行归约)
标记为最大集合的部分
将所有邻居顶点标记为不是最大集合的部分
否则如果j被标记为不是最大集合的部分,但关于最小集合未被标记
如果对于所有边(j,k)有Phi[j]小于Phi[k](并行归约)
标记为最小集合的部分
将所有邻居顶点标记为不是最小集合的部分
3.对未被标记的顶点的数目进行计数(并行归约)
如果(计数>0)则转到2
另外,在一个实施例中,表3中的方法可组织为具有经预测的询问(例如“j是最小/最大,”等)的单个归约,可减少GPU或其他向量架构上的执行发散。在另一个实施例中,总的每迭代成本与表1中所示的方法比几乎不改变,但通过使用图3中所示的方法实施图形着色所必需的迭代次数可减少一半。
这样,可同时从图形中确定本地最大顶点和本地最小顶点二者。在一个实施例中,本地最大顶点和本地最小顶点均可保证是独立集,并且不相交(既是本地最大值又是本地最小值的任意顶点将分离并可任意地视为两个集合中的任一个中的一部分)。在另一个实施例中,如果开发了要求独立集(不是最大独立集)的简捷图形着色方法,那么表2中所示的方法的每次迭代可仅要求表1中所示的方法中的步骤1和2,其中可修改表1中的步骤2以同时计算2个集合。因此,该新方法可要求半数的迭代,具有较小的每迭代成本。在又一个实施例中,全局同步数可减少(例如二分之一)。
进一步地,在一个实施例中,在与表2中所示的可能要求最大独立集的方法所不同的方法的情况下,表3所示的上文的方法可需要保持2个标志而非只是1个来标记节点是否是最大集合的成员或毗邻(例如第一标志),或其是否是最小集合的成员或毗邻(例如第二标志)。在另一个实施例中,可使用与表2中所示的不同的方法,其中这种方法基于从先前所指派的颜色中所收集的信息来以不同的方式选择颜色。
图4示出了根据另一个实施例的、用于分类期间不考虑多个顶点的一个或多个的方法400。作为选项,可在图1-3的功能性的情况下实行方法400。然而当然,可在任意所期望的环境中实现方法400。还应注意的是前述定义可在本描述期间应用。
如操作402中所示,识别具有多个顶点的图形。另外,如操作404中所示,在分类过程的第一迭代期间多个顶点中的一个或多个添加到一个或多个独立集。进一步地,如操作406中所示,多个顶点中的在分类过程的第一迭代期间添加到一个或多个独立集的一个或多个归类为独立集顶点。在一个实施例中,将多个顶点中的一个或多个归类为独立集顶点可包括标记顶点(例如给顶点打标签等)。
仍进一步地,如操作408中所示,在分类过程的第二迭代期间多个顶点中的一个或多个添加到一个或多个独立集,其中在分类过程的第二迭代期间不考虑多个顶点中的在分类过程的第一迭代期间归类为独立集顶点的一个或多个。在一个实施例中,分类过程的第一及第二迭代可实施为独立集确定方法和图形着色方法中的一个或多个的一部分。
并且,在一个实施例中,方法400可满足表1中的方法的步骤2可能需要仅考虑未被标记的节点以加速方法的连续迭代的观察。例如,开始于N个未被标记的图形节点的集合,表1中的方法的第K次迭代结束时的未被标记的节点的数目对于某常数C>1可近似于N*(1/C)^K。
另外,在一个实施例中,根据与分类相关联的底层数据结构,该优化可包括一个或多个各异的实现方案。例如,对于每行列索引易于确定的稀疏矩阵格式(例如CSR、ELL等),可查找节点的当前状态并且如果节点被标记那么可实施提前退出(例如,表1中的方法的步骤2的提前退出等)。
在另一个实施例中,对于每行列索引不易于确定的矩阵格式,可预计算辅助数据结构(例如用于COO格式的CSR行指针),或可直接对单独矩阵条目应用优化。这可导致更良好的存储器访问模式并可避免大量的工作。
图5示出了根据另一个实施例的、用于在分类期间压缩图形的方法500。作为选项,可在图1-4的功能性的情况下实行方法500。然而当然,可在任意所期望的环境中实现方法500。还应注意的是前述定义可在本描述期间应用。
如操作502中所示,识别具有多个顶点的图形。另外,如操作504中所示,在分类过程的一次或多次迭代期间多个顶点中的一个或多个添加到一个或多个独立集。进一步地,如操作506中所示,多个顶点中的在分类过程的第一迭代期间添加到一个或多个独立集的一个或多个归类为独立集顶点。
仍进一步地,如操作508中所示,从图形中移除经归类为独立集顶点的所有顶点及其相对应的边。并且,如操作510中所示,基于剩余顶点和边创建新图形。另外,如操作512中所示,在分类过程的一次或多次附加的迭代期间,新图形的多个顶点中的一个或多个添加到一个或多个附加的独立集。这样,新图形可仅包含仍活动的顶点(例如不在独立集中等)。
并且,在一个实施例中,从图形中移除顶点和边以及新图形的创建可实施为独立集确定方法和图形着色方法的一个或多个中的一部分。例如,在固定的图形数据结构上表1中所示的方法可加速。一旦未被标记的节点的总数(population)低于阈值则可通过显式(explicitly)压缩图形数据结构来进一步提高性能。
例如,可确定在目前的数据结构上实施进一步迭代的成本高于产生仅包括未被标记的节点的新数据结构的成本加上在较小的结构上迭代的(经减少)的成本,并且结果方法500可响应于这种确定来选择压缩矩阵表示。在一个实施例中,新矩阵结构的格式可与第一矩阵结构相同或与第一矩阵结构不同。在另一个实施例中,可经由并行前缀和来实施上述方法论。
在又一个实施例中,一旦未着色的节点数达到预定量,则可切换到串行算法。例如,在第一图形上可实施并行方法用于某数目的分类迭代,并且当确定了未经分类的顶点的特定阈值数时,可创建新图形,并且在串行处理器上运行的串行方法可在新图形内的剩余顶点上实施附加的分类迭代。
另外,在一个实施例中,在分类期间可允许预定量的错误。例如,分类可在预定事件(例如预定数目的迭代、预定数目的被标记的顶点等)之后完成。在另一个示例中,在预定事件之后,所有未被标记的顶点可指派到特定集合、指派特定颜色等。产生的分类可以不满足图形着色或独立集的标准,而可以是“近似独立”或“近似的着色”。
图6示出了示例性的系统600,在其中可实现各种先前实施例的各种架构和/或功能性。如所示,提供系统600,其包括至少一个主处理器601,该主处理器601连接到通信总线602。系统600还包括主存储器604。控制逻辑(软件)和数据存储在主存储器604中,该主存储器604可采用随机访问存储器(RAM)的形式。
系统600还包括图形处理器606和显示器608,即计算机监视器。在一个实施例中,图形处理器606可包括多个着色器模块、光栅化模块等。每个前述模块甚至可位于单个半导体平台上以形成图形处理单元(GPU)。
在本说明书中,单个半导体平台可以指基于单一半导体(sole unitarysemiconductor)的集成电路或芯片。应注意的是术语单个半导体平台还可以指具有增加的连通性的多芯片模块,其模拟片上操作并且对利用常规中央处理单元(CPU)和总线实现方案进行大量改进。当然,各种模块还可按用户的期望分开定位或位于半导体平台的各种组合中。
系统600还可包括第二存储610。第二存储610包括,例如硬盘驱动器和/或表示软盘驱动器、磁带驱动器、光盘驱动器等的可移动存储驱动器。可移动存储驱动器以公知的方式自可移动存储单元读取和/或写入可移动存储单元。
计算机程序、或计算机控制逻辑算法,可存储在主存储器604和/或第二存储610中。这种计算机程序当执行时使系统600能够实施各种功能。存储器604、存储610和/或任意其他存储是计算机可读介质的可能的示例。
在一个实施例中,可在主处理器601、图形处理器606、能够有主处理器601和图形处理器606两者的能力的至少一部分的集成电路(未示出)、芯片组(即设计为作为用于实施相关功能的单元工作以及销售的集成电路组等)和/或任意其他用于该情况的集成电路的情况下,实现各种先前图的架构和/或功能性。
仍然,可在通用计算机系统、电路板系统、专用于娱乐目的的游戏控制台系统、特定应用系统和/或任意其他所期望的系统的情况下实现各种先前附图的架构和/或功能性。例如,系统600可采取台式计算机、膝上型计算机和/或任意其他类型逻辑的形式。仍然,系统600可采取各种其他设备的形式,包括但不限于个人数字助理(PDA)设备、移动电话设备、电视等。
进一步地,虽然未示出,系统600可耦连到网络[例如电信网络、局域网(LAN)、无线网络、诸如互联网的广域网(WAN)、对等网络、电缆网络等]用于通信目的。
虽然上文已描述了各种实施例,应予以理解的是其仅由示例而非限制的方式所呈现。因此,优选实施例的宽度和范围不应由上文所述的任意示范性实施例所限制,而应仅根据接下来的权利要求及其等同物来定义。

Claims (21)

1.一种方法,包括:
识别具有多个顶点的图形;
分类所述图形的所述多个顶点;
其中所述多个顶点的所述分类是优化的。
2.根据权利要求1所述的方法,其中分类所述多个顶点包括为图形中的每个顶点指派随机数。
3.根据权利要求2所述的方法,其中分类所述多个顶点包括经由数学运算修改为每个顶点所指派的所述随机数。
4.根据权利要求2所述的方法,其中分类所述多个顶点包括将每个顶点的所指派的数与所述顶点的每个邻居的所指派的数相比较。
5.根据权利要求4所述的方法,其中分类所述多个顶点包括确定单个顶点的所指派的数是否大于所述单个顶点的每个邻居的每个所指派的数。
6.根据权利要求5所述的方法,其中单个顶点的所指派的数是否大于所述单个顶点的每个邻居的每个所指派的数的所述确定针对所述图形的每个顶点加以实施。
7.根据权利要求5所述的方法,其中分类所述多个顶点包括,如果确定所述单个顶点的所指派的数大于所述单个顶点的每个所述邻居的所指派的数,那么添加所述单个顶点到独立集。
8.根据权利要求7所述的方法,其中分类所述多个顶点包括着色所述独立集中的所有顶点。
9.根据权利要求8所述的方法,其中所述独立集中的所述所有顶点指派有来自值的有限集合的相同值。
10.根据权利要求7所述的方法,其中分类所述多个顶点包括从所述图形中移除所述独立集中的所述顶点并随后分类所述图形中的剩余顶点。
11.根据权利要求1所述的方法,其中分类所述多个顶点通过多次迭代来实施。
12.根据权利要求1所述的方法,其中优化所述分类包括在所述分类期间利用散列函数为所述图形中的每个顶点指派随机数。
13.根据权利要求12所述的方法,其中所述图形中的每个顶点的索引利用散列函数散列以便获得所指派到该顶点的所述随机数。
14.根据权利要求2所述的方法,其中优化所述分类包括将每个顶点的所指派的数与所述顶点的每个邻居的所指派的数相比较,确定单个顶点的所指派的数是否大于所述单个顶点的每个邻居的每个所指派的数,以及同时确定单个顶点的所指派的数是否小于所述单个顶点的每个邻居的每个所指派的数。
15.根据权利要求14所述的方法,其中所述图形中的所有具有比其每个邻居的所指派的数大的所指派的数的顶点添加到第一独立集,并且所述图形中的所有具有比其每个邻居的所指派的数小的所指派的数的顶点添加到与所述第一独立集分开的第二独立集。
16.根据权利要求1所述的方法,其中优化所述分类包括当所述多个顶点的一个或多个已添加到独立集时在所述分类期间不考虑这种一个或多个顶点。
17.根据权利要求1所述的方法,其中优化所述分类包括在所述分类期间改变所述图形的大小。
18.根据权利要求1所述的方法,其中优化所述分类包括在所述分类的一次或多次迭代之后减小所述图形的大小。
19.一种具体化在计算机可读介质上的计算机程序产品,包括:
用于识别具有多个顶点的图形的代码,;
用于分类所述图形的所述多个顶点的代码;
用于其中所述多个顶点的所述分类被优化的代码。
20.一种系统,包括:
处理器,用于识别具有多个顶点的图形,并且分类所述图形的所述多个顶点,其中所述多个顶点的所述分类是优化的。
21.根据权利要求20所述的系统,其中所述处理器经由总线耦连到存储器。
CN201310158856.7A 2012-05-01 2013-05-02 用于实施图形着色的系统、方法以及计算机程序产品 Active CN103383772B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/461,710 US9053041B2 (en) 2012-05-01 2012-05-01 System, method, and computer program product for performing graph coloring
US13/461,710 2012-05-01

Publications (2)

Publication Number Publication Date
CN103383772A true CN103383772A (zh) 2013-11-06
CN103383772B CN103383772B (zh) 2017-04-12

Family

ID=49384597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310158856.7A Active CN103383772B (zh) 2012-05-01 2013-05-02 用于实施图形着色的系统、方法以及计算机程序产品

Country Status (4)

Country Link
US (1) US9053041B2 (zh)
CN (1) CN103383772B (zh)
DE (1) DE102013206178A1 (zh)
TW (1) TWI534754B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068787A (zh) * 2015-08-28 2015-11-18 华南理工大学 一种稀疏矩阵向量乘法的异构并行计算方法
CN108140061A (zh) * 2015-06-05 2018-06-08 凯撒斯劳滕工业大学 网络模体的自动确定
CN109461198A (zh) * 2018-11-12 2019-03-12 网易(杭州)网络有限公司 网格模型的处理方法及装置
CN111742307A (zh) * 2018-02-21 2020-10-02 威斯康星校友研究基金会 用于高速图遍历的计算机架构

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014215941A (ja) * 2013-04-30 2014-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 経路情報の処理方法、コンピュータ・プログラム及びコンピュータ。
CN108491505B (zh) * 2018-03-22 2021-08-03 中国科学院信息工程研究所 一种基于拓扑势值排序的dsatur图顶点着色方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1501326A (zh) * 2002-11-15 2004-06-02 矽统科技股份有限公司 三维空间数字图像处理器与应用其上的能见度处理方法
US7017043B1 (en) * 1999-03-19 2006-03-21 The Regents Of The University Of California Methods and systems for the identification of circuits and circuit designs
US20080002725A1 (en) * 2006-06-30 2008-01-03 Lucent Technologies Inc. Two tiered packet labeling for data network traceback
WO2011032077A2 (en) * 2009-09-11 2011-03-17 University Of Maryland, College Park System and method for data management in large data networks
US20110164527A1 (en) * 2008-04-04 2011-07-07 Mishra Rajesh K Enhanced wireless ad hoc communication techniques
EP2423879A1 (en) * 2010-08-24 2012-02-29 Honeywell International, Inc. Method for clustering multi-modal data that contain hard and soft cross-mode constraints

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053209B2 (en) 2012-05-01 2015-06-09 Nvidia Corporation System, method, and computer program product for performing graph coloring

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017043B1 (en) * 1999-03-19 2006-03-21 The Regents Of The University Of California Methods and systems for the identification of circuits and circuit designs
CN1501326A (zh) * 2002-11-15 2004-06-02 矽统科技股份有限公司 三维空间数字图像处理器与应用其上的能见度处理方法
US20080002725A1 (en) * 2006-06-30 2008-01-03 Lucent Technologies Inc. Two tiered packet labeling for data network traceback
US20110164527A1 (en) * 2008-04-04 2011-07-07 Mishra Rajesh K Enhanced wireless ad hoc communication techniques
WO2011032077A2 (en) * 2009-09-11 2011-03-17 University Of Maryland, College Park System and method for data management in large data networks
EP2423879A1 (en) * 2010-08-24 2012-02-29 Honeywell International, Inc. Method for clustering multi-modal data that contain hard and soft cross-mode constraints

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J.R.ALLWRIGHT ET AL: "A Comparison of Parallel Graph Coloring Algorithms", 《SCCS-666,NORTHEAST PARALLEL ARCHITECTURES CENTER AT SYRACUSE UNIVERSITY》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140061A (zh) * 2015-06-05 2018-06-08 凯撒斯劳滕工业大学 网络模体的自动确定
CN108140061B (zh) * 2015-06-05 2021-07-20 凯撒斯劳滕工业大学 确定图中的同现率的方法、存储介质和系统
CN105068787A (zh) * 2015-08-28 2015-11-18 华南理工大学 一种稀疏矩阵向量乘法的异构并行计算方法
CN111742307A (zh) * 2018-02-21 2020-10-02 威斯康星校友研究基金会 用于高速图遍历的计算机架构
CN109461198A (zh) * 2018-11-12 2019-03-12 网易(杭州)网络有限公司 网格模型的处理方法及装置
CN109461198B (zh) * 2018-11-12 2023-05-26 网易(杭州)网络有限公司 网格模型的处理方法及装置

Also Published As

Publication number Publication date
CN103383772B (zh) 2017-04-12
TW201407537A (zh) 2014-02-16
DE102013206178A1 (de) 2013-11-07
US9053041B2 (en) 2015-06-09
TWI534754B (zh) 2016-05-21
US20130293563A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
CN103383772A (zh) 用于实施图形着色的系统、方法以及计算机程序产品
TWI360754B (en) Web page analysis using multiple graphs
Benatia et al. Sparse matrix format selection with multiclass SVM for SpMV on GPU
US9208278B2 (en) Clustering using N-dimensional placement
CN103810229A (zh) 用于实施字符串搜索的系统、方法和计算机程序产品
Cheong et al. Force-directed algorithms for schematic drawings and placement: A survey
US20150032708A1 (en) Database analysis apparatus and method
Gómez-Romero et al. Visualizing large knowledge graphs: A performance analysis
CN111241353B (zh) 一种图数据的分区方法、装置以及设备
CN111753094B (zh) 事件知识图谱的构建方法、装置及事件确定方法、装置
CN106202224B (zh) 搜索处理方法及装置
CN104424254A (zh) 获取相似对象集合、提供相似对象信息的方法及装置
JP6155833B2 (ja) 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム
JP2019191895A (ja) データ分析システム及びデータ分析方法
US9053209B2 (en) System, method, and computer program product for performing graph coloring
CN105488176A (zh) 数据处理方法和装置
CN105677755A (zh) 一种处理图数据的方法及装置
JP2015076093A (ja) 動的な頂点−プロセッサのマッピングを用いた、2部グラフ上での並列検索を向上させるためのシステムおよび方法
Jiang et al. Traveling salesman problems with PageRank Distance on complex networks reveal community structure
JP6705764B2 (ja) 生成装置、生成方法、及び生成プログラム
KR101878213B1 (ko) 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램
TWI690848B (zh) 基於記憶體處理器的多處理架構及其操作方法
US20170293657A1 (en) Accelerating Queries with Zone Map Enhancements
CN108229572B (zh) 一种参数寻优方法及计算设备
Leger Wmixnet: Software for clustering the nodes of binary and valued graphs using the stochastic block model

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant