CN103677818A - Siesta的计算任务的实现方法和装置 - Google Patents
Siesta的计算任务的实现方法和装置 Download PDFInfo
- Publication number
- CN103677818A CN103677818A CN201310643587.3A CN201310643587A CN103677818A CN 103677818 A CN103677818 A CN 103677818A CN 201310643587 A CN201310643587 A CN 201310643587A CN 103677818 A CN103677818 A CN 103677818A
- Authority
- CN
- China
- Prior art keywords
- user
- computations
- calculation
- statement
- input
- 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.)
- Pending
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种SIESTA的计算任务的实现方法和装置,其中,该实现方法包括:获取用户输入的计算指令;对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。借助于本发明的技术方案,能够实现SIESTA的计算任务的实现过程无需通过命令行,只通过基于图形界面的简单的操作,就能完成计算任务,大大降低操作难度,提高执行效率,降低出错概率。
Description
技术领域
本发明涉及科学计算领域,并且特别地,涉及一种SIESTA的计算任务的实现方法和装置。
背景技术
SIESTA(Spanish Initiative for Electronic Simulations with Thousands ofAtoms)是一个用于分子和固体的电子结构计算和分子动力学模拟的科学计算软件,SIESTA使用标准的自恰(Kohn-Sham)密度泛函方法,计算使用完全非局域形式(Kleinman-Bylander)的标准守恒赝势,基组选用局域原子轨道的线性组合(LCAO),程序源码用Fortran90编写,可以编译为串行和MPI并行模式。
该软件在固体化学、固体物理和材料科学领域有广泛的应用,可利用较少的计算资源模拟规模较大的体系,采用线性标度算法可以处理多达数千个原子的研究体系。
在传统的高性能计算集群环境中,用户要运行SIESTA计算程序通常需要使用远程字符终端在命令行环境下执行一系列操作,一般有以下几个流程:
准备好SIESTA计算程序的可执行文件、输入文件、数据文件等。这些文件通常需要放置在集群的全局共享存储中,用户一般使用FTP、SFTP等工具向集群上传这些文件,在大多数情况下,用户还需要用文本编辑工具对输入文件等进行编辑修改。
确定运行需要计算的SIESTA算例需要的进程数,以及在哪些节点上运行,将这些信息通过命令行参数的方式传递给MPI的进程启动器,如mpirun、mpiexec等。通过MPI的进程启动器启动运行SIESTA计算程序。
程序运行完成后,查看计算结果,或使用FTP、SFTP等工具下载结果文件到用户本地终端,再通过分析软件分析结果。
以上是直接运行SIESTA计算程序的主要流程,实际情况下,用户在高性能计算集群上提交并行计算任务,需要统一使用作业调度软件提供的接口,用户通常还需要再编写一个作业调度脚本,在脚本中申请计算资源,通过这个脚本提交并行计算任务,由作业调度软件来处理任务排队、分配资源、发起并行程序。
上面介绍了在传统的高性能计算集群环境中,用户运行SIESTA计算程序的基本流程,这些流程通常需要在远程字符终端下,通过命令行的方式来实现,对于非骨灰级的广大普通用户来说,操作难度大,执行效率低,出错概率大。
传统执行方式的弊端主要表现在:
使用难度非常大。想要顺利提交一个SIESTA计算任务,用户往往需要非常熟悉很多与其专业背景无关的很多知识和工具,比如Linux操作系统基本操作、Shell脚本语言、常用的文本编辑和字符处理工具、MPI环境的调用、作业调度软件的使用等等,这些知识或工具的学习曲线非常陡,熟练掌握常常需要花费若干年的时间,这样的使用代价对广大普通用户来说是非常巨大的。
执行效率低。想要顺利提交一个SIESTA计算任务,需要执行多个流程,需要使用一些专业工具,需要在命令行环境执行复杂繁琐的操作,从而导致并行计算任务的提交费时费力,执行效率低下。
出错概率大。对于大部分普通用户来说,在命令行环境执行复杂繁琐的操作,出现人为操作失误的概率很大。特别是对于操作流程不熟悉的用户,在执行的各个环节均容易遇到问题。
另外,对于高性能计算集群的管理员来说,对普通用户开放命令行终端,也存在安全性的风险。用户的误操作可能会影响系统的稳定运行,黑客也有可能趁虚而入。
在现有技术中,虽然存在一些商业计算软件提供自己的并行计算任务通过图形化提交界面进行指令提交,但都是针对个别软件,没有普适性,并且,还需要专门的客户端软件配合完成,与作业调度软件的结合无法实现或存在不同程度的问题。
针对相关技术中用户运行SIESTA计算程序时需要在远程字符终端下通过命令行的方式来实现,操作难度大,执行效率低,出错概率大的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中用户运行SIESTA计算程序时需要在远程字符终端下通过命令行的方式来实现,操作难度大,执行效率低,出错概率大的问题,本发明提出一种SIESTA的计算任务的实现方法和装置,能够使用户无需通过命令行的方式,只通过简单的操作输入计算指令,就能实现整个运算过程。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种SIESTA的计算任务的实现方法,该实现方法包括:
获取用户输入的计算指令;
对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
此外,在执行代入计算参数的语句之前,该实现方法进一步包括:
判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
计算指令的格式、计算指令中计算参数的范围。
此外,在执行代入计算参数的语句之前,该实现方法进一步包括:
获取用户输入的资源请求指令,对资源请求指令进行解析,得到资源参数,其中,资源参数用于表示用户所请求的资源量;
将资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
此外,在执行计算资源调度语句之前,该实现方法进一步包括:
判断用户输入的资源请求指令是否合法,并在判断结果为否的情况下,禁止执行计算资源调度语句并进行提示;
其中,判断用户输入的资源请求指令是否合法的条件包括以下至少之一:
计算资源请求指令的格式、用户所请求的资源量。
其中,计算资源包括以下至少之一:
计算节点、CPU核数、计算时长、计算结果的存储路径。
此外,获取用户输入的计算指令包括:
通过预先提供图形界面,获取用户在图形界面中的参数输入框内输入的计算参数、和/或根据用户在图形界面中的路径输入框内输入的存储路径获取包含计算参数的文件并确定该文件中的输入参数。
其中,图形界面包括web界面。
根据本发明的另一方面,提供了一种SIESTA的计算任务的实现装置,该实现装置包括:
第一获取模块,用于获取用户输入的计算指令;
解析模块,用于对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
第一执行模块,用于将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
此外,该实现装置进一步包括:
判断模块,用于在执行代入计算参数的语句之前,判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
计算指令的格式、计算指令中计算参数的范围。
此外,该实现装置进一步包括:
第二获取模块,用于在执行代入计算参数的语句之前,获取用户输入的资源请求指令,对资源请求指令进行解析,得到资源参数,其中,资源参数用于表示用户所请求的资源量;
第二执行模块,用于将资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
本发明通过从用户输入的计算指令中解析得到的计算参数和计算类型,并将计算参数代入到预先配置好的与该计算类型相对应的计算命令语句,并执行该计算命令语句,能够使用户只需输入简单的计算指令,无需进行复杂的命令行操作,就能完成计算,降低了用户使用SIESTA计算程序的难度,提高了执行效率,降低了出错概率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的SIESTA的计算任务的实现方法流程图;
图2是根据本发明实施例的SIESTA的计算任务的实现装置框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种SIESTA的计算任务的实现方法。
如图1所示,该实现方法包括:
步骤S101,获取用户输入的计算指令;
步骤S103,对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
步骤S105,将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
此外,在执行代入计算参数的语句之前,该实现方法进一步包括:
判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
计算指令的格式、计算指令中计算参数的范围。
此外,在执行代入计算参数的语句之前,该实现方法进一步包括:
获取用户输入的资源请求指令,对资源请求指令进行解析,得到资源参数,其中,资源参数用于表示用户所请求的资源量;
将资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
此外,在执行计算资源调度语句之前,该实现方法进一步包括:
判断用户输入的资源请求指令是否合法,并在判断结果为否的情况下,禁止执行计算资源调度语句并进行提示;
其中,判断用户输入的资源请求指令是否合法的条件包括以下至少之一:
计算资源请求指令的格式、用户所请求的资源量。
其中,计算资源包括以下至少之一:
计算节点、CPU核数、计算时长、计算结果的存储路径。
此外,获取用户输入的计算指令包括:
通过预先提供图形界面,获取用户在图形界面中的参数输入框内输入的计算参数、和/或根据用户在图形界面中的路径输入框内输入的存储路径获取包含计算参数的文件并确定该文件中的输入参数。
其中,图形界面包括web界面。
根据本发明的实施例,还提供了一种SIESTA的计算任务的实现装置。
如图2所示,该实现装置包括:
第一获取模块21,用于获取用户输入的计算指令;
解析模块22,用于对计算指令进行解析,确定计算的类型以及计算指令中包含的计算参数;
第一执行模块23,用于将计算参数代入到预先配置的与计算类型对应的计算命令语句中,并执行该计算命令语句。
此外,该实现装置进一步包括:
判断模块(未示出),用于在执行代入计算参数的语句之前,判断用户输入的计算指令是否合法,并在判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
其中,判断用户输入的计算指令是否合法的条件包括以下至少之一:
计算指令的格式、计算指令中计算参数的范围。
此外,该实现装置进一步包括:
第二获取模块(未示出),用于在执行代入计算参数的语句之前,获取用户输入的资源请求指令,对资源请求指令进行解析,得到资源参数,其中,资源参数用于表示用户所请求的资源量;
第二执行模块(未示出),用于将资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
例如,在一个实施例中,根据本发明的技术方案,针对SIESTA计算程序进行了web封装,并编写了相应软件界面实现具体功能。
通过封装,将SIESTA计算程序的任务提交流程隐藏在底层,提供给用户一个简单直观的web界面,用户只需要在web界面上执行简单的操作,例如:输入计算所需参数,选择计算类型,输入计算所需要的资源,选择计算结果的存储路径,等等,本发明的实施例所提供的SIESTA计算任务的实现方法和装置,可以获取上述用户输入的计算参数和计算类型,并将获取得到的计算参数代入到预先配置的与该计算类型相对应的计算命令语句,执行该计算命令语句并返回计算结果,而且,用户可以根据自己申请的计算结果的存储路径查看计算结果。
并且,根据本发明的实施例所提供的SIESTA计算任务的实现方法和装置,还可以对用户输入的计算指令进行合法性判断,如果用户输入的计算指令格式不能被预先配置好的计算命令语句识别,则拒绝执行该语句,并发出提示消息,从而避免了用户错误操作或者对软件的恶意攻击。
此外,在用户申请计算资源的过程中,只需要将欲申请的计算资源的数量、和/或资源类型在相应的文本框中输入,或者在相应的下拉菜单中进行选择,本发明实施例中提供的SIESTA计算任务的实现方法可以获取用户输入的资源请求内容,将服务器中的资源进行调度,提供给用户,同时,如果用户所申请的计算资源数量超出了服务器目前能够提供的资源总量,则拒绝用户的申请,并发出提示消息。
通过上述实施例提供的web封装方法,就能实现数据文件准备、计算资源申请、计算任务提交、计算结果查看等整套流程,无需通过命令行的方式,大大降低用户的使用门槛,提高使用效率,减小出错概率。
在本实施例中,针对SIESTA计算程序进行web封装,为用户带来全新的使用方式,效果主要体现在:
1.大大降低使用难度。用户不再需要熟练掌握Linux操作系统基本操作、Shell脚本语言、常用的文本编辑和字符处理工具、MPI环境的调用、作业调度软件等与其专业背景无关的知识和工具,就能轻松完成SIESTA计算任务的准备、执行等工作,大大降低了使用门槛。
2.大大提高使用效率。繁琐复杂的命令行操作全部隐藏在底层,在底层自动批量执行,可以节省大量的人为操作时间,提高使用效率。
3.提高任务提交的成功率。根据实施例所提供的web封装方法,会对用户在web界面提交的参数和数据进行不同纬度的合法性检查。比如,检查用户申请的计算资源是否超过其权限,用户输入的参数是否合法,用户的输入文件格式是否正确等,如果判断出错误,会在web界面给出相应提示。通过这些合法性检查可以大大提高并行任务提交的成功率。
4.轻松实现复杂功能。MPI并行程序运行时的一些复杂或高级功能,比如计算网络的选择,启动CPU进程绑定等,如果通过命令行方式需要指定复杂的参数,操作繁琐,使用难度较大,进行web封装后,用户只需要通过web界面上的一些选项框就能实现这些功能。
5.提高高性能计算集群的使用安全性。将普通用户的任务提交操作封装在web界面后,用户执行的都是封闭式的操作,很大程度上避免了影响系统稳定或安全的用户非法操作。
综上所述,借助于本发明的上述技术方案,通过获取用户在图形界面中的参数输入框内输入的计算指令、和/或资源申请指令,并将从指令中解析得到的参数信息代入到相应的命令语句,并执行该命令语句,能够使SIESTA的计算任务的实现过程无需通过命令行,大大降低操作难度,提高执行效率,降低出错概率,并且,通过对用户输入信息的合法性判断,能够很好地保证SIESTA计算程序的安全稳定运行。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用于分子和固体的电子结构计算和分子动力学模拟软件SIESTA的计算任务的实现方法,其特征在于,包括:
获取用户输入的计算指令;
对所述计算指令进行解析,确定计算的类型以及所述计算指令中包含的计算参数;
将所述计算参数代入到预先配置的与所述计算类型对应的计算命令语句中,并执行该计算命令语句。
2.根据权利要求1所述的实现方法,其特征在于,在执行代入计算参数的语句之前,所述实现方法进一步包括:
判断所述用户输入的计算指令是否合法,并在所述判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
其中,判断所述用户输入的计算指令是否合法的条件包括以下至少之一:
所述计算指令的格式、所述计算指令中计算参数的范围。
3.根据权利要求1所述的实现方法,其特征在于,执行代入计算参数的语句之前,所述实现方法进一步包括:
获取用户输入的资源请求指令,对所述资源请求指令进行解析,得到资源参数,其中,所述资源参数用于表示用户所请求的资源量;
将所述资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
4.根据权利要求3所述的实现方法,其特征在于,在执行计算资源调度语句之前,所述实现方法进一步包括:
判断所述用户输入的资源请求指令是否合法,并在所述判断结果为否的情况下,禁止执行计算资源调度语句并进行提示;
其中,判断所述用户输入的资源请求指令是否合法的条件包括以下至少之一:
所述计算资源请求指令的格式、用户所请求的资源量。
5.根据权利要求3所述的实现方法,其特征在于,所述计算资源包括以下至少之一:
计算节点、CPU核数、计算时长、计算结果的存储路径。
6.根据权利要求1至5中任意一项所述的实现方法,其特征在于,获取用户输入的计算指令包括:
通过预先提供图形界面,获取用户在所述图形界面中的参数输入框内输入的计算参数、和/或根据用户在所述图形界面中的路径输入框内输入的存储路径获取包含计算参数的文件并确定该文件中的输入参数。
7.根据权利要求1至5中任意一项所述的实现方法,其特征在于,所述图形界面包括web界面。
8.一种用于分子和固体的电子结构计算和分子动力学模拟软件SIESTA的计算任务的实现装置,其特征在于,包括:
第一获取模块,用于获取用户输入的计算指令;
解析模块,用于对所述计算指令进行解析,确定计算的类型以及所述计算指令中包含的计算参数;
第一执行模块,用于将所述计算参数代入到预先配置的与所述计算类型对应的计算命令语句中,并执行该计算命令语句。
9.根据权利要求8所述的实现装置,其特征在于,进一步包括:
判断模块,用于在执行代入计算参数的语句之前,判断所述用户输入的计算指令是否合法,并在所述判断的结果为否的情况下,禁止执行计算命令语句并进行提示;
其中,判断所述用户输入的计算指令是否合法的条件包括以下至少之一:
所述计算指令的格式、所述计算指令中计算参数的范围。
10.根据权利要求8所述的实现装置,其特征在于,进一步包括:
第二获取模块,用于在执行代入计算参数的语句之前,获取用户输入的资源请求指令,对所述资源请求指令进行解析,得到资源参数,其中,所述资源参数用于表示用户所请求的资源量;
第二执行模块,用于将所述资源参数代入到预先配置的计算资源调度语句,并执行该计算资源调度语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310643587.3A CN103677818A (zh) | 2013-12-03 | 2013-12-03 | Siesta的计算任务的实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310643587.3A CN103677818A (zh) | 2013-12-03 | 2013-12-03 | Siesta的计算任务的实现方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103677818A true CN103677818A (zh) | 2014-03-26 |
Family
ID=50315485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310643587.3A Pending CN103677818A (zh) | 2013-12-03 | 2013-12-03 | Siesta的计算任务的实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677818A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115394A1 (en) * | 2005-06-24 | 2010-05-06 | Justsystems Corporation | Document processing device and document processing method |
CN101727326A (zh) * | 2009-12-11 | 2010-06-09 | 四川长虹电器股份有限公司 | 一种图形用户界面的实现方法 |
CN103294485A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于ABINIT并行计算系统的Web服务封装方法以及系统 |
CN103294481A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于cst计算程序的处理方法 |
-
2013
- 2013-12-03 CN CN201310643587.3A patent/CN103677818A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115394A1 (en) * | 2005-06-24 | 2010-05-06 | Justsystems Corporation | Document processing device and document processing method |
CN101727326A (zh) * | 2009-12-11 | 2010-06-09 | 四川长虹电器股份有限公司 | 一种图形用户界面的实现方法 |
CN103294485A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于ABINIT并行计算系统的Web服务封装方法以及系统 |
CN103294481A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于cst计算程序的处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389986B2 (en) | Identifying impacted tests from statically collected data | |
RU2658190C2 (ru) | Управление доступом во время выполнения к интерфейсам прикладного программирования | |
CN108228228B (zh) | 应用软件发布方法及装置 | |
CN107168749A (zh) | 一种编译方法、装置、设备和计算机可读存储介质 | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
US20180025162A1 (en) | Application program analysis apparatus and method | |
CN110968305A (zh) | 小程序可视化生成方法、装置、设备及存储介质 | |
WO2020046981A1 (en) | Automated code verification service and infrastructure therefor | |
Vivian et al. | Rapid and efficient analysis of 20,000 RNA-seq samples with Toil | |
CN103294481A (zh) | 用于cst计算程序的处理方法 | |
CN103544357A (zh) | Ansys的计算任务的实现方法和装置 | |
CN110955434B (zh) | 软件开发包处理方法、装置、计算机设备和存储介质 | |
CN103294482B (zh) | 用于PWscf并行计算系统的Web服务封装方法以及系统 | |
CN103309676A (zh) | 用于海洋数值模拟ROMS的Web服务封装方法以及系统 | |
WO2015003452A1 (en) | Methods and systems for file processing | |
US9116714B2 (en) | Methods and systems for file processing | |
CN110795162A (zh) | 生成容器镜像文件的方法和装置 | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
CN111475148A (zh) | 第三方依赖库隔离方法及装置、电子设备、存储介质 | |
CN103530091A (zh) | Cpmd的计算任务的实现方法和装置 | |
CN114201382A (zh) | 测试用例生成方法、装置、存储介质和电子设备 | |
CN103543986A (zh) | Cfx的计算任务的实现方法和装置 | |
CN116578282A (zh) | 代码生成方法、装置、电子设备及介质 | |
CN111200587A (zh) | 一种用于软件定义边界功能的sdk构建方法及系统 | |
CN103294874B (zh) | 用于电磁仿真计算系统FEKO的Web服务封装方法以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |