一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于程序性能计数的异常进程快速定位方法与流程

2022-03-26 02:40:56 来源:中国专利 TAG:


1.本发明涉及一种基于程序性能计数的异常进程快速定位方法,属于程序调试技术领域。


背景技术:

2.程序调试是程序开发的重要环节,由于资源的限制,开发人员通常仅在中小规模并行环境下展开应用的编程、测试,使用调试器跟踪调试程序解决绝大部分错误,测试正确后进行大规模下的生产执行。
3.更大问题规模、更高精度的科学应用模拟,要求更大的程序并行规模。超大规模并行下,程序出现扩展错误,即在中小规模并行环境下测试执行正确,而扩展至生产执行的大规模乃至超计算机整机规模时运行出错。此外,异构计算使得编程模型更加复杂,调试程序的难度急剧增加,调试大规模并行程序将占用大量计算资源,并且需要丰富的调试经验。
4.通常的调试技术是,先使用轻量级错误定位工具初步定位异常进程,再使用重量级的全功能调试器精确定位错误原因。轻量级调试工具有效实现了高可扩展,能够扩展至几十万进程乃至更高并行规模,它在程序正确时获取程序的部分状态信息(如进程栈路径、mpi调用日志等),建模分析发现程序的规律,并在生产执行中探测违反规律的行为,实现异常进程探测。但是,生产执行中插桩获取信息的方法,将对程序行为产生干扰,一些非确定性的错误将不能捕获,同时带来程序开销,降低性能,一些对计算性能敏感的用户将不愿使用。
5.拥有数千万计算核心的超级计算机系统广泛服务于各个领域,生产中超大规模并行应用执行时发生的错误将严重影响工程进展,调试超大规模并行程序极具挑战。开发人员对面向e级、高可扩展的自动化调试分析技术的需求不断增加,能够快速定位异常进程对后续深入的跟踪调试分析极其重要。
6.ddt、totalview等并行调试器经过良好的设计,可以扩展至一定并行规模,对并行程序进行调试,但是面对并行规模超过千万核心量级的应用,并行调试器不再有效。一方面,并行调试器的中心化控制、交互式的机制使得其难以有效扩展至超大规模;另一方面,程序中的通信、同步等进程间交互使得错误在进程间快速传播,开发人员往往难以从超大规模并行程序中复杂的进程间交互信息和海量的状态信息中获取有效信息。


技术实现要素:

