CN113553288B - 针对hpcg基准测试的两层分块多色并行优化方法 - Google Patents

针对hpcg基准测试的两层分块多色并行优化方法 Download PDF

Info

Publication number
CN113553288B
CN113553288B CN202111101263.8A CN202111101263A CN113553288B CN 113553288 B CN113553288 B CN 113553288B CN 202111101263 A CN202111101263 A CN 202111101263A CN 113553288 B CN113553288 B CN 113553288B
Authority
CN
China
Prior art keywords
layer
parallel
coloring
data
calculation
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
Application number
CN202111101263.8A
Other languages
English (en)
Other versions
CN113553288A (zh
Inventor
杨超
朱钱超
罗昊
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.)
Peking University
Original Assignee
Peking University
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 Peking University filed Critical Peking University
Priority to CN202111101263.8A priority Critical patent/CN113553288B/zh
Publication of CN113553288A publication Critical patent/CN113553288A/zh
Application granted granted Critical
Publication of CN113553288B publication Critical patent/CN113553288B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本公开的实施例提供了一种针对高性能共轭梯度基准测试(HPCG基准测试)的高效两层分块多色并行优化方法。所述方法包括,首先对稀疏矩阵进行层划分,得到多个层;再对具体所述层的矩阵数据分别进行分块多色处理,得到着色计算块;将每个所述层的颜色相同的所述着色计算块分别进行分组,得到多个并行组;按各层各着色的顺序,在多线程处理器上并行执行所述并行组。以此方式,不仅可以在强数据依赖的高斯赛德尔算法中挖掘足够的并行度以充分利用硬件特性发挥性能,同时较已有的分块多色并行算法大大提高了收敛速率,同时此求解顺序使得向量数据以及矩阵数据可以在连续层之间进行进一步复用,从而进一步大幅提升性能。

Description

