CN112181894B - 一种基于申威众核处理器的核组内分组自适应调整运行方法 - Google Patents

一种基于申威众核处理器的核组内分组自适应调整运行方法 Download PDF

Info

Publication number
CN112181894B
CN112181894B CN201910599786.6A CN201910599786A CN112181894B CN 112181894 B CN112181894 B CN 112181894B CN 201910599786 A CN201910599786 A CN 201910599786A CN 112181894 B CN112181894 B CN 112181894B
Authority
CN
China
Prior art keywords
slave
core
throughput
cores
packet
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
CN201910599786.6A
Other languages
English (en)
Other versions
CN112181894A (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.)
Shandong Computer Science Center National Super Computing Center in Jinan
Original Assignee
Shandong Computer Science Center National Super Computing Center in Jinan
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 Shandong Computer Science Center National Super Computing Center in Jinan filed Critical Shandong Computer Science Center National Super Computing Center in Jinan
Priority to CN201910599786.6A priority Critical patent/CN112181894B/zh
Publication of CN112181894A publication Critical patent/CN112181894A/zh
Application granted granted Critical
Publication of CN112181894B publication Critical patent/CN112181894B/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/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及一种基于申威众核处理器的核组内分组自适应调整运行方法,包括:(1)对核组的资源进行分组:当从核阵列只接收了一个程序段,则不进行从核阵列的数量分组,否则,如果从核阵列接收了n个无程序上下文依赖关系的程序段,n>1,则将从核阵列中的64个从核平均分成n组,分别分配给这n个程序段;(2)监控从核阵列运行状态、从核阵列的分组I/O情况,并将获得的监控信息发送至从核阵列可分组算法;(3)对传送的监控信息进行实时评估,根据评估结果对各并行应用程序段使用的从核数量进行实时调整;(4)周期性的执行上述步骤(1)至步骤(3),使被调整的并行程序段达到核组内从核计算资源利用率和I/O带宽利用率的均衡。

Description

