Cpmd的计算任务的实现方法和装置制造方法

文档序号:6517019阅读:262来源:国知局
Cpmd的计算任务的实现方法和装置制造方法
【专利摘要】本发明公开了一种CPMD的计算任务的实现方法和装置,其中,该实现方法包括:获取用户输入的计算指令;对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。借助于本发明的技术方案,能够实现CPMD的计算任务的实现过程无需通过命令行,只通过基于图形界面的简单的操作,就能完成计算任务,大大降低操作难度,提高执行效率,降低出错概率。
【专利说明】CPMD的计算任务的实现方法和装置
【技术领域】
[0001]本发明涉及科学计算领域,并且特别地,涉及一种CPMD的计算任务的实现方法和
>J-U ρ?α装直。
【背景技术】 [0002]CPMD (Car-Parrinello Molecular Dynamics simulations)是一个用来计算量子系统能量和性质的程序,基于考虑了量子效应的分子动力学方法,同时考虑原子核的运动(牛顿力学)和电子的运动(量子力学),能同时准确模拟物理作用和化学键作用,通常用来处理较小的分子体系(几十个原子)。
[0003]在传统的高性能计算集群环境中,用户要运行CPMD的计算程序,通常需要使用远程字符终端在命令行环境下执行一系列操作,一般有以下几个流程:
[0004]准备好CPMD计算程序的可执行文件、输入文件、数据文件等,这些文件通常需要放置在集群的全局共享存储中,用户一般使用FTP、SFTP等工具向集群上传这些文件,在大多数情况下,用户还需要使用文本编辑工具对输入文件等进行修改。
[0005]确定运行该CPMD计算程序需要的进程数,以及在哪些节点上运行,将这些信息通过命令行参数的方式传递给MPI的进程启动器,如mpirun、mpiexec等,由MPI的进程启动器启动运行该CPMD计算程序。
[0006]CPMD计算程序运行完成后,查看计算结果,或使用FTP、SFTP等工具下载结果文件到本地用户终端,再通过分析软件分析结果。
[0007]以上是直接运行CPMD计算程序的主要流程,实际情况下,用户在高性能计算集群上提交并行计算任务,需要统一使用作业调度软件提供的接口,用户通常还需要再编写一个作业调度脚本,在脚本中申请计算资源,通过这个脚本提交并行计算任务,由作业调度软件来处理任务排队、分配资源、发起并行程序。
[0008]上面介绍了在传统的高性能计算集群环境中,用户运行CPMD计算程序的基本流程,这些流程通常需要在远程字符终端下,通过命令行的方式来实现,对于广大普通用户来说,操作难度大,执行效率低,出错概率大。
[0009]传统执行方式的弊端主要表现在:
[0010]使用难度非常大。想要顺利提交一个CPMD计算任务,用户往往需要非常熟悉很多与其专业背景无关的知识和工具,比如Linux操作系统基本操作、Shell脚本语言、常用的文本编辑和字符处理工具、MPI环境的调用、作业调度软件的使用等等,这些知识或工具的学习曲线非常陡,熟练掌握常常需要花费若干年的时间,这样的使用代价对广大普通用户来说是非常巨大的。
[0011]执行效率低。想要顺利提交一个CPMD计算任务,需要执行多个流程,并使用一些专业工具,需要在命令行环境执行复杂繁琐的操作,从而导致计算任务的提交费时费力,执行效率低下。
[0012]出错概率大。对于大部分普通用户来说,在命令行环境执行复杂繁琐的操作,出现人为操作失误的概率很大,特别是对于操作流程不熟悉的用户,在执行的各个环节均容易遇到问题。
[0013]另外,对于高性能计算集群的管理员来说,对普通用户开放命令行终端,也存在安全性的风险,用户的误操作可能会影响系统的稳定运行,黑客也有可能趁虚而入。
[0014]在现有技术中,虽然存在一些商业计算软件提供自己的并行计算任务通过图形化提交界面进行指令提交,但都是针对个别软件,没有普适性,并且,还需要专门的客户端软件配合完成,与作业调度软件的结合无法实现或存在不同程度的问题。
[0015]针对相关技术中的用户运行CPMD计算程序时需要在远程字符终端下通过命令行的方式来实现,操作难度大,执行效率低,出错概率大的问题,目前尚未提出有效的解决方案。

【发明内容】