针对HPCG基准测试的两层分块多色并行优化方法
技术领域
本公开涉及超级计算机领域,尤其涉及高性能共轭梯度基准测试技术领域。
背景技术
高性能共轭梯度(High Performance Conjugate Gradients,HPCG)基准测试程序是一种对全世界超级计算机进行排名的标准。该测试基准主要用于用来衡量超级计算机解决大规模稀疏线性系统的能力,相比于目前TOP500排名所采用的High-PerformanceLinpack(HPL)基准测试,其计算、访存与通信模式更能代表基于偏微分求解的一类广泛科学与工程计算应用,也有助于更全面地反映系统的访存带宽和延迟以及通信能力。大规模稀疏线性系统部署在高性能计算机上进行计算时,对于存在依赖的稀疏线性系统求解的并行化算法至关重要。若不能根据高性能计算机的体系结构与特点进行并行化算法的有效设计与优化,程序的并行度会大大降低,使得性能不能完全释放。
HPCG基准测试源于半结构网格上的三维热传导应用,核心是将三维规则区域上的Poisson方程采用有限差分法进行离散,最终转换成一个稀疏线性方程组的求解问题。如附图图1所示,HPCG使用27点stencil格式,在HPCG中,每个网格点的更新都依赖其周围紧邻的最多26个邻居点,可选取的值为:26(内部点)、17(边界面上的点)、11(边界线上的点)和7(边界顶点)。
国产申威众核处理器sw26010-pro是一款由中国自主研发的新一代主从异构处理器,其被部署并应用于新一代神威超级计算机系统上。其每个节点由6个核组和系统接口组成,每个核组主要包括1个主核和1个从核阵列,从核阵列由64个从核构成的8行8列的拓扑结构。主核和从核都支持向量浮点指令扩展;每个从核还包含用户可控的LDM(LocalDevice Memory, 局部存储器),且直接访问本地LDM延迟极小;同时提供主从核间DMA异步传输机制;从核阵列内部交互使用RMA通信机制,可以实现点对点或者集合的通信方式。申威众核处理器sw26010-pro软硬件参数如表1所示:
表1:新一代申威众核处理器sw26010-pro软硬件参数
Figure 828732DEST_PATH_IMAGE001
新一代申威众核处理器26010-pro在主要参数配置、局部存储和底层通信机制上都进行了大量更新,相比上一代的神威太湖之光具有更强大的计算能力,其也被应用于新一代神威超级计算机上,越来越多的重要科学计算软件相继在该平台上进行部署。所以在其上的HPCG基准测试优化算法也需要与新一代的众核异构系统相契合,实现并行算法与架构特性的充分适配,从而充分发挥出新一代神威超级计算机的高性能。
对于HPCG基准测试程序的计算若仅仅依赖于主核资源,性能将极低,为利用从核的多线程计算资源,必然需要设计出适配HPCG中关键函数的并行化算法,以充分利用申威众核平台强大的计算能力。而已有的并行化算法在一方面需要进行收敛速率和并行度的平衡,另一方面并不能很好地适配新一代神威超级计算机的处理器架构,具体如下:
在HPCG基准测试程序中,对称高斯-赛德尔(SymGS)函数占据了总运行时间占比的大部分,并且由于紧密的数据依赖导致其仅拥有优先的并行度,这为其在众核异构架构系统进行深度优化带来了很大的困难。SymGS函数的核心计算过程类似于稀疏三角解法器。稀疏三角解法器相关工作基本算法大致分为两类:分层调度(level scheduling)和多色排序(color ordering),这两类算法在针对Intel Xeon Phi处理器,CPU-GPU异构架构、国产天河二号CPU-MIC以及神威太湖之光的主从核架构的HPCG基准测试优化上都起到了重要作用,并取得了很好的性能结果。
对于神威系列超级计算机的主从核的众核异构架构,分层调度算法虽然能够保证每个未知量之间的依赖关系,对于HPCG基准测试的收敛速度不会改变,使得最终不会存在由于收敛次数增大带来的性能损失,但是这种方法的并行度十分有限,对于一个NxNxN的三维网格大约需要划分成7N层,此时的并行度平均并行度约为NxN/7,并且其在头部和尾部层的并行度很低,不能充分发挥从核阵列多线程优势;同时难以做到很好的负载均衡,并且需要大量的片上通信来完成同步。种种问题使得分层调度算法难以适配新一代神威超级计算机进行SymGS函数的并行优化。
而分块着色算法则会破坏部分节点之间的直接依赖关系,相同颜色的分块可以被并行地调度到从核阵列上进行计算,对于相同的NxNxN的三维网格问题,如果大小为b的分块被着成c种颜色,此时的并行度为(NxNxN)/(bc),这样做虽然提高了并行度与局部性,但是该算法需要在收敛速度和并行度之间进行平衡:依赖关系破坏越少,并行度越低,收敛越快;依赖关系破坏越多,并行度越高,收敛越慢。虽然采用多色排序能够获得较好平衡,但是也会带来额外的同步开销,且很难选择最优的分块与着色参数,导致最终的收敛速率下降较多。
另外,神威新一代超级计算机在主要参数配置、局部存储和底层通信机制上都进行了大量更新,所以如何综合考虑并行算法和异构众核架构特性,设计出同时兼具充足并行度和高效收敛速率的SymGS函数并行方案至关重要。
发明内容
本公开提供了一种针对HPCG基准测试的两层分块多色并行优化方法、设备以及存储介质。
根据本公开的第一方面,提供了一种针对HPCG基准测试的两层分块多色并行优化方法。该方法包括:对稀疏矩阵进行层划分,得到多个层;对每个所述层的矩阵数据分别进行分块多色处理,得到着色计算块;将每个所述层的颜色相同的所述着色计算块分别进行分组,得到多个并行组;按各层各着色的顺序,在众核处理器上进行多线程并行执行所述并行组。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述对稀疏矩阵进行层划分包括:对稀疏矩阵按照原始遍历顺序划分成多个层,所述层的数目为m,m为大于1的正整数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对每个所述层的矩阵数据分别进行分块多色处理包括:对每个所述层的矩阵数据,分别生成对应的有向图,采用图划分算法,将所述有向图分解成计算块;利用图着色算法对生成的所述计算块进行着色处理;着色数目为c,c为大于1的正整数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述计算块大小为b,所述b需要保证计算块所需要的数据能够存放在局部存储中以保证数据局部性;着色数目为c,c为大于1的正整数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,将每个所述层的颜色相同的所述着色计算块分别进行分组包括:将各层的计算块分别按照颜色分为不同的并行组,并行组的数目是线程数目的倍数。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,按各层各着色的顺序,在众核处理器上进行多线程并行执行所述并行组包括:按照各层各着色的顺序,分别将每个并行组的计算块通过多线程库调度到众核处理器上,分配给各线程所对应的核心进行解向量数据更新后进行同步。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,分别将每个并行组的计算块通过多线程库调度到众核处理器上包括:通过任务调度器将着色计算块均匀的分配给各个线程,并保证每个线程上的计算量负载均衡。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,解向量数据更新包括:重用解向量已经在局部储存中的部分,依次更新每一行的解向量,并且将对称高斯赛德尔的后向遍历过程和紧接着的后续稀疏矩阵向量乘函数融合。
根据本公开的第二方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面和/或第二发面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了HPCG 三维27点stencil格式的示意图;
图2示出了根据本公开的实施例的针对HPCG基准测试的两层分块多色并行优化方法的流程图;
图3示出了根据本公开的实施例的针对HPCG基准测试的两层分块多色并行优化方法的示意图;
图4示出了不同分块着色算法的收敛性测试效果对比图;
图5示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中,通过综合考虑算法和处理器架构特性,采用一种两层分块多色方法与从核阵列进行适配对SymGS函数进行并行,同时在矩阵数据重排后采用函数融合和向量复用相结合,进一步进行了优化。其中,所述两层是指两个层次架构,即先分成多个连续的大层,再针对具体的每个大层进行分块着色。
图2示出了能够在其中实现本公开的实施例的针对HPCG基准测试的两层分块多色并行优化方法200的示意图。所述方法包括以下步骤:
在S202中,对稀疏矩阵进行层划分,得到多个层;
对NxNxN的稀疏矩阵按照原始遍历顺序划分成多个大块,每个大块即一个层。
在一些实施例中,所述层的数目为m,m为大于1的正整数。其中,m的理论上限是NxNxN,但实际上限需要根据实际线程数和局存大小,以及收敛速度进行综合考虑确定。
通过本步骤将稀疏矩阵划分为多个层,对多个所述层依次处理,以保持多个所述层之间的依赖关系,对于HPCG基准测试的收敛速率有着重要的提升作用。
在S204中,对每个所述层的矩阵数据分别进行分块多色处理。
对每个所述层的矩阵数据,分别生成对应的有向图,采用图划分算法,将所述有向图分解成规模一致且内部具有较强依赖的计算块;利用图着色算法对生成的所述计算块进行着色处理,使颜色相同的着色分块相互独立。
在一些实施例中,所述有向图为基于稀疏矩阵所生成的有向无环图(DAG),并且在DAG表示中,每个节点代表着一个未知量或者矩阵的一行,它们之间的依赖关系将用有向边表示。比如,稀疏矩阵中(i,j)位置存在非零元则表示第i个未知量将依赖第j个未知量,用DAG中从节点j到节点i的有向边表示。在所述划分过程中,每个计算块大小尽可能大,以避免在 LDM(局部存储) 容量有限的情况下性能下降。即,保证在后续计算过程中,每个计算块所需要的数据能够刚好存放在LDM中,这样增强了数据局部性,提高了数据的访问效率,减少了从核之间的依赖关系,更适合通过从核进行并行处理。
在一些实施例中,分块着色算法可以被看作图分块和图着色问题。首先忽略DAG图中有向边的方向,然后对图中的每个计算块用不同颜色着色,保证一个计算块和它连接的周围计算块颜色不一样。这样,图中的所有计算块就按照颜色被分为不同的组,而处在同一颜色组中的计算块没有直接的依赖关系,可以被并行执行。通过着色处理,不需要像分块那样进行数据的移动,计算块的颜色只存在于逻辑层面,着色策略更加灵活可变。
在一些实施例中,所述计算块的大小为b,所述着色处理的着色数目为c,c为大于1的正整数。
在S206中,将每个所述层的颜色相同的所述着色计算块分别进行分组,得到多个并行组;
在一些实施例中,通过任务调度器将着色计算块均匀的分配给多线程的众核处理器的各个线程,并保证每个线程上的计算量负载均衡。
例如调度到神威超算系统的申威众核处理器从核上,并尽可能的保证每个从核上的计算量负载均衡。由于神威超算系统的申威众核处理器的从核阵列计算核心有限,而同一颜色的计算块往往多于有限的从核,所以还需要将同一颜色的计算块切分为不同的并行组,并行组的数目是线程数目的倍数。例如,并行组的数目是神威超算系统的申威众核处理器的从核数目的倍数,就可以充分利用从核;以便每个组都可以充分利用申威众核处理器sw26010-pro的从核阵列。而计算块内的每个节点仍旧按照串行的自然序来进行计算。
将每个所述层的颜色相同的计算块分别分成若干个并行组,例如,第1层的第0色的计算块可以分为着成第0色的并行组、第1色的计算块可以分为着成第1色的并行组…第c色的计算块可以分为着成第c色的并行组;第2层的第0色的计算块可以分为着成第0色的并行组、第1色的计算块可以分为着成第1色的并行组…第c色的计算块可以分为着成第c色的并行组;…第m层的第0色的计算块可以分为着成第0色的并行组、第1色的计算块可以分为着成第1色的并行组…第c色的计算块可以分为着成第c色的并行组。
经过分块着色之后,被标记为同一颜色的计算块可以并行计算,而相同颜色的每个并行组都可以充分利用申威众核处理器sw26010-pro的从核阵列。而计算块内的每个节点仍旧按照串行的自然序来进行计算。
申威众核处理器sw26010-pro的每个节点由4个核组和系统接口组成,每个核组主要包括1个主核和1个从核阵列,从核阵列由64个从核构成的8行8列的拓扑结构。
在S208中,按各层各着色的顺序,在众核处理器上进行多线程并行执行所述并行组。
按照各层各着色的顺序,分别将每个并行组的计算块通过多线程库调度到多线程的众核处理器上,分配给各线程所对应的核心进行解向量数据更新后进行同步。解向量数据更新包括重用解向量已经在局部储存中的部分,依次更新每一行的解向量,并且将对称高斯赛德尔的后向遍历过程和紧接着的后续稀疏矩阵向量乘函数融合。
例如,按上述顺序,将并行组中的分块并行调度至神威超算系统的申威众核处理器的从核阵列上进行处理,在每一层的并行组处理完毕后,由于层内求解依赖于上下层的x解向量数据,所以可以在层切换时可保留上层向量数据进行复用;同理,由于是逐层求解,同样可以使得SymGS对称高斯赛德尔的后向遍历过程和紧接着的后续SpMV稀疏矩阵向量乘函数操作实现融合,具体做法是在求解完第二层SymGS算子后,求解第一层的SpMV,以此类推,实现流水级的融合操作。
在一些实施例中,并行调度 64 个线程,此时每个并行组内的计算块都可以并行处理,而对于具体的计算块内,则仍然按照原始顺序进行顺序遍历。
在一些实施例中,首先调度第一层颜色0的并行组,在进行解向量数据更新后进行同步;再调度颜色1的并行组…;然后调度第二层颜色0的并行组,在进行解向量数据更新后进行同步;再调度颜色1的并行组…,以此类推。需要注意的是,切换到下一种颜色或层时之前需要进行数据交换和同步操作。
针对每个从核阵列中每个从核上的计算,在经过两层矩阵数据划分后,对热点函数SymGS和SpMV的数据访问、计算以及通信方式作进一步的优化。由于本公开的两层分块多色并行优化方法中,在求解顺序上保证了连续性,所以向量数据以及连续层的矩阵数据均可以部分的复用,例如,在部分连续层中重用解向量x,并且将 SymGS 的后向遍历过程和紧接着的后续SpMV函数融合。这些优化在现有的分块多色方案是无法做到的,也会为性能带来极大的提升。
在一些实施例中,通过调整层数m,分块大小b和着色数目c来进一步提高性能,因为分块与着色参数对于最终收敛次数和SymGS、SpMV函数性能都有着较大的影响。分块大小b变大会改善数据局部性,但收敛性变差;着色数目c变小会改善数据局部性,但收敛性变差;而层数m越大,收敛性越好,但是限制了分块大小b和着色数目c的选择,并行度会变低,局部性也会变差。在一些实施例中,结合每次从核处理的分块大小b并结合是否有跨层依赖关系来进一步确定层数m,所以是间接影响性能的。
在一些实施例中,利用LDM空间载入分块数据,即所述计算块;并使用优化向量扩充方式提前将每个从核计算所需的非规则访存数据载入LDM上避免直接访问主存,来提供更好的局部性;对于访问规则的数据,采用DMA方式进行主核与从核之间的传输。
根据本公开的实施例,实现了以下技术效果:
对于NxNxN的稀疏矩阵,本公开的并行度为(NxNxN)/(mbc),因为并行度对于拥有64个线程的从核阵列仍然是冗余的,反而由于层之间的依赖顺序被保持而使得收敛速率大大提高。通过减少不必要的并行度为代价有效地提高了收敛速度。
本发明所提出的两层分块多色方案的另一个优点是它还提供了在部分连续层中重用解向量x的机会,并且将 SymGS的后向遍历过程和紧接着的后续SpMV函数融合的可能性,由于以往的分块着色技巧都是针对整个网格进行处理,所以每次处理分块所要求的矩阵与向量都并不连续,无法实现数据复用来提升性能的,而我们提出的两层分块多色方案不仅充分挖掘了并行度,而且通过在求解顺序上保证连续性从而提高了收敛速率,同时连续层的求解会使得层内所需要的向量数据以及矩阵数据均可以实现大程度的复用,而这些优化技巧将会为性能带来极大的提升。
通过灵活调整层数m,分块大小b和着色数目c来进一步提高性能,因为分块与着色参数对于最终收敛次数和SymGS、SpMV函数性能都有着较大的影响。
本公开中,针对新一代神威超级计算机上的HPCG基准测试程序优化进行了多种分块着色算法的收敛性测试,单进程规模设置为256x128x256,利用单个核组即一个主核和64个从核处理一个进程。如附图图4所示,红黑着色算法需要高达66次迭代,而着色数目定为8色,分块大小为64和32的分块多色算法则分别需要56次迭代和58次迭代。可见,已有的针对其他异构架构或神威太湖之光架构的分块以及着色算法虽然保证了并行度,但收敛次数明显降低,需要更多次迭代才能达到参考版本50次串行迭代达到的残差数值。
而本公开提出的两层分块多色算法虽然牺牲了理论上的并行度,但是由于新一代神威超算上的sw26010-pro众核处理器的从核阵列为8x8的轻量级线程,此算法的并行度仍然足够SymGS函数的并行调度,同时带来了高效的收敛速率,在单从核组(单进程)上的收敛次数仅仅需要52次,并在扩展多节点后仅需要51次,相比于之前已有的算法,大幅度降低了HPCG基准测试中由于收敛次数增多带来的性能惩罚开销,HPCG基准测试程序中由于迭代次数增大所导致的收敛开销仅仅只剩3.8%,从而进一步提升了新一代神威超级计算机上的HPCG基准测试的整体性能。
表2:HPCG基准测试单进程性能测试结果
Figure 417976DEST_PATH_IMAGE002
从表2可以看出,在利用两层分块多色并行化算法后,性能较已有的分块着色算法更高,并且由此所产生的连续层更易于实现向量的复用和SymGS函数的后向遍历与紧接着的SpMV函数的融合,带来了更大的性能收益,使得最终性能相较于仅利用主核计算的版本提升了59.6倍之多。
表3:世界主要超算系统HPCG基准测试性能对比
Figure 130803DEST_PATH_IMAGE003
使用新一代神威超级计算机上的HPCG基准测试单节点性能结果与世界各国主要超算系统的性能结果进行对比,可以看到新一代神威超级计算机的性能带宽比值相较于其他超级计算机系统处于领先水平,甚至比位列TOP500排行榜榜首(2020年11月结果)的日本Fugaku富岳超出一倍之多,可见所述两层分块多色并行优化方法效果显著。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
图5示出了可以用来实施本公开的实施例的电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如方法200。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM503并由计算单元501执行时,可以执行上文描述的方法200的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (6)

