CN109213684B - 基于OpenMP线程心跳检测技术的程序检测方法及应用 - Google Patents

基于OpenMP线程心跳检测技术的程序检测方法及应用 Download PDF

Info

Publication number
CN109213684B
CN109213684B CN201811086985.9A CN201811086985A CN109213684B CN 109213684 B CN109213684 B CN 109213684B CN 201811086985 A CN201811086985 A CN 201811086985A CN 109213684 B CN109213684 B CN 109213684B
Authority
CN
China
Prior art keywords
thread
heart rate
heartbeat
openmp
current
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
CN201811086985.9A
Other languages
English (en)
Other versions
CN109213684A (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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201811086985.9A priority Critical patent/CN109213684B/zh
Publication of CN109213684A publication Critical patent/CN109213684A/zh
Application granted granted Critical
Publication of CN109213684B publication Critical patent/CN109213684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

本发明公开了基于OpenMP线程的环形拓扑心跳检测方法与应用,解决现有技术条件下不能有效检测基于OpenMP并行技术中各个线程程序运行状态等问题。当检测到某一线程初始化时,以该线程的线程号为基础建立线程结构体;当线程启动时,记录线程初始时间戳,倘若该线程运行期间满足预定义时间间隔,系统就记录一次该线程产生的心率值,并判断当前线程是否处于正常运行、挂起、忙等、正常退出、异常退出等状态。此外,本方法可绘制线程心率曲线,远程监视心率变化。本方法设计API函数并注入主程序,以环形链表的方式进行心跳状态检测,相比于传统的集中式检测方法,本方法无需生成额外的中心检测线程,优化了系统运行效率,提高检测的准确性。

Description

基于OpenMP线程心跳检测技术的程序检测方法及应用
技术领域
本发明涉及OpenMP并行技术领域。更具体地,涉及一种基于OpenMP并行技术下线程的环形拓扑心跳检测方法与应用。
背景技术
随着计算机技术的广泛应用,在大数据计算与特征分析领域中,在大规模的分层架构和异构硬件之间通常会涉及成百上千的用于并行性计算的进程或线程。这两种程序在其长时间运行过程中,很可能会出现各种异常而导致运行的进程或线程序故障。这些故障很可能是由于硬件错误或者软件错误引起,它们也可以是永久的或短暂的故障。永久性故障的产生原因主要来自CPU、内存或其他硬件,而瞬态故障通常无法追溯,通常会潜移默化地影响着程序执行的正确性。特别地,瞬态故障原因或多或少与设备暴露噪声有关,例如寄存器中某位反转。
在超级计算机中,进行复杂、强力计算很可能会导致环境过载、内存溢出等异常状况,致使程序故障变得频繁,以至于很难确保计算结果的正确性。永久(或硬)性故障可以暂停应用程序执行,而瞬态(软)故障通常会默默发生、影响着计算结果的正确性。通过程序的负载开销和心率检测,根据经验,通常程序负载开销率在30%以下且具有稳定的心率,一般情况下可以确保程序计算的正确性,其余为良性缺陷。据报道,超级计算机的平均故障间隔时间(MTBF),在几小时到几天之间,未来亿亿级超级计算机的预测故障率大约为几分钟或几小时。在多线程应用程序中,API调用,如函数:pthread kill(tid,0),只能检查线程是活跃还是死亡。如果线程处于挂起状态,则上述API函数调用将失去功能。在多线程应用程序中,有一些问题需要解决。例如,当在一个线程中发生致命错误时,CPU将对其核心进行转储,并且所有其他线程将被终止。同样,我们需要知道一个线程的状态,例如挂起,死亡或活跃。特别地,在OpenMP并行技术中很少有可以报告线程状态检测的工具。
近年来,计算机技术、大数据技术的广泛应用,计算机系统的可靠性成为越来越重要的话题,对于那些执行关键业务的计算机,被要求以较高的可靠性运行。倘若其在运行过程出现宕机状况无法追溯或与所供给数据之间出现偏差,都会造成巨大损失。所以,通过API提供函数操作,动态检测软件主程序线程的心率值,进而研究线程的可靠性,成为了当前研究的热点。心跳监控技术使用日益增多。心跳机制是高可用集群的基础技术,心跳监控技术可以周期性地检测集群中结点的工作状态,动态检测节点工作状态的趋势并记录。当程序节点的工作状态发生异常时,其可以动态地通知系统软件或为用户报告运行时刻的故障,提醒使用者进行系统或软件参数修正,保证程序的可靠性。
在方法的设计中,采取了基于环型拓扑的心跳检测机制,同时也被引入以支持OpenMP程序运行,通过模拟人行动时产生的心跳为基准,进而通过线程活动的频次来验证线程活跃状态,通过心跳线程与初始化线程运行时间的差值来检测心跳运行的负载。以上述内容为基础,实现了线程的心跳检测方法,并完成一套基于OpenMP并行技术下的线程心率检测的软件,并进行线程状态报告。
发明内容
本发明一个目的在于提供一种基于OpenMP线程的环形拓扑心跳检测方法,用于在OpenMP并行技术下对主程序线程进行心率检测应用。
本发明以OpenMP并行技术为基础,在多线程环境下通过环形检测机制动态检测每一个线程的运行状态,通过设定的时间间隔阈值,动态记录每一个线程产生的心率。在当前线程生成心率并记录后,紧接着通过运行状态模板对当前线程的后继邻居线程进行状态检测,并报告线程状态。
一种基于OpenMP线程的环形拓扑心跳检测方法,其特征在于,所述方法包括以下步骤:
1)将环形心跳应用接口程序注入主程序中;
2)初始化OpenMP参数,获得当前线程,初始化多线程结构体;
3)当线程满足时间周期数时,记录当前线程心率信息;时间周期指10的整数倍迭代所消耗的时间;
4)基于环形拓扑的心跳检测机制,以当前线程为检测线程,向其环中后继邻居线程进行状态检测,返回其邻居线程对应工作状态;
5)当线程对象达到时间周期数数时,将当前线程的心率状态信息写入文档并清空日志信息,完成一轮周期心率记录;时间周期指 10的整数倍迭代所消耗的时间;
6)检测程序是否运行完毕,倘若没有跳转3);
7)通过网页端可视化当前运行线程的局部心率图、全局心率图、历史心率图,进行当前线程的心率分析;
8)通过观察线程心率波形图,根据心率波形图的波动状态来分析线程程序运行的可靠性和当前系统负载状态。
应用接口程序由本心跳程序提供,是相对于主程序而言的第三方检测程序,用以检测OpenMP下主程序产生线程的心率波形图;其主要有五个核心API函数,为OpenMP线程心跳初始化API函数、OpenMP线程心率生成API函数、OpenMP线程心跳环形检测API 函数、OpenMP线程心跳状态检测API函数、OpenMP线程空间释放API函数;
OpenMP线程心跳初始化API函数的主要功能:初始化顺序和环形心跳线程数据结构、初始化系统线程参数及相关操作;
OpenMP线程心率生成API函数的主要功能:确定当前时间戳,通过当前时间戳获得某一线程的初始启动时间;当程序满足预定义心跳条件时,记录当前线程的心跳次数和结束时间戳,用此来计算当前线程的心率;
OpenMP线程环形心跳检测API函数的主要功能:以环形数据结构的基础,将当前线程作为检测线程,动态检测其邻居线程的工作状态;
OpenMP线程状态检测API函数的主要功能:根据当前线程的心率、始末状态参数来判断当前线程的工作状态;当线程状态不稳定时,并响应异常;
OpenMP线程空间释放API函数的主要功能:释放动态生成的线程指针及内部动态数据指针和文档指针,防止内存溢出。
使用了基于累积时间戳差值和累积心跳次数来计算平均心率的方法,其主要是检测当前线程周期内的平均心率;
累计方法主要是通过从当前线程初始化开始到该线程周期结束,累计线程心跳次数及时间差值来计算当前线程心率;
每当线程满足心跳条件时,记录一次线程心率信息;当线程节拍数达到一个周期时,将线程文档指针对应的心率信息写入文件并释放当前线程的文档指针;心率信息包括:节拍号、线程号、迭代数、时间戳差值、心率。采用这种方式,可以更好的减少由于系统负载不稳定、内存溢出或线程延时等所产生的误差,使得线程心率能向一个固定值逐渐收敛,保证线程心率的准确性。
当某一线程完成心率信息生成后,以当前线程对象为检测线程,以环状结构为检测基础,动态检测当前线程后继线程的工作状态;
所述方法的主要计算原理:
a、线程心率的记录:
1)心率初始时间点获取:
clock_gettime(CLOCK_REALTIME,&time1)
heartbeat_count=0
first_timestamp=time1
2)满足给定时间阈值条件后结束时间点获取:
clock_gettime(CLOCK_REALTIME,&time2)
heartbeat_count=heartbeat+1
last_timestamp=time2
3)心率计算:
Δtime=first_timestamp-last_timestamp
Figure GDA0001837815290000041
4)周期循环:
if heartbeat_count>=1000:
L_Heartbeat_flush_buffer()
initial_heartbeat()
其中:
clock_gettime(CLOCK_REAL,time)为获取当前时间的API函数,时间戳值赋予time参数;
heartbeat_count为心跳数;
first_timestamp为线程启动的初始时间戳;
last_timestamp为单个线程周期结束时的结束时间戳;
Heartbeat_rate为心率;
Δtime为线程的初始时间和结束时间戳的差值;
L_Heartbeat_flush_buffer()为将当前线程的心率信息写入文件并释放文档指针的API函数。
Initial_heartbeat()为初始化当前线程的心跳结构体。
b、环形拓扑检测机制
以环形链表的方式进行心跳状态检测,当第一个线程触发检测机制时,在完成心率检测功能后,会对其后继邻居节点进行状态扫描,确认其运行状态,并进行对应操作处理。倘若下一个邻居节点不为第一个线程,继续检测当前线程的下一个邻居线程状态。以此为设计思想,类推多线程环境下,线程所能实现的功能,本方法以环状拓扑的实现结构,将线程的作用拓广成既是心率的产生者,又是其他线程运行状态的检测者。
本发明的另一个目的在于提供一种应用上述方法的可视化软件,该方法以上述API注入程序为基础,通过软件对线程写入的心跳分析,并以动态可视化的方式绘制线程心率曲线,远程监控线程心率变化,为对主软件程序线程进行可靠性研究提供便利。
为达到上述目的,本发明采用下述方法:
1)获取每个线程所记录的心率信息文件。
2)通过网页端可视化线程的局部心率图、全局心率图、历史心率图,用以进行特定线程的心率分析;
3)通过观察线程心率波形图,根据心率波形图的波动状态来分析线程程序运行的可靠性和当前系统负载状态。
在OpenMP并行技术环境下,本发明实现了线程环形拓扑心跳检测方法,并创造性的实现了以提供API注入为核心的对主测程序进行细微改造方法,并通过网站可视化检测的方式,让使用者无需下载客户端应用即可对主测程序的线程进行远程监控。
本发明的有益效果如下:
本发明采用了基于OpenMP线程的环形拓扑心跳检测方法,以 API注入的形式引入主测程序,对并行计算的线程进行心率检测及工作状态分析,并通过软件绘制线程心率图。通过分析线程心率曲线图,能够了解线程在运行过程中状态、异常心率点及其他因素对线程运行状态的影响,以此进而分析主测程序线程的可靠性。本发明所实现的方法所具有以下有益效果:1)把不可见的程序执行过程转化为可视化的模拟人类心率的监视过程;2)具有可视化动态心率图展示,便于进一步对主程序可靠性进行分析。本软件可以运行在超级计算机大规模共享内存环境下,进一步提升了OPenMP程序运行状态的检测能力。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1为本发明表示用于展示线程的环形拓扑心跳检测方法的设计图。
图2为本发明表示用于心跳拓扑程序的API接口表。
图3为本发明表示L_Heartbeat_OpenMP_Generate()函数的工作流程图。
图4为本发明表示L_Heartbeat_OpenMP_Monitor()函数的工作流程图。
图5为本发明表示环形拓扑心跳检测设计的示意图。
图6为本发明表示环形拓扑心跳检测实现的示意图。
图7为本发明表示程序头文件注入过程的示意图。
图8为本发明表示L_Heartbeat_OpenMP_Init()函数注入过程的示意图。
图9为本发明表示L_Heartbeat_OpenMP_generate()和L_Heartbeat_OpenMP_Monitor()函数注入过程的示意图。
图10为本发明表示L_Heartbeat_OpenMP_Finished()函数注入的示意图。
图11为本发明表示网站可视化线程心率局部和全局的示意图。
图12为本发明表示网站可视化线程心率历史全局的示意图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
本发明基于OpenMP并行技术,在主测程序中注入本方法所实现的API函数,来对由主程序产生的线程进行心率检测并记录、工作状态检测并提示,完成动态监控线程的运行状态的功能,进而实现一个能在OpenMP并行环境下,动态监控线程运行心率的方法。
本发明中,一种用于OpenMP并行技术下的线程心跳检测方法,该方法主要包括线程心跳生成条件阈值判断与线程心率计算及记录模块、环形拓扑检测机制与线程状态检测模块。线程心跳生成条件阈值判断是以线程的单位时间运算量为基础,当线程每完成固定阈值量的计算后,线程产生一次心跳,这是线程心跳产生的必要条件。线程心率计算是以线程心跳数与线程从初始时到结束时时间戳的差值做比,表示线程单位时间内的产生的心跳数。环形拓扑检测机制是以环形结构为基础,以循环模型为理念,是使得当前线程能与其它所有线程进行通信的关键方法。线程状态检测是以线程的心率、迭代数、状态量等为基础,对线程状态进行判断并输出提示的方法。
本发明的基本设计思想,如图1所示,主程序所产生的每一个线程相当于一个圆形结点,每一个圆形节点都与其后继的线程节点连接,形成环状关系结构。在线程运行的过程中,每一个线程节点会产生一个心率值,并以此生成该线程所对应的心率图。在生成心率图后,该线程将会对其后继节点进行工作状态检测,判断其后继状态。当发现邻居线程异常时,切断其与邻居线程的关系,并与邻居节点的后继线程状态连接并继续检测。以此类推,形成一个线程心率环状的检测网络,此方法提高系统运行效率及心率监控的实时性。
本程序设计思想是以注入应用程序接口为特点,具体主要接口函数表见图2所示的心跳拓扑程序的API接口表。
下面对本发明中的主要模块接口做进一步地解析:
1)线程心跳生成条件阈值判断与线程心率计算及记录接口,即L_Heartbeat_OpenMP_Generate(参数)。
该接口的工作流程图如图三所示,其主要实现在多线程下对每一个线程进行心跳生成,并计算及记录线程心率。
a、线程心跳生成条件阈值判断
通过迭代数iter与阈值的模的值来判断当前工程线程是否能产生心跳。
由于线程在运行过程中,其单次运算所产生状态的变化浮动巨大。
所以,以阈值模为限制,以一定阈值量的运算为基础条件,来产生心跳,可以更加精准的计算线程心率的值及其心率波动状况。
具体计算策略为:
if iter%threshold==0:
generate_heartbeat();
其中:
iter表示迭代数;
threadhold表示阈值;
generate_heartbeat()表示线程生成心跳。
b、线程心率的计算及记录
通过记录线程的心跳次数与线程心跳运行的始末时间戳差值,来确定当前线程运行的心率值。具体计算策略如下:
①线程心率初始时间点获取:
clock_gettime(CLOCK_REALTIME,&time1)
heartbeat_count=0
first_timestamp=time1
②满足给定时间阈值条件后获取线程结束时间点:
clock_gettime(CLOCK_REALTIME,&time2)
heartbeat_count=heartbeat+1
last_timestamp=time2
③线程心率计算:
Δtime=first_timestamp-last_timestamp
Figure GDA0001837815290000081
④达到固定周期循环时,记录心率信息:
if heartbeat_count>=1000:
L_Heartbeat_flush_buffer()
initial_heartbeat()
其中:
clock_gettime(CLOCK_REAL,time)为获取当前时间的API 函数,时间戳值赋予time参数;
heartbeat_count为心跳数;
first_timestamp为线程启动的初始时间戳;
last_timestamp为单个线程周期结束时的结束时间戳;
Heartbeat_rate为心率;
Δtime为线程的初始时间和结束时间戳的差值;
L_Heartbeat_flush_buffer()为将当前线程的心率信息写入文件并释放文档指针的API函数。
Initial_heartbeat()为初始化当前线程的心跳结构体。
2)环形拓扑检测机制与线程状态检测接口,即
L_Heartbeat_OpenMP_Monitor(参数)
该接口函数的工作流程图如图4所述,主要涉及环形拓扑检测和线程状态检测的实现方法。
如图5所示,为环形拓扑心跳检测设计的示意图。图中,每一个节点
代表一个工作线程。通过把若干个工作线程以环状拓扑结构进行排布,使得线程能在环上以循环的思维继续动态检测,达到线程能持续检测其他线程的效果。如图6所示,为上述方法的具体实施过程示意图。将线程号为N+1的线程作为检测线程,通过环状拓扑结构展开,模拟成顺序链表形式,以当前线程为中心,动态检测其后继的某一个其他线程的工作状态,并作出相应的反馈。
Figure GDA0001837815290000091
Figure GDA0001837815290000101
如上述enum状态模板所示,我们可以根据enum所对应的值,来确定当前线程的工作状态。在心率生成前后,我们通过记录线程心率计算前的状态st和心率计算后的状态last_st,通过对比心率及当前线程心率计算始末的状态来判别,当前线程的工作状态。
下面结合一个具体实施例进行应用说明
以基于OpenMP并行技术下实现的Benchmark程序NPB: CG_STRING作为主程序,测试该主程序线程所产生的心率图。
1)方法所实现的程序API函数注入介绍。
Figure GDA0001837815290000102
如上述所示,以四个API函数为主要注入函数,对OpenMP并行技术下的线程进行监控。接口函数分别为L_Heartbeat_OpenMP_Init()、L_Heart_OpenMP_generate(parameter)、L_Heartbeat_OpenMP_Monitor(para)、L_Heartbeat_OpenMP_Finished()。API函数介绍见图2。在实施例中,以上述注入规则为基础,对CG_STRING主程序的进行API函数注入,注入过程如图7、8、9、10所示。
函数接口注入后,通过终端执行脚本来启动主程序。本实施例所用脚本为exec.sh,内容如下:
Figure GDA0001837815290000111
执行脚本后,可以看到注入到主程序中的API函数发挥作用,报告线程工作状态并生成对应线程的心率信息文件。
打开网站动态监视线程心率生成状况,如图11、12所示。从图 11中,可以观察到主程序产生的每一个线程的局部心率图和全局心率图;从图12中,可以观察到所点击线程的全局心率变化曲线,该心率图可以动态缩放视观测范围的大小,从全局进一步观察到其对应的局部心率的内容。通过观察可视化的心率图,可以对线程的运行规律及特性进行分析,进而对程序运行可靠性进行分析。
综上所述,本发明实现了基于OpenMP线程的环形拓扑心跳检测方法,以API函数注入的形式引入主测程序,对并行计算的线程进行心率检测及工作状态分析,并通过可视化网站绘制线程心率图。通过分析线程心率曲线图,能够了解线程在运行过程中状态、异常心率点及其他因素对线程运行状态的影响,以此进而分析主测程序线程的可靠性。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