一种基于申威众核处理器的核组内分组自适应调整运行方法
技术领域
本发明涉及计算机高性能计算、并行计算、系统结构技术领域,具体涉及一种基于申威众核处理器的核组内分组自适应调整运行方法。
背景技术
申威众核处理器是我国自主研发的高性能计算芯片代表之作,它的研发成功对于我国建立自主可控的超算生态环境起到了关键性作用,对于保卫国家信息安全具有重要基础性意义。目前,计算能力世界排名前列的“神威·太湖之光”超级计算机使用了4万余颗申威众核处理器。以申威26010众核处理器芯片为例,每颗芯片包括4个核组,核组之间通过片上网络连接。每个核组主要由1个主核和从核阵列、内存控制器等硬件单元组成。每个从核阵列具有64个从核,从核之间采用8×8的网格拓扑结构进行连接。每个核组的每个从核具有64KB的局存(Local Data Memory,LDM)。具体如图1所示。
申威众核处理器具有“1大核64小核”的硬件架构,待处理数据需要通过核组内的内存控制器传送到主核或者从核阵列。长期以来,相对于快速增长的计算性能,计算机硬件系统的I/O能力增长缓慢。对于申威众核处理器的特殊硬件架构,核组内I/O能力和处理器性能之间的矛盾更加突出,核组内的主核和64个从核都需要从内存中存取数据。申威众核处理器的从核具有强大的运算能力,98%的计算性能由从核确定。相对于主核,从核需要获取更多的数据进行计算,每个从核独立计算但是,共享核组内的I/O资源,多个从核之间存在核组内I/O资源竞争关系,核组内的I/O能力成为制约整个处理器性能的瓶颈。因此,在核组内部,使用从核较为困难,主要体现在如下两个方面:
首先,确定从核使用数量存在困难。如果编程人员为了充分利用从核阵列的计算资源,盲目设置较多的从核,例如,使用核组内全部64个从核,这些从核发出的I/O请求可能超出核组内I/O的处理能力,发出超过核组内I/O处理能力的从核将被动的进行阻塞等待,浪费从核计算资源。进一步的,过多的从核发出的I/O请求还将在数据读入和写回阶段相互干扰,进一步降低核组内I/O吞吐量,进而影响程序性能;反之,如果编程人员为了避免核组内从核I/O竞争产生的内耗,使用的从核数量过少,则核组I/O资源和计算资源都将无法得到充分利用。因此,如何使用“合理”的从核数量,在充分发挥核组I/O处理能力的前提下,获得尽可能高的性能,是亟需解决的问题。
其次,“合理”的从核个数具有程序段依赖性、数据依赖性和时序依赖性。(1)关于程序段依赖性。使用申威众核处理器进行并行程序优化,主要针对程序中的类似for、while等循环语句程序段进行并行优化。一个成熟的应用程序,经过多年的迭代开发,代码量可能有几十万行到百万行之巨,其中可并行优化的程序段可能有成百上千个。每个可并行的程序段都有各自的输入数据集和程序运行逻辑,如果将这些程序段使用相同的从核数量进行并行处理,显然是不合适的;如果将每个可并行的程序段都使用多种从核数量进行测试,工作量会及其巨大,严重滞缓研发效率。(2)关于数据依赖性。具有不同的输入数据集合同一并行程序段,都可能导致申威处理器处理能力的较大差异。这种程序段的数据依赖性使得编程人员无法在程序研发阶段确定“合理”的从核个数。(3)关于时序依赖性。具备同一输入数据集的同一并行程序段,在不同的运行时间内可能会存在局部输入数据的变化。例如,以基于国产神威太湖之光超级计算机的海洋模式程序并行优化为例,程序将海洋、陆地进行多维网格划分,将不同的网格分配给不同的计算节点,每个计算节点获取不同的网格进行数据处理。在计算节点内部,不同的核组也将获取不同的网格进行计算。不同的网格具有不同的物理特征,因此计算量也具有很大的不同,并且同一并行程序段需要进行多次迭代运行。因此,在不同网格,在不同的迭代次数内,计算量都会不同。由于每次迭代运行所需的申威处理器的核组I/O资源和计算资源都有所不同,如果将从核数量设定为一个定值,将无法根据程序实际的应用需求在程序运行时修改从核的数量。
当前使用申威众核处理器采用的方法为,从核并行程序优化开始时,调用athread_spawn函数,启动从核阵列中的所有从核。具体数据分配由编程人员确定,例如数组的行、列划分方式和划分数据大小。具体使用的从核数量由编程人员根据经验确定,此种确定从核数量的方式有很大的盲目性和随意性。自从核并行程序执行开始到执行结束,即使用固定的从核数进行数据处理,例如使用16、32或者64个从核。此种方式没有考虑核组内部实际的计算资源和核组I/O资源的矛盾。
综上所述,基于申威众核处理器的数据并行处理,需要研究一种方法,可以针对不同的并行程序和并行程序段,不同的输入集合、不同的运行时间内,动态的调整从核的运行数量,使得程序段既能够充分利用申威众核处理器核组的I/O能力,又不会导致从核阵列计算资源的浪费。
发明内容
针对现有技术的不足,本发明提供了一种基于申威众核处理器的核组内分组自适应调整运行方法。
本发明可以根据实际从核的运行程序,动态的分组调整从核阵列中从核的运行数量,使得程序既能够充分利用申威众核处理器核组的I/O能力,又不会导致从核阵列计算资源的浪费。
本发明主要目标是调整从核的数量,以契合核组内的I/O能力。“合理”的从核数量不仅依赖于当前的并行应用程序,而且依赖于当前并行程序的数据和申威众核处理器的实时运行情况。因此,本方法根据实时的软、硬件情况,采用一种动态机制,可以周期性的分组调整从核的数量。
术语解释:
程序上下文依赖关系:在本发明中,程序上下文指顺序执行的代码段中,如果下一个代码段用不到上一个代码段输出的数据,则称这两个代码段无程序上下文依赖关系;如果下一个代码段需要使用上一个代码段输出的数据,则称这两个代码段有程序上下文依赖关系。
本发明的技术方案为:
一种基于申威众核处理器的核组内分组自适应调整运行方法,运行于计算机上,包括步骤如下:
(1)对核组的资源进行分组:当从核阵列只接收了一个程序段或接收了多个有程序上下文依赖关系的程序段,则不进行从核阵列的数量分组,程序段可调整的从核数量上限为64个从核,否则,如果从核阵列接收了n个无程序上下文依赖关系的程序段,n>1,则将从核阵列中的64个从核平均分成n组,分别分配给这n个程序段;例如,从核阵列接收了两个无程序上下文依赖关系的程序段,则将从核阵列平均分为两组,每个程序段可调整的从核数量的上限为32个从核;
本方法针对编程人员对从核程序的定义对核组资源进行分组。例如,当前从核阵列中同时运行有两个无程序上下文依赖关系的程序段,可以将其放入同一核组内同时运行。
(2)监控从核阵列运行状态、从核阵列的分组I/O情况,从核阵列的运行状态,表示从核阵列中64个从核的实时运行情况,每个从核的实时运行情况表现为“忙”或者“空闲”两种状态之一;从核阵列的分组I/O情况,表示步骤(1)的每个分组在固定周期内的I/O吞吐量;并将监控获得的监控信息,包括从核阵列运行状态和从核阵列的分组I/O情况,传送给从核阵列可分组调整算法;具体包括从核的实时运行情况和周期内的I/O吞吐量;
(3)通过从核阵列可分组调整算法对监控信息进行实时评估,是指:将当前周期的I/O吞吐量跟上一周期的I/O吞吐量进行对比评估,评估结果为I/O吞吐量增加、I/O吞吐量减小或者I/O吞吐量不变;
从核阵列可分组调整算法所需的配置信息包括初始从核数量、调整周期、调整I/O吞吐量的阈值、单次调整从核数量,可以选择默认设定的值,也可以由编程人员根据具体程序更改默认设定的值。初始从核数量,表示步骤(1)分配给每个分组使用的从核的数量,默认设定为2。调整周期,表示调整分组从核数量的时间;可以由编程人员根据程序具体执行时间进行设定,默认调整周期设定为50微秒。调整I/O吞吐量的阈值,用百分比表示,如果I/O吞吐量增加或者减少的变化值超过调整I/O吞吐量的阈值即进行调整,调整I/O吞吐量的阈值包括减少从核数量的I/O吞吐量阈值A1及增加从核数量的I/O吞吐量阈值A2,I/O吞吐量相比于上一周期减少A1时,即减少分组内的从核数量,I/O吞吐量相比于上一周期增加A2时,即增加分组内的从核数量;
单次调整从核数量是指调整分组从核数量时每次增加或减少的分组的从核数量;
根据评估结果,对n个无程序上下文依赖关系的程序段使用的从核数量进行实时调整;
(4)周期性的执行上述步骤(1)至步骤(3),使被调整的n个无程序上下文依赖关系的程序段达到核组内从核计算资源利用率和I/O带宽利用率的均衡,即在调整后的多个周期内,I/O吞吐量的变化均不超过调整I/O吞吐量的阈值,并且各个分组使用从核的数量不变。I/O吞吐量和各个分组的从核数量都达到相对稳定的状态。
进一步优选的,A1默认设定为5%,即I/O吞吐量相比于上一周期减少5%时,即减少分组内的从核数量;A2默认设定为2%,即I/O吞吐量相比于上一周期增加2%时,即增加分组内的从核数量。
进一步优选的,在急速调整阶段,单次调整分组内从核的数量默认值为4,在缓速调整阶段,单次调整分组内从核的数量默认值为1。
根据本发明优选的,所述步骤(2),监控从核阵列运行状态、从核阵列的分组I/O情况,以组为单位进行,包括步骤如下:
A、为了不影响程序段运行的负载均衡,具备监控功能的从核不进行具体程序处理。每个分组设置一个监控从核,其它从核为处理从核;例如,如果将从核分组数量设置为1,即不进行从核分组,则使用0号从核进行监控;如果将从核分组数量设置为2,即将从核分为两组,每组运行不同的程序段,每组可以控制32个从核。第一程序段使用0号从核对1~31号从核进行监控,第二程序段使用32号从核对33~63号从核进行监控。
B、监控从核实时监控本从核分组内各个从核的I/O吞吐量,即在调整周期内监控各个从核读入和写回的数据量;
设置从核阵列的吞吐量I/O保存数组,每个处理从核将各自的I/O吞吐量累加到数组中对应从核核号的存储单元;因各个从核操作的为同一数组的不同存储单元,所以不需要进行数组互斥操作。各个从核具体累加的数据为从核使用athread_get和athread_put的数据量,读入和写回数据量的累加分别在athread_get和athread_put之后完成;
C、监控从核周期性的提取保存在数组中的I/O吞吐量,跟上一周期的I/O吞吐量进行比对,根据比对结果,通过从核阵列可分组调整算法对各个从核分组的使用从核数量进行调整。
根据本发明优选的,通过从核阵列可分组调整算法对各个从核分组的使用从核数量进行调整,包括步骤如下:申威众核处理器的从核阵列拥有丰富的计算资源,单个核组可利用的从核数量为64个。如果让每个从核分组中从核数量从1开始逐步递增(例如从核数量+1),增长会相对缓慢,可能需要很长时间才会达到从核分组I/O情况的极值。因此,需要将从核分组中的从核数量由少到多的进行调整,但是调整的时间不易过长。
a、急速调整阶段:在程序段开始运行时期,将从核数量先急速调整到逼近最优从核数量。以从核阵列可分组调整算法所需的配置信息的默认值为例。
包括:如果跟上一周期的分组的I/O吞吐量相对比,当前周期分组的I/O吞吐量增加10%及以上时,则急速提升分组的从核数量,将该分组的从核数量单次增加4;重新执行步骤a;如果跟上一周期的分组的I/O吞吐量进行比对,当前周期分组的I/O吞吐量增加小于10%或者达到了急速调整阶段设定的最大从核数量,急速调整阶段设定的最大从核数量为从核分组可调数量的1/2,则判定当前从核数量逼近最优从核数量,进入步骤b;
b、缓速调整阶段:根据实时的I/O情况进行缓速调整;对从核分组中的从核数量进行微调的过程。
包括:为从核分组中的从核数量增加1、减少1或者保持不变。
进一步优选的,为了缩短整体的调整时间,急速调整阶段和缓速调整阶段的调整周期应该设置为不同,默认的缓速调整周期为50微秒。急速调整阶段的调整周期可适当缩短,默认急速调整阶段的调整周期设定为缓速调整阶段调整周期的1/2。
进一步优选的,过于频繁的调整各分组内从核的数量,不利于程序的稳定、高效运行,不必要的从核数量调整应当避免。因此,应该设定从核数量的调整阈值,包括增加从核数量阈值和减少从核数量阈值。当分组的I/O吞吐量增加量相比于上一周期超过增加从核数量的I/O吞吐量阈值A2时,增加分组内从核的数量1;当分组的I/O吞吐量相比于上一周期减少超过减少从核数量的I/O吞吐量阈值A1时,减少分组内从核的数量1;否则,保持分组内从核的数量不变。
本发明的有益效果为:
1、申威众核处理器的硬件架构特殊,“存储墙”问题在申威众核处理器会更加突出,核组内的主核和64个从核都需要从内存中存取数据,核组内I/O能力和处理器性能之间的矛盾更加凸显。本发明在一定程度上缓解了申威众核处理器核组内I/O能力和处理器性能之间的矛盾。
2、本发明将多个无程序上下文依赖关系的程序段放在一个核组内同时执行,减少了对spawn和join核组线程的需要次数,提高了程序的执行效率。
3、本发明具体设计了一种基于申威众核处理器的核组内分组自适应调整运行方法,此种方法可以根据实际从核的运行程序,动态的分组调整从核阵列中从核的运行数量,使得程序既能够充分利用申威众核处理器核组的I/O能力,又不会导致从核阵列计算资源的浪费。
4、本发明提出了一种基于申威众核处理器的从核阵列可分组调整算法,可以根据每个分组在不同周期I/O吞吐量的变化实时的调整每个分组的从核数量。
附图说明
图1为现有的申威众核处理器的硬件结构图;
图2为本发明基于申威众核处理器的核组内分组自适应调整运行方法示意图;
图3为本发明申威众核处理器核组内从核阵列分组监控示意图;
图4为本发明申威众核处理器从核阵列可分组调整算法流程图;
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种基于申威众核处理器的核组内分组自适应调整运行方法,如图2所示,椭圆形标识为编程人员可控,方形标识为本方法设计功能。运行于计算机上,包括步骤如下:
(1)对核组的资源进行分组:当从核阵列只接收了一个程序段或接收了多个有程序上下文依赖关系的程序段,则不进行从核阵列的数量分组,程序段可调整的从核数量上限为64个从核,否则,如果从核阵列接收了n个无程序上下文依赖关系的程序段,n>1,则将从核阵列中的64个从核平均分成n组,分别分配给这n个程序段;例如,从核阵列接收了两个无程序上下文依赖关系的程序段,则将从核阵列平均分为两组,每个程序段可调整的从核数量的上限为32个从核;
本方法针对编程人员对从核程序的定义对核组资源进行分组。例如,当前从核阵列中同时运行有两个无程序上下文依赖关系的程序段,可以将其放入同一核组内同时运行。
(2)监控从核阵列运行状态、从核阵列的分组I/O情况,从核阵列的运行状态,表示从核阵列中64个从核的实时运行情况,每个从核的实时运行情况表现为“忙”或者“空闲”两种状态之一;从核阵列的分组I/O情况,表示步骤(1)的每个分组在固定周期内的I/O吞吐量;并将监控获得的监控信息,包括从核阵列运行状态和从核阵列的分组I/O情况,传送给从核阵列可分组调整算法;具体包括从核的实时运行情况和周期内的I/O吞吐量;
(3)通过从核阵列可分组调整算法对监控信息进行实时评估,是指:将当前周期的I/O吞吐量跟上一周期的I/O吞吐量进行对比评估,评估结果为I/O吞吐量增加、I/O吞吐量减小或者I/O吞吐量不变;
从核阵列可分组调整算法所需的配置信息包括初始从核数量、调整周期、调整I/O吞吐量的阈值、单次调整从核数量,可以选择默认设定的值,也可以由编程人员根据具体程序更改默认设定的值。初始从核数量,表示步骤(1)分配给每个分组使用的从核的数量,默认设定为2。调整周期,表示调整分组从核数量的时间;可以由编程人员根据程序具体执行时间进行设定,默认调整周期设定为50微秒。调整I/O吞吐量的阈值,用百分比表示,如果I/O吞吐量增加或者减少的变化值超过调整I/O吞吐量的阈值即进行调整,调整I/O吞吐量的阈值包括减少从核数量的I/O吞吐量阈值A1及增加从核数量的I/O吞吐量阈值A2,I/O吞吐量相比于上一周期减少A1时,即减少分组内的从核数量,I/O吞吐量相比于上一周期增加A2时,即增加分组内的从核数量;
单次调整从核数量是指调整分组从核数量时每次增加或减少的分组的从核数量;
根据评估结果,对n个无程序上下文依赖关系的程序段使用的从核数量进行实时调整;
(4)周期性的执行上述步骤(1)至步骤(3),使被调整的n个无程序上下文依赖关系的程序段达到核组内从核计算资源利用率和I/O带宽利用率的均衡,即在调整后的多个周期内,I/O吞吐量的变化均不超过调整I/O吞吐量的阈值,并且各个分组使用从核的数量不变。I/O吞吐量和各个分组的从核数量都达到相对稳定的状态。具体如图2所示,椭圆形标识为编程人员可控,方形标识为本方法设计功能。
A1默认设定为5%,即I/O吞吐量相比于上一周期减少5%时,即减少分组内的从核数量;A2默认设定为2%,即I/O吞吐量相比于上一周期增加2%时,即增加分组内的从核数量。
在急速调整阶段,单次调整分组内从核的数量默认值为4,在缓速调整阶段,单次调整分组内从核的数量默认值为1。
实施例2
根据实施例1所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,步骤(2),监控从核阵列运行状态、从核阵列的分组I/O情况,以组为单位进行,如图3所示,包括步骤如下:
A、为了不影响程序段运行的负载均衡,具备监控功能的从核不进行具体程序处理。每个分组设置一个监控从核,其它从核为处理从核;例如,如果将从核分组数量设置为1,即不进行从核分组,则使用0号从核进行监控;如果将从核分组数量设置为2,即将从核分为两组,每组运行不同的程序段,每组可以控制32个从核。第一程序段使用0号从核对1~31号从核进行监控,第二程序段使用32号从核对33~63号从核进行监控。
B、监控从核实时监控本从核分组内各个从核的I/O吞吐量,即在调整周期内监控各个从核读入和写回的数据量;
设置从核阵列的吞吐量I/O保存数组,每个处理从核将各自的I/O吞吐量累加到数组中对应从核核号的存储单元;因各个从核操作的为同一数组的不同存储单元,所以不需要进行数组互斥操作。各个从核具体累加的数据为从核使用athread_get和athread_put的数据量,读入和写回数据量的累加分别在athread_get和athread_put之后完成;
C、监控从核周期性的提取保存在数组中的I/O吞吐量,跟上一周期的I/O吞吐量进行比对,根据比对结果,通过从核阵列可分组调整算法对各个从核分组的使用从核数量进行调整。
通过从核阵列可分组调整算法对各个从核分组的使用从核数量进行调整,如图4所示,包括步骤如下:申威众核处理器的从核阵列拥有丰富的计算资源,单个核组可利用的从核数量为64个。如果让每个从核分组中从核数量从1开始逐步递增(例如从核数量+1),增长会相对缓慢,可能需要很长时间才会达到从核分组I/O情况的极值。因此,需要将从核分组中的从核数量由少到多的进行调整,但是调整的时间不易过长。
a、急速调整阶段:在程序段开始运行时期,将从核数量先急速调整到逼近最优从核数量。以从核阵列可分组调整算法所需的配置信息的默认值为例。
包括:如果跟上一周期的分组的I/O吞吐量相对比,当前周期分组的I/O吞吐量增加10%及以上时,则急速提升分组的从核数量,将该分组的从核数量单次增加4;重新执行步骤a;如果跟上一周期的分组的I/O吞吐量进行比对,当前周期分组的I/O吞吐量增加小于10%或者达到了急速调整阶段设定的最大从核数量,急速调整阶段设定的最大从核数量为从核分组可调数量的1/2,则判定当前从核数量逼近最优从核数量,进入步骤b;
b、缓速调整阶段:根据实时的I/O情况进行缓速调整;对从核分组中的从核数量进行微调的过程。
包括:为从核分组中的从核数量增加1、减少1或者保持不变。
为了缩短整体的调整时间,急速调整阶段和缓速调整阶段的调整周期应该设置为不同,默认的缓速调整周期为50微秒。急速调整阶段的调整周期可适当缩短,默认急速调整阶段的调整周期设定为缓速调整阶段调整周期的1/2。
过于频繁的调整各分组内从核的数量,不利于程序的稳定、高效运行,不必要的从核数量调整应当避免。因此,应该设定从核数量的调整阈值,包括增加从核数量阈值和减少从核数量阈值。当分组的I/O吞吐量增加量相比于上一周期超过增加从核数量的I/O吞吐量阈值A2时,增加分组内从核的数量1;当分组的I/O吞吐量相比于上一周期减少超过减少从核数量的I/O吞吐量阈值A1时,减少分组内从核的数量1;否则,保持分组内从核的数量不变。
本实施例使用了基于Regional Ocean Modeling System(ROMS)的drifter算例,用来模拟胶州湾M2分潮驱动的正压水动力场,步数ntimes设置为10240步。利用申威众核处理器中的一个核组进行了测试。海洋模式程序Regional Ocean Modeling System(ROMS)的程序热点程序为其中的step2d.f90文件,其中具有多个可优化程序段。本实施例为选取了其中的A和B两个程序段进行了测试。程序段A和程序段B为无程序上下文依赖关系的程序段,可以同时放入一个核组内运行,测试方法为测试两个程序段原始主核程序运行时间,采用原优化方法的并行程序运行时间、程序段加速比、总加速比,采用本实施例方法的并行程序运行时间和总加速比。
具体测试数据如表1所示:
表1
Figure BDA0002118886990000091
由表1可知,采用原优化方法优化后,程序段A和程序段B的加速比分别为2.88x和3.20x,总加速比为3.07x。采用本实施例的方法后,相对于原程序,总加速比为3.49x;相对于原优化方法,本发明方法将加速比提升了13.68%。因此,本发明的方法对程序效率有明显的提升作用。