1.一种针对HPCG基准测试的两层分块多色并行优化方法,包括:
对稀疏矩阵进行层划分,得到多个层;
对每个所述层的矩阵数据分别进行分块多色处理,得到着色计算块;
将每个所述层的颜色相同的所述着色计算块分别进行分组,得到多个并行组;
按各层各着色的顺序,在众核处理器上进行多线程并行执行所述并行组;
所述对稀疏矩阵进行层划分包括:对稀疏矩阵按照原始遍历顺序划分成多个层,所述层的数目为m,m为大于1的正整数;
所述对每个所述层的矩阵数据分别进行分块多色处理包括:对每个所述层的矩阵数据,分别生成对应的有向图,采用图划分算法,将所述有向图分解成计算块;利用图着色算法对生成的所述计算块进行着色处理;着色数目为c,c为大于1的正整数;
所述将每个所述层的颜色相同的所述着色计算块分别进行分组包括:将各层的计算块分别按照颜色分为不同的并行组,并行组的数目是线程数目的倍数;
所述按各层各着色的顺序,在众核处理器上进行多线程并行执行所述并行组包括:
按照各层各着色的顺序,分别将每个并行组的计算块通过多线程库调度到多线程的众核处理器上,分配给各线程所对应的核心进行解向量数据更新后进行同步。
2.根据权利要求1所述的方法,其特征在于,
所述计算块大小为b,所述b需要保证计算块所需要的数据能够存放在局部存储中以保证数据局部性;
着色数目为c,c为大于1的正整数。
3.根据权利要求1所述的方法,分别将每个并行组的计算块通过多线程库调度到众核处理器上包括:
通过任务调度器将着色计算块均匀的分配给各个线程,并保证每个线程上的计算量负载均衡。
4.根据权利要求1所述的方法,解向量数据更新包括:
重用解向量已经在局部储存中的部分,依次更新每一行的解向量,并且将对称高斯赛德尔的后向遍历过程和紧接着的后续稀疏矩阵向量乘函数融合。
5.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
6.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-4中任一项所述的方法。
CN202111101263.8A 2021-09-18 2021-09-18 针对hpcg基准测试的两层分块多色并行优化方法 Active CN113553288B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111101263.8A CN113553288B (zh) 2021-09-18 2021-09-18 针对hpcg基准测试的两层分块多色并行优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111101263.8A CN113553288B (zh) 2021-09-18 2021-09-18 针对hpcg基准测试的两层分块多色并行优化方法