Claims (2)

1.一种基于OpenMP线程的环形拓扑心跳检测方法,其特征在于,所述方法包括以下步骤:
1)将环形心跳应用接口程序注入主程序中;
2)初始化OpenMP参数,获得当前线程,初始化多线程结构体;
3)当线程满足时间周期数时,记录当前线程心率信息;时间周期指10的整数倍迭代所消耗的时间;
4)基于环形拓扑的心跳检测机制,以当前线程为检测线程,向其环中后继邻居线程进行状态检测,返回其邻居线程对应工作状态;
5)当线程对象达到时间周期数时,将当前线程的心率状态信息写入文档并清空日志信息,完成一轮周期心率记录;
6)检测程序是否运行完毕,倘若没有跳转3);
7)通过网页端可视化当前运行线程的局部心率图、全局心率图、历史心率图,进行当前线程的心率分析;
8)通过观察线程心率波形图,根据心率波形图的波动状态来分析线程程序运行的可靠性和当前系统负载状态;
应用接口程序由本心跳程序提供,是相对于主程序而言的第三方检测程序,用以检测OpenMP下主程序产生线程的心率波形图;有五个核心API函数,为OpenMP线程心跳初始化API函数、OpenMP线程心率生成API函数、OpenMP线程心跳环形检测API函数、OpenMP线程心跳状态检测API函数、OpenMP线程空间释放API函数;
OpenMP线程心跳初始化API函数的功能:初始化顺序和环形心跳线程数据结构、初始化系统线程参数及相关操作;
OpenMP线程心率生成API函数的功能:确定当前时间戳,通过当前时间戳获得某一线程的初始启动时间;当程序满足预定义心跳条件时,记录当前线程的心跳次数和结束时间戳,用此来计算当前线程的心率;
OpenMP线程环形心跳检测API函数的功能:以环形数据结构的基础,将当前线程作为检测线程,动态检测其邻居线程的工作状态;
OpenMP线程状态检测API函数的功能:根据当前线程的心率、始末状态参数来判断当前线程的工作状态;当线程状态不稳定时,并响应异常;
OpenMP线程空间释放API函数的功能:释放动态生成的线程指针及内部动态数据指针和文档指针,防止内存溢出。
2.根据权利要求1所述的检测方法,其特征在于,使用了基于累积时间戳差值和累积心跳次数来计算平均心率的方法,检测当前线程周期内的平均心率;
累计方法是通过从当前线程初始化开始到该线程周期结束,累计线程心跳次数及时间差值来计算当前线程心率;每当线程满足心跳条件时,记录一次线程心率信息;当线程节拍数达到一个周期时,将线程文档指针对应的心率信息写入文件并释放当前线程的文档指针;心率信息包括:节拍号、线程号、迭代数、时间戳差值、心率。
CN201811086985.9A 2018-09-18 2018-09-18 基于OpenMP线程心跳检测技术的程序检测方法及应用 Active CN109213684B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811086985.9A CN109213684B (zh) 2018-09-18 2018-09-18 基于OpenMP线程心跳检测技术的程序检测方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811086985.9A CN109213684B (zh) 2018-09-18 2018-09-18 基于OpenMP线程心跳检测技术的程序检测方法及应用