[0016]针对相关技术中用户运行CPMD计算程序时需要在远程字符终端下通过命令行的方式来实现,操作难度大,执行效率低,出错概率大的问题,本发明提出一种CPMD计算任务的实现方法和装置,能够使用户无需通过命令行的方式,只通过简单的操作输入计算指令,就能就能实现整个运算过程。
[0017]本发明的技术方案是这样实现的:
[0018]根据本发明的一个方面,提供了一种CPMD的计算任务的实现方法,其特征在于,包括:
[0019]获取用户输入的计算指令;
[0020]对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
[0021]将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
[0022]此外,在执行代入计算参数的语句之前,该实现方法进一步包括:
[0023]判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
[0024]其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
[0025]计算指令的格式、计算指令中计算参数的范围。
[0026]并且,执行代入计算参数的语句之前,该实现方法进一步包括:
[0027]获取用户输入的资源请求指令,对资源请求指令进行解析,得到资源参数,其中,资源参数用于表示用户所请求的资源量;
[0028]将资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
[0029]并且,在执行计算资源调度语句之前,该实现方法进一步包括:
[0030]判断用户输入的资源请求指令是否合法,并在判断结果为否的情况下,禁止执行计算资源调度语句并进行提示;
[0031]其中,判断用户输入的资源请求指令是否合法的条件包括以下至少之一:
[0032]计算资源请求指令的格式、用户所请求的资源量。
[0033]其中,计算资源包括以下至少之一:
[0034]计算节点、CPU核数、计算时长、计算结果的存储路径。[0035]此外,获取用户输入的计算指令包括:
[0036]通过预先提供图形界面,获取用户在图形界面中的参数输入框内输入的计算参数、和/或根据用户在图形界面中的路径输入框内输入的存储路径获取包含计算参数的文件并确定该文件中的输入参数。
[0037]其中,图形界面包括web界面。
[0038]此外,该实现方法进一步包括:
[0039]获取用户输入的断点保护指令;
[0040]调用并执行预先配置的断点保护指令语句,其中,断点保护指令语句用于保存计算过程中的至少一个计算状态。
[0041]根据本发明的另一方面,还提供了一种CPMD的计算任务的实现装置,其特征在于,包括:
[0042]获取模块,用于获取用户输入的计算指令;
[0043]解析模块,用于对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
[0044]执行模块,用于将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
[0045]此外,该实现装置进一步包括:
[0046]判断模块,用于在执行代入计算参数的语句之前,判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
[0047]其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
[0048]计算指令的格式、计算指令中计算参数的范围。
[0049]本发明通过从用户输入的计算指令中解析得到的计算参数和计算类型,并将计算参数代入到预先配置好的与该计算类型相对应的计算命令语句,并执行该计算命令语句,能够使用户只需输入简单的计算指令,无需进行复杂的命令行操作,就能完成计算,降低了用户使用CPMD计算程序的难度,提高了执行效率,降低了出错概率。
【专利附图】