Publications (2)

Publication Number Publication Date
CN113553288A CN113553288A (zh) 2021-10-26
CN113553288B true CN113553288B (zh) 2022-01-11

Family

ID=78106435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111101263.8A Active CN113553288B (zh) 2021-09-18 2021-09-18 针对hpcg基准测试的两层分块多色并行优化方法

Country Status (1)

Country Link
CN (1) CN113553288B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114970294B (zh) * 2022-08-02 2022-10-25 山东省计算中心(国家超级计算济南中心) 基于神威架构的三维应变仿真pcg并行优化方法及系统
CN117950842A (zh) * 2022-10-18 2024-04-30 华为技术有限公司 预条件子处理方法、装置、设备及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493819A (zh) * 2008-01-24 2009-07-29 中国科学院自动化研究所 一种搜索引擎作弊检测的优化方法
CN102096744A (zh) * 2011-03-07 2011-06-15 杭州电子科技大学 一种非规则迭代并行化方法
CN107273094A (zh) * 2017-05-18 2017-10-20 中国科学院软件研究所 一种适应于“神威·太湖之光”上hpcg优化的数据结构及其高效实现方法
CN110942504A (zh) * 2019-10-30 2020-03-31 中国科学院软件研究所 一种众核平台上面向规则网格问题的结构化着色方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532834B (zh) * 2018-05-24 2022-12-23 北京庖丁科技有限公司 基于富文本格式文档的表格提取方法、装置、设备和介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493819A (zh) * 2008-01-24 2009-07-29 中国科学院自动化研究所 一种搜索引擎作弊检测的优化方法
CN102096744A (zh) * 2011-03-07 2011-06-15 杭州电子科技大学 一种非规则迭代并行化方法
CN107273094A (zh) * 2017-05-18 2017-10-20 中国科学院软件研究所 一种适应于“神威·太湖之光”上hpcg优化的数据结构及其高效实现方法
CN110942504A (zh) * 2019-10-30 2020-03-31 中国科学院软件研究所 一种众核平台上面向规则网格问题的结构化着色方法