Publications (2)

Publication Number Publication Date
CN109213684A CN109213684A (zh) 2019-01-15
CN109213684B true CN109213684B (zh) 2022-01-28

Family

ID=64984597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811086985.9A Active CN109213684B (zh) 2018-09-18 2018-09-18 基于OpenMP线程心跳检测技术的程序检测方法及应用

Country Status (1)

Country Link
CN (1) CN109213684B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451046B (zh) * 2016-05-30 2020-11-17 腾讯科技(深圳)有限公司 一种检测线程的方法及终端
CN112104528B (zh) * 2020-11-19 2021-02-19 北京智芯微电子科技有限公司 检测心跳的通信方法、系统、设备及存储介质
CN112905372A (zh) * 2021-02-02 2021-06-04 浙江大华技术股份有限公司 线程的异常诊断方法及装置
CN113225219B (zh) * 2021-03-17 2022-08-26 陕西云长信息科技有限公司 一种服务器监测用心跳数据采集存储方法
CN113642007B (zh) * 2021-08-30 2023-12-26 京东方科技集团股份有限公司 代码验证方法、可联网的终端设备及可读存储介质
CN114817075B (zh) * 2022-06-21 2022-09-13 远江盛邦(北京)网络安全科技股份有限公司 一种进程间心跳检测方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634601B1 (en) * 2001-06-29 2009-12-15 Emc Corporation Method and apparatus for providing continuous communications between computers
CN103246589A (zh) * 2012-02-03 2013-08-14 京信通信系统(中国)有限公司 一种多线程的监控方法及装置
CN104320311A (zh) * 2014-11-20 2015-01-28 国电南京自动化股份有限公司 一种scada分布式平台下的心跳检测方法
CN105045566A (zh) * 2015-08-13 2015-11-11 山东华宇航天空间技术有限公司 一种嵌入式并行计算系统及采用其的并行计算方法
CN106940671A (zh) * 2016-01-05 2017-07-11 阿里巴巴集团控股有限公司 一种集群中任务线程运行的监控方法、装置及系统
CN108449239A (zh) * 2018-06-19 2018-08-24 广州视源电子科技股份有限公司 心跳包检测方法、装置、设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243023B (zh) * 2015-11-24 2017-09-26 无锡江南计算技术研究所 并行运行时错误检测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634601B1 (en) * 2001-06-29 2009-12-15 Emc Corporation Method and apparatus for providing continuous communications between computers
CN103246589A (zh) * 2012-02-03 2013-08-14 京信通信系统(中国)有限公司 一种多线程的监控方法及装置
CN104320311A (zh) * 2014-11-20 2015-01-28 国电南京自动化股份有限公司 一种scada分布式平台下的心跳检测方法
CN105045566A (zh) * 2015-08-13 2015-11-11 山东华宇航天空间技术有限公司 一种嵌入式并行计算系统及采用其的并行计算方法
CN106940671A (zh) * 2016-01-05 2017-07-11 阿里巴巴集团控股有限公司 一种集群中任务线程运行的监控方法、装置及系统
CN108449239A (zh) * 2018-06-19 2018-08-24 广州视源电子科技股份有限公司 心跳包检测方法、装置、设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HBTM: A Heartbeat-based Behavior Detection Mechanism for POSIX Threads and OpenMP Applications;Weidong Wang;《https://arxiv.org/abs/1512.00665》;20151202;第1页左栏第1-2段,右栏第5段,第二页左栏第4段,右栏第4段,第3页右栏第3段,第4页右栏第1段,图1-2,4-5,表2 *