【附图说明】
[0050]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051]图1是根据本发明实施例的CPMD的计算任务的实现方法流程图;
[0052]图2是根据本发明实施例的CPMD的计算任务的实现装置框图;
[0053]图3是根据本发明一个实施例的针对CPMD进行web封装,实现其计算任务的流程图。
【具体实施方式】
[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0055]根据本发明的实施例,提供了一种CPMD的计算任务的实现方法。
[0056]如图1所示,该实现方法包括:
[0057]步骤S101,获取用户输入的计算指令;
[0058]步骤S103,对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
[0059]步骤S105,将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
[0060]此外,在执行代入计算参数的语句之前,该实现方法进一步包括:
[0061]判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
[0062]其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
[0063]计算指令的格式、计算指令中计算参数的范围。
[0064]此外,执行代入计算参数的语句之前,该实现方法进一步包括:
[0065]获取用户输入的资源请求指令,对资源请求指令进行解析,得到资源参数,其中,资源参数用于表示用户所请求的资源量;
[0066]将资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
[0067]并且,在执行计算资源调度语句之前,该实现方法进一步包括:
[0068]判断用户输入的资源请求指令是否合法,并在判断结果为否的情况下,禁止执行计算资源调度语句并进行提示;
[0069]其中,判断用户输入的资源请求指令是否合法的条件包括以下至少之一:
[0070]计算资源请求指令的格式、用户所请求的资源量。
[0071]其中,计算资源包括以下至少之一:
[0072]计算节点、CPU核数、计算时长、计算结果的存储路径。
[0073]此外,获取用户输入的计算指令包括:
[0074]通过预先提供图形界面,获取用户在图形界面中的参数输入框内输入的计算参数、和/或根据用户在图形界面中的路径输入框内输入的存储路径获取包含计算参数的文件并确定该文件中的输入参数。
[0075]其中,图形界面包括web界面。
[0076]此外,该实现方法进一步包括:
[0077]获取用户输入的断点保护指令;
[0078]调用并执行预先配置的断点保护指令语句,其中,断点保护指令语句用于保存计算过程中的至少一个计算状态。
[0079]根据本发明的实施例,还提供了一种CPMD的计算任务的实现装置。
[0080]如图2所示,该实现装置包括:
[0081]获取模块21,用于获取用户输入的计算指令;
[0082]解析模块22,用于对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;[0083]执行模块23,用于将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
[0084]此外,该实现装置进一步包括:
[0085]判断模块(未示出),用于在执行代入计算参数的语句之前,判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
[0086]其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
[0087]计算指令的格式、计算指令中计算参数的范围。
[0088]例如,如图3所示,在一个实施例中,根据本发明的技术方案,针对CPMD计算程序进行了 web封装,并编写了相应软件界面实现具体功能,具体流程如下:
[0089]本web portal界面主要由配置解析器、页面生成器、脚本生成器构成,从打开portal界面到成功提交portal应用,主要经过以下几个流程:
[0090]1.检查系统队列信息,包括队列名、可使用总核数、队列中的作业数、可用节点数等,检查该用户的磁盘配额和计费额度;
[0091]2.针对CPMD,有一个对应的配置文件,里面有相应的页面各项初始值,配置解析器会根据系统和CPMD的实际情况进行配置解析,传递给页面生成器;
[0092]3.页面生成器根据获得的应用信息,组合页面上的模块功能,界面展示给用户;
[0093]4.用户输入应用参数,高级参数,以及选择是否断点保护功能,点击提交;
[0094]5.页面收集该应用提交的信息,包括节点、单节点核心数、网络协议、执行命令、应用所需输入文件等,由脚本生成器提取有用信息,生成Pbs作业脚本;
[0095]6.页面提交该作业脚本到pbs队列中,由作业调度系统接收,并返回作业号。
[0096]通过封装,将CPMD计算程序的任务提交流程隐藏在底层,提供给用户一个简单直观的web界面,用户只需要在web界面上执行简单的操作,例如:输入计算所需参数,选择计算类型,输入计算所需要的资源,选择计算结果的存储路径,等等,本发明的实施例所提供的CPMD计算任务的实现方法和装置,可以获取上述用户输入的计算参数和计算类型,并将获取得到的计算参数代入到预先配置的与该计算类型相对应的计算命令语句,执行该计算命令语句并返回计算结果,而且,用户可以根据自己申请的计算结果的存储路径查看计算结果。
[0097]并且,根据本发明的实施例所提供的CPMD计算任务的实现方法和装置,还可以对用户输入的计算指令进行合法性判断,如果用户输入的计算指令格式不能被预先配置好的计算命令语句识别,则拒绝执行该语句,并发出提示消息,从而避免了用户错误操作或者对软件的恶意攻击。
[0098]此外,在用户申请计算资源的过程中,只需要将欲申请的计算资源的数量、和/或资源类型在相应的文本框中输入,或者在相应的下拉菜单中进行选择,本发明实施例中提供的CPMD计算任务的实现方法可以获取用户输入的资源请求内容,将服务器中的资源进行调度,提供给用户,同时,如果用户所申请的计算资源数量超出了服务器目前能够提供的资源总量,则拒绝用户的申请,并发出提示消息。
[0099]通过上述实施例提供的web封装方法,就能实现数据文件准备、计算资源申请、计算任务提交、计算结果查看等整套流程,无需通过命令行的方式,大大降低用户的使用门槛,提高使用效率,减小出错概率。[0100]在本实施例中,针对CPMD计算程序进行web封装,为用户带来全新的使用方式,效果主要体现在:
[0101]1.大大降低使用难度。用户不再需要熟练掌握Linux操作系统基本操作、Shell脚本语言、常用的文本编辑和字符处理工具、MPI环境的调用、作业调度软件等与其专业背景无关的知识和工具,就能轻松完成CPMD计算任务的准备、执行等工作,大大降低了使用门槛。
[0102]2.大大提高使用效率。繁琐复杂的命令行操作全部隐藏在底层,在底层自动批量执行,可以节省大量的人为操作时间,提高使用效率。
[0103]3.提高任务提交的成功率。根据实施例所提供的web封装方法,会对用户在web界面提交的参数和数据进行不同纬度的合法性检查。比如,检查用户申请的计算资源是否超过其权限,用户输入的参数是否合法,用户的输入文件格式是否正确等,如果判断出错误,会在web界面给出相应提示,通过这些合法性检查可以大大提高并行任务提交的成功率。
[0104]4.轻松实现复杂功能。CPMD计算程序运行时的一些复杂或高级功能,比如计算网络的选择,启动CPU进程绑定等,如果通过命令行方式需要指定复杂的参数,操作繁琐,使用难度较大,进行web封装后,用户只需要通过web界面上的一些选项框就能实现这些功倉泛。
[0105]5.提高高性能计算集群的使用安全性。将普通用户的任务提交操作封装在web界面后,用户执行的都是封闭式的操作,很大程度上避免了影响系统稳定或安全的用户非法操作。
[0106]综上所述,借助于本发明的上述技术方案,通过获取用户在图形界面中的参数输入框内输入的计算指令、和/或资源申请指令,并将从指令中解析得到的参数信息代入到相应的命令语句,并执行该命令语句,能够使CPMD的计算任务的实现过程无需通过命令行,大大降低操作难度,提高执行效率,降低出错概率,并且,通过对用户输入信息的合法性判断,能够很好地保证CPMD计算程序的安全稳定运行。
[0107]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种用于计算量子系统能量和性质的程序CPMD的计算任务的实现方法,其特征在于,包括: 获取用户输入的计算指令; 对所述计算指令进行解析,确定计算的类型以及所述计算指令中包含的计算参数;将所述计算参数代入到预先配置的与所述计算类型对应的计算命令语句中,并执行该计算命令语句。
2.根据权利要求1所述的实现方法,其特征在于,在执行代入计算参数的语句之前,所述实现方法进一步包括: 判断所述用户输入的计算指令是否合法,并在所述判断的结果为否的情况下,禁止执行计算命令语句并进行提示; 其中,判断所述用户输入的计算指令是否合法的条件包括以下至少之一: 所述计算指令的格式、所述计算指令中计算参数的范围。
3.根据权利要求1所述的实现方法,其特征在于,执行代入计算参数的语句之前,所述实现方法进一步包括: 获取用户输入的资源请求指令,对所述资源请求指令进行解析,得到资源参数,其中,所述资源参数用于表示用户所请求的资源量; 将所述资源参数 代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
4.根据权利要求3所述的实现方法,其特征在于,在执行计算资源调度语句之前,所述实现方法进一步包括: 判断所述用户输入的资源请求指令是否合法,并在所述判断结果为否的情况下,禁止执行计算资源调度语句并进行提示; 其中,判断所述用户输入的资源请求指令是否合法的条件包括以下至少之一: 所述计算资源请求指令的格式、用户所请求的资源量。
5.根据权利要求3所述的实现方法,其特征在于,所述计算资源包括以下至少之一: 计算节点、CPU核数、计算时长、计算结果的存储路径。
6.根据权利要求1至5中任意一项所述的实现方法,其特征在于,获取用户输入的计算指令包括: 通过预先提供图形界面,获取用户在所述图形界面中的参数输入框内输入的计算参数、和/或根据用户在所述图形界面中的路径输入框内输入的存储路径获取包含计算参数的文件并确定该文件中的输入参数。
7.根据权利要求1至5中任意一项所述的实现方法,其特征在于,所述图形界面包括web界面。
8.根据权利要求1至5中任意一项所述的实现方法,其特征在于,进一步包括: 获取用户输入的断点保护指令; 调用并执行预先配置的断点保护指令语句,其中,所述断点保护指令语句用于保存计算过程中的至少一个计算状态。
9.一种用于计算量子系统能量和性质的程序CPMD的计算任务的实现装置,其特征在于,包括: 获取模块,用于获取用户输入的计算指令;解析模块,用于对所述计算指令进行解析,确定计算的类型以及所述计算指令中包含的计算参数; 执行模块,用于将所述计算参数代入到预先配置的与所述计算类型对应的计算命令语句中,并执行该计算命令语句。
10.根据权利要求9所述的实现装置,其特征在于,进一步包括: 判断模块,用于在执行代入计算参数的语句之前,判断所述用户输入的计算指令是否合法,并在所述判断的结果为否的情况下,禁止执行计算命令语句并进行提示; 其中,判断所述用户输入的计算指令是否合法的条件包括以下至少之一: 所述计算指令的格式、所`述计算指令中计算参数的范围。
【文档编号】G06F9/30GK103530091SQ201310522985
【公开日】2014年1月22日 申请日期:2013年10月29日 优先权日:2013年10月29日
【发明者】赵明坤, 马少杰, 曹振南, 李斌, 侯雪峰, 何沧平, 田相桂, 杨亮, 易成, 曹征, 苗春葆, 姜金良, 沈杰, 胡耀国, 范娟 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1