Also Published As

Publication number Publication date
CN113553288A (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
CN113553288B (zh) 针对hpcg基准测试的两层分块多色并行优化方法
EP3404587B1 (en) Cnn processing method and device
US9152601B2 (en) Power-efficient nested map-reduce execution on a cloud of heterogeneous accelerated processing units
CN104536937B (zh) 基于cpu‑gpu异构集群的大数据一体机实现方法
Kardoš et al. Two-level parallel augmented schur complement interior-point algorithms for the solution of security constrained optimal power flow problems
CN113469350B (zh) 一种适于npu的深度卷积神经网络加速方法和系统
CN110516316B (zh) 一种间断伽辽金法求解欧拉方程的gpu加速方法
CN114450661A (zh) 用于可重配置架构的编译器流程逻辑
Dai et al. A synthesized heuristic task scheduling algorithm
CN109978171B (zh) 一种基于云计算的Grover量子仿真算法优化方法
CN109918182A (zh) 虚拟化技术下的多gpu任务调度方法
Lai et al. Accelerating Strassen-Winograd's matrix multiplication algorithm on GPUs
Wang et al. Efficient parallel implementation of large scale 3D structured grid CFD applications on the Tianhe-1A supercomputer
CN108197075B (zh) 一种Inception结构的多核实现方法
CN108984483A (zh) 基于dag及矩阵重排的电力系统稀疏矩阵求解方法和系统
Zubair et al. An optimized multicolor point-implicit solver for unstructured grid applications on graphics processing units
Choi et al. {EnvPipe}: Performance-preserving {DNN} Training Framework for Saving Energy
Moustafa et al. 3D cartesian transport sweep for massively parallel architectures with PARSEC
Leandro Nesi et al. Exploiting system level heterogeneity to improve the performance of a geostatistics multi-phase task-based application
CN111090613B (zh) 一种基于图分割的低复杂度软硬件划分与调度方法
Chen et al. Buffer minimization in pipelined SDF scheduling on multi-core platforms
CN116167304B (zh) 基于神威架构的油藏数值模拟gmres优化方法及系统
Geng et al. A task scheduling algorithm based on multi-core processors
CA3161314A1 (en) Fast quantum circuit simulations with parallel task-based tensor network contraction
CN108599173B (zh) 一种批量潮流的求解方法及装置

Legal Events

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