Claims (7)

1.一种基于申威众核处理器的核组内分组自适应调整运行方法,运行于计算机上,其特征在于,包括步骤如下:
(1)对核组的资源进行分组:当从核阵列只接收了一个程序段或接收了多个有程序上下文依赖关系的程序段,则不进行从核阵列的数量分组,程序段可调整的从核数量上限为64个从核,否则,如果从核阵列接收了n个无程序上下文依赖关系的程序段,n>1,则将从核阵列中的64个从核平均分成n组,分别分配给这n个程序段;
(2)监控从核阵列运行状态、从核阵列的分组I/O情况,从核阵列的运行状态,表示从核阵列中64个从核的实时运行情况,每个从核的实时运行情况表现为“忙”或者“空闲”两种状态之一;从核阵列的分组I/O情况,表示步骤(1)的每个分组在固定周期内的I/O吞吐量;
(3)通过从核阵列可分组调整算法对监控信息进行实时评估,是指:将当前周期的I/O吞吐量跟上一周期的I/O吞吐量进行对比评估,评估结果为I/O吞吐量增加、I/O吞吐量减小或者I/O吞吐量不变;
从核阵列可分组调整算法所需的配置信息包括初始从核数量、调整周期、调整I/O吞吐量的阈值、单次调整从核数量,初始从核数量,表示步骤(1)分配给每个分组使用的从核的数量,调整周期,表示调整分组从核数量的时间;调整I/O吞吐量的阈值,用百分比表示,如果I/O吞吐量增加或者减少的变化值超过调整I/O吞吐量的阈值即进行调整,调整I/O吞吐量的阈值包括减少从核数量的I/O吞吐量阈值A1及增加从核数量的I/O吞吐量阈值A2,I/O吞吐量相比于上一周期减少A1时,即减少分组内的从核数量,I/O吞吐量相比于上一周期增加A2时,即增加分组内的从核数量;
单次调整从核数量是指调整分组从核数量时每次增加或减少的分组的从核数量;
根据评估结果,对n个无程序上下文依赖关系的程序段使用的从核数量进行实时调整;
(4)周期性的执行上述步骤(1)至步骤(3),使被调整的n个无程序上下文依赖关系的程序段达到核组内从核计算资源利用率和I/O带宽利用率的均衡,即在调整后的多个周期内,I/O吞吐量的变化均不超过调整I/O吞吐量的阈值,并且各个分组使用从核的数量不变。
2.根据权利要求1所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,其特征在于,A1默认设定为5%,即I/O吞吐量相比于上一周期减少5%时,即减少分组内的从核数量;A2默认设定为2%,即I/O吞吐量相比于上一周期增加2%时,即增加分组内的从核数量。
3.根据权利要求1所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,其特征在于,在急速调整阶段,单次调整分组内从核的数量默认值为4,在缓速调整阶段,单次调整分组内从核的数量默认值为1。
4.根据权利要求1所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,其特征在于,所述步骤(2),监控从核阵列运行状态、从核阵列的分组I/O情况,以组为单位进行,包括步骤如下:
A、每个分组设置一个监控从核,其它从核为处理从核;
B、监控从核实时监控本从核分组内各个从核的I/O吞吐量,即在调整周期内监控各个从核读入和写回的数据量;
设置从核阵列的吞吐量I/O保存数组,每个处理从核将各自的I/O吞吐量累加到数组中对应从核核号的存储单元;各个从核具体累加的数据为从核使用athread_get和athread_put的数据量,读入和写回数据量的累加分别在athread_get和athread_put之后完成;
C、监控从核周期性的提取保存在数组中的I/O吞吐量,跟上一周期的I/O吞吐量进行比对,根据比对结果,通过从核阵列可分组调整算法对各个从核分组的使用从核数量进行调整。
5.根据权利要求1所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,其特征在于,通过从核阵列可分组调整算法对各个从核分组的使用从核数量进行调整,包括步骤如下:
a、急速调整阶段:在程序段开始运行时期,将从核数量先急速调整到逼近最优从核数量;包括:如果跟上一周期的分组的I/O吞吐量相对比,当前周期分组的I/O吞吐量增加10%及以上时,则急速提升分组的从核数量,将该分组的从核数量单次增加4;重新执行步骤a;如果跟上一周期的分组的I/O吞吐量进行比对,当前周期分组的I/O吞吐量增加小于10%或者达到了急速调整阶段设定的最大从核数量,急速调整阶段设定的最大从核数量为从核分组可调数量的1/2,则判定当前从核数量逼近最优从核数量,进入步骤b;
b、缓速调整阶段:根据实时的I/O情况进行缓速调整;包括:为从核分组中的从核数量增加1、减少1或者保持不变。
6.根据权利要求5所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,其特征在于,急速调整阶段的调整周期设定为缓速调整阶段调整周期的1/2。
7.根据权利要求5或6所述的一种基于申威众核处理器的核组内分组自适应调整运行方法,其特征在于,根据实时的I/O情况进行缓速调整,是指:当分组的I/O吞吐量增加量相比于上一周期超过增加从核数量的I/O吞吐量阈值A2时,增加分组内从核的数量1;当分组的I/O吞吐量相比于上一周期减少超过减少从核数量的I/O吞吐量阈值A1时,减少分组内从核的数量1;否则,保持分组内从核的数量不变。
CN201910599786.6A 2019-07-04 2019-07-04 一种基于申威众核处理器的核组内分组自适应调整运行方法 Active CN112181894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910599786.6A CN112181894B (zh) 2019-07-04 2019-07-04 一种基于申威众核处理器的核组内分组自适应调整运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910599786.6A CN112181894B (zh) 2019-07-04 2019-07-04 一种基于申威众核处理器的核组内分组自适应调整运行方法