Also Published As

Publication number Publication date
CN109213684A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
CN109213684B (zh) 基于OpenMP线程心跳检测技术的程序检测方法及应用
US10013332B2 (en) Monitoring mobile application performance
Gainaru et al. Fault prediction under the microscope: A closer look into HPC systems
US6807583B2 (en) Method of determining causal connections between events recorded during process execution
Tan et al. Visual, log-based causal tracing for performance debugging of mapreduce systems
US20090320021A1 (en) Diagnosis of application performance problems via analysis of thread dependencies
Bronevetsky et al. AutomaDeD: Automata-based debugging for dissimilar parallel tasks
US9367428B2 (en) Transparent performance inference of whole software layers and context-sensitive performance debugging
WO2019110121A1 (en) Fault injection system and method of fault injection
WO2016178661A1 (en) Determining idle testing periods
Cotroneo et al. Enhancing failure propagation analysis in cloud computing systems
Marra et al. Out-Of-Place debugging: a debugging architecture to reduce debugging interference
Li et al. Effectively manifesting concurrency bugs in android apps
Pacheco Postmortem debugging in dynamic environments
CN115981999A (zh) 一种程序并发缺陷检测方法、装置、存储介质及电子设备
JP2018163656A (ja) 追跡データ表現
Okanović et al. Towards adaptive monitoring of Java EE applications
US20160299786A1 (en) Code examination by scheduler timeline manipulation
Mohror et al. Trace profiling: Scalable event tracing on high-end parallel systems
Schmidt et al. Frameworks: Why they are important and how to apply them effectively
Junior et al. Performance analysis using automatic grouping
Pan et al. Blind Men and the Elephant: Piecing together Hadoop for diagnosis
Falai et al. Quantitative evaluation of distributed algorithms using the neko framework: The nekostat extension
Chen et al. An Empirical Study to Identify Software Aging Indicators for Android OS
Huselius et al. Starting conditions for post-mortem debugging using deterministic replay of real-time systems

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