7.本发明的目的是提供一种基于程序性能计数的异常进程快速定位方法,其有效提高了开发人员的调试开发效率、提升了系统资源利用率。
8.为达到上述目的,本发明采用的技术方案是:提供一种基于程序性能计数的异常进程快速定位方法,包括以下步骤:s1、用户提交应用作业;s2、作业调度器在启动应用作业的同时,在每个任务对应的处理器上初始化预设
的硬件性能计数器;s3、若程序正常执行直至结束,则基于性能计数器实现的性能计数不对程序产生干扰;s4、若程序执行错误,则启动错误定位处理流程:s41、通过作业管理系统,获取步骤s1提交应用作业的作业信息,所述作业信息包括并行任务所处的各个计算节点的信息、并行任务的编号、并行任务与计算节点的映射信息;s42、调用维护管理系统接口,根据步骤s41取得的作业信息,将需要采集数据的计算节点按系统中板分组,并行地将各分组的采集请求发送到对应中板的管理服务板,管理服务板再将分组内的请求并行地发送到各个bmc;s43、连接计算节点的bmc,获取到步骤s42中发起的请求,旁路计算任务和操作系统,直接通过处理器的维护接口与处理器核心通信,采集到各处理器核心的性能数据;s44、基于步骤s43取得的性能计数,进行层次化的错误定位:基于主核进程及从核线程特征生成进程特征,使用进程特征对进程组聚类,定位异常进程;对异常进程中的所有线程再次进行聚类,定位异常线程;s45、报告异常任务,用于进一步展开精确的错误原因定位。
9.由于上述技术方案的运用,本发明与现有技术相比具有下列优点:本发明满足了用户在生产执行中工具对正确执行的程序无干扰的需求,同时提供了面向e级、高可扩展的自动化调试分析手段,有效提高了开发人员的调试开发效率、提升了系统资源利用率。
附图说明
10.附图1为本发明一种基于程序性能计数的异常进程快速定位方法的示意图。
具体实施方式
11.实施例:本发明提供一种基于程序性能计数的异常进程快速定位方法,包括以下步骤:s1、用户提交应用作业;s2、作业调度器在启动应用作业的同时,在每个任务对应的处理器上初始化预设的硬件性能计数器;s3、若程序正常执行直至结束,则基于性能计数器实现的性能计数不对程序产生干扰;s4、若程序执行错误,则启动错误定位处理流程:s41、通过作业管理系统,获取步骤s1提交应用作业的作业信息,所述作业信息包括并行任务所处的各个计算节点的信息、并行任务的编号、并行任务与计算节点的映射信息;s42、调用维护管理系统接口,结合系统组织结构,基于层次化的并行数据采集接口,与连接计算节点的bmc通信,高可扩展地快速数据收集:
根据步骤s41取得的作业信息,将需要采集数据的计算节点按系统中板分组,并行地将各分组的采集请求发送到对应中板的管理服务板,管理服务板再将分组内的请求并行地发送到各个bmc;s43、连接计算节点的bmc,获取到步骤s42中发起的请求,旁路计算任务和操作系统,直接通过处理器的维护接口与处理器核心通信,采集到各处理器核心的性能数据;s44、基于步骤s43取得的性能计数,进行层次化的错误定位:基于主核进程及从核线程特征生成进程特征,使用进程特征对进程组聚类,定位异常进程;对异常进程中的所有线程再次进行聚类,定位异常线程;s45、报告异常任务,用于进一步展开精确的错误原因定位。
12.对上述实施例的进一步解释如下:本发明提出一种基于大规模并行程序性能计数的异常进程快速定位方法,它在硬件设置轻量级状态探针,通过处理器提供的记录程序执行状态的性能计数器,高效采集具有时序特性的性能数据,实现数据采集过程对程序无干扰;同时,软硬件协同设计的思路使得方法可以有效扩展到超大规模,基于性能特征的层次化错误定位方法实现快速地自动定位大规模并行程序中的异常任务;满足了在应用正确执行时对程序性能不产生干扰,大规模并行程序发生异常后,能够快速定位错误任务的需求,实现了高可扩展、快速的错误定位,有效提高了开发人员的调试开发效率、提升了系统资源利用率。
13.具体流程如下:1)用户提交执行作业后,作业调度器在启动应用作业的同时,在每个任务对应的处理器上初始化预设的硬件性能计数器;2)若程序正常执行直至结束,则基于硬件的性能计数不对程序产生干扰;3)若程序执行错误,则启动错误定位处理流程:a)通过作业调度器,获取到作业信息,如并行任务所处的各个计算节点的信息;b)启动计算节点上的bmc,通过维护接口与处理器核心通信,旁路计算任务和操作系统,采集到各进程、线程的性能数据(如l1 icache、dcache、dma等行为的计数),实现对程序的无干扰;c)通过维护管理网络,结合系统组织结构,基于层次化的并行数据采集接口,实现高可扩展地快速数据收集;d)基于性能计数,进行层次化的错误定位:首先基于进程及线程特征,定位异常线程;然后从异常进程的线程中定位异常线程;e)报告异常任务,开发人员进一步展开精确的错误原因定位。
14.采用上述一种基于程序性能计数的异常进程快速定位方法时,其满足了用户在生产执行中工具对正确执行的程序无干扰的需求,同时提供了面向e级、高可扩展的自动化调试分析手段,有效提高了开发人员的调试开发效率、提升了系统资源利用率。
15.为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:超大规模并行机:通过高速互连网络连接的由众多独立计算节点组成的系统,每个计算节点包含独立的cpu、内存和操作系统,所有计算节点通过挂载分布式共享存储的方式使用同一套存储。
16.跟踪调试:开发人员使用调试器控制程序,跟踪代码行执行,获取程序执行中间状态,分析执行路径、变量值与预期的差异,发现程序异常,定位错误根源。
17.性能计数器:处理器性能监测单元(pmu,performance monitoring unit)的模块,由处理器提供,用于监测程序执行事件并计数。
18.作业调度器:是作业管理系统的重要组成部分,其功能为在等待运行的作业中尽可能公平和高效地选择最合适的作业去调度运行,以满足用户课题实时运行需求,提高系统资源利用率。
19.bmc(baseboard management controller):是指被监管计算节点主板上的一个特殊服务处理器,它不依赖于计算节点上的处理器、bios或操作系统来工作,在操作系统不响应或未加载的情况下仍然可以进行开关机、信息提取等操作,并通过独立的连接与系统管理员通信。
20.维护管理网络:是指用来维护和管理超级计算机的网络系统,一般采用延时较低的以太网构建。
21.上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献