用于地球物理高性能计算的进程分析方法及系统技术领域
本发明涉及地震勘探领域,更具体地,涉及一种用于地球物理高性能计算
的进程分析方法及系统。
背景技术
在地震勘探领域,随着勘探对象日趋复杂,对勘探地震资料的处理的需求
也不断提高,已越来越多地应用安装有多种地震资料处理应用软件的地球物理
高性能集群系统对各种地震资料进行处理。高性能集群通过将多台机器连接起
来同时处理复杂的计算问题,高性能集群具有大规模、廉价,高性能的特点,
在提供给用户高性能的计算能力的同时,也给系统管理员对集群的管理带来了
复杂性。
发明人发现,目前集群管理还停留在系统管理员察看数据和事件并做出判
断的阶段,给高性能集群的使用造成了庞大的管理开销。因此,有必要开发一
种能够采集并分析高性能集群的所有进程的方法及系统。
公开于本公开背景技术部分的信息仅仅旨在加深对本公开的一般背景技术
的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人
员所公知的现有技术。
发明内容
本公开提出了一种用于地球物理高性能计算的进程分析方法及系统,其能
够通过对高性能集群中的多个用户进程数据进行采集和分析,并在同一页面中
进行展示,便于系统管理员对用户进程查看和管理,降低了集群管理的复杂性。
根据本公开的一方面,提出了一种用于地球物理高性能计算的进程分析方
法。所述方法可以包括:采集高性能集群中的多个用户进程数据;对所采集的
多个用户进程数据进行分析,获得相应的报表数据;以及在同一页面中对报表
数据进行展示。
根据本公开的另一方面,提出了一种用于地球物理高性能计算的进程分析
系统,所述系统可以包括:用于采集高性能集群中的多个用户进程数据的单元;
用于对所采集的多个用户进程数据进行分析,获得相应的报表数据的单元;以
及用于在同一页面中对报表数据进行展示的单元。
本公开的方法和装置具有其它的特性和优点,这些特性和优点从并入本文
中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图
和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本
公开的特定原理。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以
及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,
相同的参考标号通常代表相同部件。
图1示出了根据本公开的用于地球物理高性能计算的进程分析方法的步骤
的流程图。
图2示出了根据本公开的一个实施例的采集用户进程数据的架构的示意图。
图3示出了根据本公开的一个应用示例的采集用户进程数据的流程的示意
图。
图4a和4b示出了根据本公开的一个实施例的用户进程运行情况的展示页
面的示意图。
图5示出了根据本公开的一个实施例的用户进程分布情况的展示页面的的
示意图。
图6示出了根据本公开的一个实施例的进程信息检索的展示页面的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本
公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里
阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,
并且能够将本公开的范围完整地传达给本领域的技术人员。
实施例1
图1示出了根据本公开的用于地球物理高性能计算的进程分析方法的步骤
的流程图。
在该实施例中,根据本公开的用于地球物理高性能计算的进程分析方法可
以包括:步骤101,采集高性能集群中的多个用户进程数据;步骤102,对所采
集的多个用户进程数据进行分析,获得相应的报表数据;以及步骤103,在同一
页面中对报表数据进行展示。
该实施例通过对高性能集群中的多个用户进程数据进行采集和分析,并在
同一页面中进行展示,便于系统管理员对用户进程查看和管理,降低了集群管
理的复杂性。
下面详细说明根据本公开的用于地球物理高性能计算的进程分析方法的具
体步骤。
采集用户进程数据
在一个示例中,可以采集高性能集群中的多个用户进程数据。
图2示出了根据本公开的一个实施例的采集用户进程数据的架构的示意图。
在实践中,进程可以是程序的一个具体实现,是执行程序的过程,一个程序可
以执行多次,每次都可以在内存中开辟独立的空间来装载,从而产生多个进程。
在一个示例中,可以通过底层的PCNT采集程序,以一定的时间间隔采集一
次用户的进程数据,比如可以采集用户进程所运行的主机名称、进程ID、CPU
利用率、内存利用率、运行时间、进程名称、用户名称、进程的开始时间等。
采集时间间隔可以为10s-60s,优选地,采集时间间隔可以为30s。通过进程数据
的采集架构,可以对采集过程中的各种参数进行设置,对采集到的数据进行管
理、分类和处理。如图2所示,进程数据采集的架构(Pcnt Loader(Psvr))可以
包括数据载入(Loader)管理、数据载入配置、数据载入监控以及数据队列等。
其中,数据载入管理可以包括收集端服务启停、载入服务启停等管理项目;数
据载入配置可以包括端口、采集频率以及开启/关闭等配置项目;数据载入监控
可以包括状态监控、性能监控等监控项目;数据队列可以包括数据缓存、数据
库连接以及数据入库等项目。
如上所述,可以采集高性能集群中的多个用户进程的各项进程数据。
获得报表数据
在一个示例中,可以对所采集的多个用户进程数据进行分析,获得相应的
报表数据。
对于采集的多个用户进程数据,可以按照设定的算法进行分析过滤。在实
践中,可以根据运维经验数据制定相关的规则对采集的进程数据进行过滤分析,
生成相关报表,从而可以通过报表数据了解高性能集群的目前利用情况。例如,
可以分析不同集群的使用情况并生成相应的报表,从而可以查看哪些集群的资
源使用率较高,哪些集群的资源使用率较低,从而可以进一步调整各个集群的
进程数量,使得资源利用更加均衡。例如,还可以分析用户进程的使用效率并
生成相应的报表,从而可以查看哪些用户进程效率较高。
在一个示例中,可以根据所展示的报表数据,对高性能集群中出现的危险
进程进行报警。其中,通过对所采集的多个用户进程数据进行分析,还可以对
集群中出现的危险进程进行报警,例如,如果用户进程中存在删除数据的进程,
则可以作为危险进程进行报警,将其置顶并高亮显示,提醒系统管理员注意。
具体地,可以通过Pushlet实现对报表数据的生成和推送。Pushlet是一种comet
实现,而comet是基于网络协议HTTP长连接的“服务器推送”技术。Pushlet的实
现过程可以为:在服务器端程序(Servlet)的机制下,数据从服务器(server)
端的Java对象直接推送(push)到(动态)HTML页面,而无需任何Java applet
或者插件的帮助。Pushlet使服务器端可以周期性地更新客户(client)的网页(web)
页面,这与传统的请求/应答(request/response)方式相悖。原则上,Pushlet框架
能够运行在任何支持servlet的服务器上、防火墙的后面。当在客户中使用
JavaScript/DHTML时,Pushlet提供了通过脚本快速建立应用、使用HTML/CSS
特性集成和布局新内容。
展示报表数据
在一个示例中,可以在同一页面中对所述报表数据进行展示。
在一个示例中,对报表数据进行展示可以包括:通过网页形式展示所述报
表数据。通过网页的形式,可以将高性能集群内的用户进程运行情况,资源使
用情况,以及用户进程分布情况提供给系统管理员。
在一个示例中,报表数据可以包括:用户进程运行情况、资源使用情况,
以及用户进程分布情况等。
图4a、图4b示出了根据本公开的一个实施例的用户进程运行情况展示页面
的示意图,其中,图4a示出了集群进程总览,图4b示出了进程运行状态总览。
在图4a中,示出了集群进程对资源的使用情况所占的百分比,例如,HP为74.9%,
IBMGPU为7.7%,IBMCUP为16.8%,INSPURMIC为0.6%。在图4b中,示出
了处于不同的运行状态的各个用户进程所占的百分比,例如,正在运行的进程
为61.3%,中断的进程为37.8%,而不可中断的进程为0.9%。
图5示出了根据本公开的一个实施例的用户进程分布情况的展示页面的的
示意图。如图5所示,在一个示例中,可以查看各个用户的进程数量和运行时
间最多的多个进程,例如,可以显示进程数量和运行时间最多的10个进程。
图6示出了根据本公开的一个实施例的进程信息检索的展示页面的示意图。
如图6所示,在一个示例中,可以对进程信息进行检索。可以通过输入进程ID、
用户名称、CPU利用率、内存利用率等关键词进行检索,以获得想要查看的用
户进程。
在一个示例中,根据本公开的用于地球物理高性能计算的进程分析方法还
可以包括:根据所展示的报表数据,在发生故障的情况下,对发生故障的用户
进程数据进行定位。系统管理员可以精准地了解整个高性能集群的作业运行情
况,如果某个作业意外中断,或者某个作业超时,系统管理员可以快速找到该
作业的相关信息(比如什么时候提交,什么时候中断,在哪些节点上运行,作
业所占系统资源等),这样就可以让系统管理员快速的判断是什么原因导致用户
作业中断或异常。
应用示例
为便于理解本发明实施例的方案及其效果,以下给出一个具体应用示例。
本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非
意在以任何方式限制本发明。
图3示出了根据本公开的一个实施例的采集用户进程数据的流程的示意图。
如图3所示,在该应用示例中,服务器端的端口可为192.168.1.100:50001。首先
可以在服务器上创建监听进程socket(socketWatch),其仅用来监听客户端的连
接,不进行通信。然后绑定监听端口,设置监听队列,通过WatchConneting方
法监听客户端连接。其中,socket是目前使用比较广泛的一种通信技术。本领域
技术人员应当理解,可以采用本领域已知的各种常规方法来实现对客户端的连
接的监听。
可以通过Connect方法为每个客户端生成一个端口号,例如在图3中的客户
端A、客户端B及客户端C。然后,为监听到的每个通信套接字(socket)创建
一个单独的通信线程,用来监听客户端发送过来的消息,例如对图3中的客户A、
客户B及客户C各创建一个通信线程。
通过上述方式,可以完成对用户进程数据的采集。
本领域技术人员应理解,上面对本公开的实施例的描述的目的仅为了示例
性地说明本公开的实施例的有益效果,并不意在将本公开的实施例限制于所给
出的任何示例。
实施例2
根据本公开的实施例,提供了一种用于地球物理高性能计算的进程分析系
统,所述系统可以包括:用于采集高性能集群中的多个用户进程数据的单元;
用于对所采集的多个用户进程数据进行分析,获得相应的报表数据的单元;以
及用于在同一页面中对所述报表数据进行展示的单元。
该实施例通过对高性能集群中的多个用户进程数据进行采集和分析,并在
同一页面中进行展示,便于系统管理员对用户进程查看和管理,降低了集群管
理的复杂性。
在一个示例中,报表数据可以包括:用户进程运行情况、资源使用情况,
以及用户进程分布情况。
在一个示例中,对报表数据进行展示可以包括:通过网页形式展示报表数
据。
在一个示例中,根据本公开的用于地球物理高性能计算的进程分析系统还
可以包括:用于根据所展示的报表数据,在发生故障的情况下,对发生故障的
用户进程数据进行定位的单元。
在一个示例中,根据本公开的用于地球物理高性能计算的进程分析系统还
可以包括:用于根据所展示的报表数据,对高性能集群中出现的危险进程进行
报警的单元。
本领域技术人员应理解,上面对本公开的实施例的描述的目的仅为了示例
性地说明本公开的实施例的有益效果,并不意在将本公开的实施例限制于所给
出的任何示例。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括
计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机
可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令
的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、
磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合
适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携
式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可
编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压
缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编
码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合
适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如
无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波
(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个
计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载
到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传
输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设
备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计
算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构
(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、
或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语
言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语
言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计
算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分
在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上
执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包
括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计
算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过
利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑
电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可
以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流
程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方
框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编
程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机
或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的
一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令
存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/
或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个
制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的
各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、
或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一
系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数
据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方
框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计
算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图
中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段
或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有
些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺
序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以
按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图
中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能
或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的
组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,
并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的
情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场
中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各
实施例。