Publications (2)

Publication Number Publication Date
CN112181894A CN112181894A (zh) 2021-01-05
CN112181894B true CN112181894B (zh) 2022-05-31

Family

ID=73915130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910599786.6A Active CN112181894B (zh) 2019-07-04 2019-07-04 一种基于申威众核处理器的核组内分组自适应调整运行方法

Country Status (1)

Country Link
CN (1) CN112181894B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190984B (zh) * 2021-04-21 2022-10-14 中国海洋大学 水下声场模型bellhop并行实现方法
CN117632520A (zh) * 2024-01-25 2024-03-01 山东省计算中心(国家超级计算济南中心) 基于申威众核处理器的主从核监测交互的计算量调度方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095583A (zh) * 2016-06-20 2016-11-09 国家海洋局第海洋研究所 基于新神威处理器的主从核协同计算编程框架
WO2017110619A1 (ja) * 2015-12-21 2017-06-29 Kddi株式会社 マルチコアcpuを有するパケット転送装置の制御装置及びコンピュータ可読記憶媒体
CN106933777A (zh) * 2017-03-14 2017-07-07 中国科学院软件研究所 基于国产申威26010处理器的基2一维fft的高性能实现方法
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
US9910711B1 (en) * 2017-07-17 2018-03-06 Tmaxsoft. Co., Ltd. Method and computing device for managing size of thread pool dynamically
CN108509270A (zh) * 2018-03-08 2018-09-07 中国科学院软件研究所 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法
CN109189720A (zh) * 2018-08-22 2019-01-11 曙光信息产业(北京)有限公司 层次化片上网络拓扑结构及其路由方法
CN109445850A (zh) * 2018-09-19 2019-03-08 成都申威科技有限责任公司 一种基于申威26010处理器的矩阵转置方法及系统
CN109491791A (zh) * 2018-11-09 2019-03-19 华东师范大学 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417848B2 (en) * 2007-11-20 2013-04-09 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for implementing multiple service processing functions
US8789065B2 (en) * 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US10459517B2 (en) * 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017110619A1 (ja) * 2015-12-21 2017-06-29 Kddi株式会社 マルチコアcpuを有するパケット転送装置の制御装置及びコンピュータ可読記憶媒体
CN106095583A (zh) * 2016-06-20 2016-11-09 国家海洋局第海洋研究所 基于新神威处理器的主从核协同计算编程框架
CN106933777A (zh) * 2017-03-14 2017-07-07 中国科学院软件研究所 基于国产申威26010处理器的基2一维fft的高性能实现方法
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
US9910711B1 (en) * 2017-07-17 2018-03-06 Tmaxsoft. Co., Ltd. Method and computing device for managing size of thread pool dynamically
CN108509270A (zh) * 2018-03-08 2018-09-07 中国科学院软件研究所 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法
CN109189720A (zh) * 2018-08-22 2019-01-11 曙光信息产业(北京)有限公司 层次化片上网络拓扑结构及其路由方法
CN109445850A (zh) * 2018-09-19 2019-03-08 成都申威科技有限责任公司 一种基于申威26010处理器的矩阵转置方法及系统
CN109491791A (zh) * 2018-11-09 2019-03-19 华东师范大学 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曹仰杰 等.众核处理器系统核资源动态分组的自适应调度算法.《软件学报》.2012,(第2期),第240-252页. *

