投稿指南
一、本刊要求作者有严谨的学风和朴实的文风,提倡互相尊重和自由讨论。凡采用他人学说,必须加注说明。 二、不要超过10000字为宜,精粹的短篇,尤为欢迎。 三、请作者将稿件(用WORD格式)发送到下面给出的征文信箱中。 四、凡来稿请作者自留底稿,恕不退稿。 五、为规范排版,请作者在上传修改稿时严格按以下要求: 1.论文要求有题名、摘要、关键词、作者姓名、作者工作单位(名称,省市邮编)等内容一份。 2.基金项目和作者简介按下列格式: 基金项目:项目名称(编号) 作者简介:姓名(出生年-),性别,民族(汉族可省略),籍贯,职称,学位,研究方向。 3.文章一般有引言部分和正文部分,正文部分用阿拉伯数字分级编号法,一般用两级。插图下方应注明图序和图名。表格应采用三线表,表格上方应注明表序和表名。 4.参考文献列出的一般应限于作者直接阅读过的、最主要的、发表在正式出版物上的文献。其他相关注释可用脚注在当页标注。参考文献的著录应执行国家标准GB7714-87的规定,采用顺序编码制。

利用LSF API实现高性能计算机集群的机时统计

来源:计算机时代 【在线投稿】 栏目:期刊导读 时间:2020-08-03
作者:网站采编
关键词:
摘要:近年来,由于高性能计算在科学研究、国防建设以及科技发展中的重要作用[1],国内对高性能计算机集群的建设兴趣有增无减。上海、无锡、广州等地纷纷建立了超级计算中心,国家
近年来,由于高性能计算在科学研究、国防建设以及科技发展中的重要作用[1],国内对高性能计算机集群的建设兴趣有增无减。上海、无锡、广州等地纷纷建立了超级计算中心,国家也先后在天津、深圳、长沙、济南等地建立了国家超级计算中心。高校和科研院所也不断地增加高性能计算方面的投入[2-8]。由于各地高性能计算中心或超级计算中心都采取收费政策,因此,准确的计算机时统计信息不仅可以为进行高性能计算的用户提供可靠的计算量数据,也可为超算中心在制定计算服务价格时提供参考。目前,对用户计算机时的统计一般是依赖于LSF、PBS Pro、SGE等作业调度软件提供的计算机时统计功能。然而,这些作业调度软件所提供的计算机时统计功能并不完善,不一定适合高性能计算中心的个性化需求[9-10]。以Platform公司的LSF 7.5为例,其提供的bacct命令只能查询某段时间内用户累计使用的CPU time,而不能提供对应的wall time。因此,若需要以wall time作为计时计费的依据,则会遇到困难,但一些新建的高性能计算中心又的确对这方面有切实的需求。本文将探讨一种利用LSF API实现对用户计算机时(wall time)进行统计的程序设计。 1 机时统计策略 准确可靠的计算机时统计是高性能计算中心实施收费政策的前提。在Linux系统中,有两种较普遍的统计时间的方法:一种是CPU执行程序指令累计所使用的脉冲时间,称之为CPU time;另一种是用计时器(如手表)度量的实际时间,也就是我们日常生活中所使用的时间度量,称之为wallblock time,简称wall time。由此可见,CPU time只代表程序占用CPU的时间,更倾向于反映CPU的使用效率,并不能代表程序真实占用计算资源的时间,因为像进行I/O操作等消耗的时间都不在CPU time的统计范畴。Wall time则反映的是一个程序从开始运行到结束所总共用去的时间。对于通常的作业调度系统策略而言,一旦一个程序占用了一个CPU资源,即使该程序的CPU使用效率接近0 ,该CPU资源也不会释放给其他程序使用。由于计算资源是集群中所有用户共享的,并且计算资源的总量也是有限的。因此,与根据用户程序对CPU的使用效率计费相比,根据用户对计算资源的实际占用时间来计费要显得更加客观和公平。另外,由于作业调度软件自身的局限性,它们对程序CPU time的搜集并不一定准确。比如:对一些嵌套程序就无法统计到CPU time。综上所述,对于一个并行作业,用作业所用的wall time乘以用户占用的计算资源数(通常是CPU数)来计时计费是一种较优的策略。 2 软件设计 由于Platform LSF 7.5的计算机时统计程序bacct本身并不包含对作业wall time的统计,因此,我们必须通过编程手段来实现对用户作业wall time的统计。幸运的是,Platform LSF提供了应用程序接口API,方便我们编程。本文介绍的软件主要由一个C语言程序和一个Shell脚本程序构成。C语言程序负责利用LSF API库函数进行作业wall time和cpu time的统计,是整个软件的核心部分;脚本程序则在调用C语言程序的基础上分析出各个用户在不同时间段所总共占用计算资源的wall time。该软件的框架图见图1。 图1 机时统计软件系统框架图 2.1 LSF API Platform LSF API包含两种类型的库:一是LSLIB,LSF的基础库,为外部应用使用LSF的基础服务提供支持;另一种是LSBLIB,LSF的批处理库,为外部应用提供作业提交、控制、操作等批量处理的服务接口。由于我们的目的是获取作业运行的wall time,无需LSF基础服务的支持,因此只需用到LSBLIB库。本文介绍的程序主要涉及LSBLIB库中的两个数据结构eventRec、jobFinishLog和一个函数lsb_geteventrec(),另有其他三个数据结构jobNewLog、jobStartLog和jobStatusLog可用作对作业其他信息进行统计的参考。函数lsb_geteventrec()需要读取LSF的lsb.events文件,该文件记录了与用户作业有关的关键信息。 在使用LSF API的LSBLIB库函数前,必须进行LSBLIB的初始化。初始化可以通过调用lsb_init()函数来实现,如果调用成功,返回0;否则,返回-1。一般我们会结合lsb_perror()函数将调用不成功的出错信息显示到标准错误终端。整个初始化的过程如下: 2.2 C语言编程 此部分主要是利用lsb_geteventrec()函数来实现对作业从开始到结束的所用时间进行统计,程序设计时涉及多个 C语言头文件,包括:stdio.h、stdl

文章来源:《计算机时代》 网址: http://www.jsjsdzzs.cn/qikandaodu/2020/0803/328.html



上一篇:没有了
下一篇:基于单片机晶振的守时研究

计算机时代投稿 | 计算机时代编辑部| 计算机时代版面费 | 计算机时代论文发表 | 计算机时代最新目录
Copyright © 2021 《计算机时代》杂志社 版权所有
投稿电话: 投稿邮箱: