CFD计算作业管理系统及方法 【技术领域】
本发明设计一种作业管理系统及方法,特别是应用于航空业飞行器设计领域的应用软件的计算作业管理系统及方法。
背景技术
随着我国航空业近年来的迅速发展,飞行器设计领域无论从应用软件层面还是硬件计算资源层面都有了巨大的变化。在飞机设计阶段各种应用平台、设计平台层出不穷,但都朝着流程化,智能化的方向发展。同时我国对航空业的投入也不断加大,各设计单位在硬件方面也不断更新设备,已经很少有用单机PC作为计算资源进行使用,而是购买专用的大型计算服务器或高性能计算服务器作为计算资源。由于国家对保密问题的不断重视,大多数设计单位都安装了保密软件,这对分布式软件就有了更严格的要求。市场上计算作业管理系统也较多有LSF、PBS Pro、Condor、OpenPBS等,各具特色。LSF、PBS Pro属于商业软件,功能齐全,性能、稳定性好。适用于大型系统使用,对于CFD计算分析这样普通平台专门使用这些管理系统成本较高,集成复杂。OpenPBS、Condor是开源软件,只能使用于Linux操作系统,且对系统集成没有特别的支持。
在CFD行业中,各种计算分析平台不断涌现。根据目前我国CFD行业的现状,求解软件各式各样,数据格式不统一,结果输出形式不相同,计算流程也不相同,基本上没有一个统一的标准,求解计算需要的步骤较多,这都给CFD计算分析带来大量的不必要工作,为求解软件的集成带来很大的困难,但此种现状目前也很难改变。同时分布式计算是此类平台的重要功能组成部分,很多作业管理系统不能很好的支持这种求解软件的无缝集成,没有根据现在CFD行业的特点和特殊需求设计作业管理系统。
目前存在的计算作业管理系统存在以下不足:
1、计算作业管理系统不能脱离WiseCFD平台独立使用,不能简单集成到其他系统中使用;
2、计算作业管理系统的客户端与调度服务器之间是“紧连接”,即在作业执行过程中,客户端不能关闭,必须保持打开状态,造成这种问题的原因是系统采用客户端打开共享目录的方式进行计算作业数据的共享,这样就带来客户端计算机不能关闭,客户端程序不能退出的限制;
3、没有支持脚本作业执行的功能;
4、没有作业队列的概念,在计算资源的优化调度上不够先进;
5、在优化的策略上过于简单,不支持软件资源的调度,即没有将求解软件也作为一种资源参与调度,而是只有计算机资源的调度。
【发明内容】
为了解决计算作业管理系统难于集成、对求解软件的集成性支持不足、调度策略不够多样等问题,本发明提供一种设计应用软件的作业管理系统及方法,特别是CFD计算作业管理系统及管理方法。
本发明的技术方案是:
一种CFD计算作业管理系统,包括应用调度服务器、计算服务器、客户端、共享文件服务器和数据库;所述应用调度服务器与客户端之间是一种在作业执行过程中作业的执行与客户端或平台无关的松连接,采用远程方法调用RMI的形式进行数据交换,并且采用Socket+XML作为通讯手段实现与计算服务器的连接,通过JDBC实现与数据库的连接,并用Hibernate作为数据的持久化层;所述客户端与所述共享文件服务器之间采用FTP协议进行文件的上传下载操作;所述计算服务器与所述共享文件服务器之间采用FTP协议进行文件的上传下载操作或是采用共享目录的方式进行操作。
上述客户端与所述应用调度服务器采用Java语言实现。
上述计算服务器采用C++语言实现。
一种基于上述CFD计算作业管理系统的CDF计算作业管理方法,包括以下步骤:
1、用户通过客户端准备提交作业信息,并且准备作业所需的数据文件;
2、提交步骤1所述的作业信息和数据文件,并将作业信息存储到数据库服务器,将作业数据文件上传至文件共享服务器的指定目录下;
3、应用调度服务器根据步骤2所提交的作业信息进行调度,选择作业所需的计算资源即计算服务器给计算作业;
4、应用调度服务器发送计算作业信息给指定的计算服务器;
5、步骤4所述的计算服务器从共享文件服务器上下载计算作业的数据文件,并根据计算作业信息开始计算作业的执行;同时,计算服务器随时接受用户通过应用调度服务器发送来的作业控制命令,给出及时的响应,并不断的按一定的周期采集计算服务器的状态信息即包括CPU、内存、硬盘的信息发送给应用调度服务器;
6、步骤5所述的计算作业执行完毕后,计算服务器将计算结果文件上传到文件共享服务器,并发送作业完成状态给应用调度服务器,最后清理、删除计算服务器上地作业文件及目录;
7、用户通过客户端计算机查看作业执行情况,若执行完毕,则从文件共享服务器上下载结果数据到客户端计算机进行查看与保存。
本发明的有益效果是:
1、本发明为进行二次开发提供了接口,包括用户管理接口、作业提交接口、作业控制接口、系统查询接口,文件传输接口。通过提供的开发接口可对CFD计算软件进行更高级的封装,例如Fluent、MGAERO等常用软件;同时方便的为其它需要远程计算的应用平台提供远程高性能计算服务。
2、本发明对一般平台所产生的作业类型都有支持,比如串行作业,并行作业、批处理作业、脚本作业等。
3、本发明可以跨平台使用,采用Java语言进行开发,也根据不同的平台开发了相应版本服务程序的计算服务器,所以无论是Windows操作系统,还是Linux操作系统,该作业管理系统都有很好的支持。
4、本发明还将计算软件也作为一种计算资源进行管理,可将计算软件部署到计算节点上,从而在进行作业调度时不仅可以根据计算资源的CPU、内存、硬盘等信息进行调度,而且可根据节点上安装的应用程序进行调度,选择出用户需要的计算资源。
【附图说明】
图1为本发明的系统通讯协议图;
图2为本发明的软件整体结构图;
图3为本发明的作业控制界面;
图4为本发明的资源管理界面。
【具体实施方式】
如图1所示,本发明所提供的一种CFD计算作业管理系统,主要由客户端、应用调度服务器和计算服务器、共享文件服务器和数据库。所述应用调度服务器与客户端之间是一种在作业执行过程中,作业的执行与客户端或平台无关的松连接,采用远程方法调用RMI的形式进行数据交换,并且采用Socket+XML作为通讯手段实现与计算服务器的连接,通过JDBC实现与数据库的连接,并用Hibernate作为数据的持久化层;所述客户端与所述共享文件服务器之间采用FTP协议进行文件的上传下载操作;所述计算服务器与所述共享文件服务器之间采用FTP协议进行文件的上传下载操作或是采用共享目录的方式进行操作,两种方式系统管理员可根据具体的网络环境进行选择配置。
如图2所示,所述CFD计算作业管理系统是以应用调度服务器为中心,计算服务器为基础服务,客户端为接口,共享文件服务器和数据库为支持的网络系统。客户端负责与客户的交互,提供使用本系统的界面。应用调度服务器有三部分主要功能,第一负责响应客户的功能请求,给予用户正确的响应信息,第二负责系统中作业队列的调度、资源的合理使用。第三控制计算服务器,完成远程计算任务,同时接收计算过程中的作业信息。计算服务器根据调度服务器的要求完成计算任务的加载计算以及计算信息的获取、计算资源负载情况的统计,并且采集计算资源的CPU信息、内存信息、操作系统信息等发送给应用调度器进行保存。客户端与应用调度服务器采用Java语言实现,计算服务器采用C++语言实现;设立FTP服务器作为系统的共享文件服务器,实现系统的文件向所有计算节点共享;系统数据库采用Oracle数据库对系统的信息进行存储。客户端与应用调度服务器之间采用RMI(远程方法调用)的形式进行数据交换,一般的查询及控制功能采用RMI进行通讯。计算服务器与应用服务器采用Socket+XML作为通讯手段,采用这种方式可以使系统的扩展性更强。客户端与应用调度服务器间是一种松连接,并采用RMI作为调用方式,所以系统很容易通过封装远程对象接口成为Web服务,从而扩展为Web方式提供给用户使用。
本发明所涉及的CFD计算作业管理系统的客户端设置有进行二次开发时所需的接口,包括用户管理接口、作业提交接口、作业控制接口、系统查询接口,文件传输接口等,通过提供的开发接口可对CFD计算软件进行更高级的封装,例如Fluent、MGAERO等常用软件,也可进行二次开发,便于其它平台的调用。由于有些平台是专为一些特定求解软件而研制的,因此在分布式计算过程中,可以将一些参数向用户屏蔽。此外有些软件的执行不是单个可执行程序,而是由多个子程序组成。系统采用脚本将这些子程序串编,在执行作业过程中用户不必一个一个的执行。MGAERO程序是由前处理程序、求解程序、后处理程序3部分组成,在集成此程序时可用Python脚本将自程序串编成一个程序,执行作业时只需要选择MGAERO程序名,提供求解数据文件,就可一次性运行3个子程序,为用户的使用和平台的集成带来很大的方便。系统中将作业类型首先分为已集成软件和用户自定义软件。已集成软件是管理员提前将计算软件部署到计算节点,每次普通用户在使用时,只需选择需要的软件名称和提交计算数据文件。使用用户自定义软件,用户必须提供求解软件的可执行程序和必须的相关文件。对于并行作业系统中支持MPI并行作业,在计算服务器中根据用户的并行要求调用MPIrun.exe程序加载并行作业。对于批处理作业支持Windows批处理文件的作业,则根据提供的*.bat文件直接加载作业进程。对于脚本作业支持Python脚本作业等,根据作业执行文件*.py,调用python.exe程序加载作业,可支持多种类型的脚本作业。
本发明提供的一种实现上述CFD计算作业管理系统的CDF计算作业管理方法,包括以下步骤:
1、用户通过客户端准备提交作业信息,并且准备作业所需的数据文件;
2、提交步骤1所述的作业信息和数据文件,并将作业信息存储到数据库服务器,将作业数据文件上传至文件共享服务器的指定目录下;
3、应用调度服务器根据步骤2所提交的作业信息进行调度,选择作业所需的计算资源即计算服务器给计算作业;
4、应用调度服务器发送计算作业信息给指定的计算服务器;
5、步骤4所述的计算服务器从共享文件服务器上下载计算作业的数据文件,并根据计算作业信息开始计算作业的执行;同时,计算服务器随时接受用户通过应用调度服务器发送来的作业控制命令即执行、暂停、恢复、停止等,给出及时的响应,并不断的按一定的周期采集计算服务器的状态信息即包括CPU、内存、硬盘的信息发送给应用调度服务器;
6、步骤5所述的计算作业执行完毕后,计算服务器将计算结果文件上传到文件共享服务器,并发送作业完成状态给应用调度服务器,最后清理、删除计算服务器上的作业文件及目录;
7、用户通过客户端计算机查看作业执行情况,若执行完毕,则从文件共享服务器上下载结果数据到客户端计算机进行查看与保存。
通过以上八个步骤,计算作业管理系统帮助用户完成了作业的远程执行。但是如果计算服务器与文件共享服务器之间允许采用共享目录的方式进行数据共享,则在步骤4中调度服务器在发送计算作业信息给指定计算节点的同时,向计算服务器共享该作业的目录;在步骤5中计算服务器通过连接共享文件服务器中的计算作业目录来获取计算作业的数据文件,计算完毕后断开共享连接。这种数据共享方式简化文件上传下载的步骤,节省了作业执行时间,但安全性受到了损失,所以在系统对数据安全性要求不高的环境下可采用这种方式进行数据的共享。
本发明所涉及的CFD计算作业管理系统及方法,可以在PC计算和SMP服务器上进行部署,应用广泛,能够提供易集成性,并且支持多种类型的脚本作业的管理系统及方法。