Also Published As

Publication number Publication date
CN112181894A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
Kandalla et al. Designing power-aware collective communication algorithms for InfiniBand clusters
CN112181894B (zh) 一种基于申威众核处理器的核组内分组自适应调整运行方法
CN111079921A (zh) 一种基于异构分布式系统的高效神经网络训练调度方法
CN111027708A (zh) 一种面向分布式机器学习的参数通信优化方法
CN110084363B (zh) 一种基于fpga平台的深度学习模型加速方法
KR102110812B1 (ko) 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
CN102622273A (zh) 基于自学习负载预测的集群按需启动方法
Wei et al. Throughput optimization for streaming applications on CPU-FPGA heterogeneous systems
US20130080809A1 (en) Server system and power managing method thereof
Padoin et al. Saving energy by exploiting residual imbalances on iterative applications
CN113535409A (zh) 一种面向能耗优化的无服务器计算资源分配系统
CN110222007B (zh) 一种基于申威众核处理器的加速运行方法
Zhang et al. Toward qos-awareness and improved utilization of spatial multitasking gpus
Zhao et al. CODA: Improving resource utilization by slimming and co-locating DNN and CPU jobs
CN116028193B (zh) 一种混部集群的大数据任务动态高能效调度方法和系统
CN110850957B (zh) 一种边缘计算场景下通过休眠降低系统功耗的调度方法
CN105353865A (zh) 基于多处理器的动态调频方法
Chen et al. MRSIM: mitigating reducer skew In MapReduce
CN109144693B (zh) 一种功率自适应任务调度方法及系统
CN106896895A (zh) 一种基于aov网关键路径查询的异构系统动态功耗优化方法
Liu et al. An energy efficient clustering-based scheduling algorithm for parallel tasks on homogeneous DVS-enabled clusters
CN114356588B (zh) 一种数据预加载方法和装置
CN110308991B (zh) 一种基于随机任务的数据中心节能优化方法及系统
Zhao et al. Dependency-based energy-efficient scheduling for homogeneous multi-core clusters
CN110415162B (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