摘要:本文结合油藏数值模拟软件和并行计算服务器资源的使用现状,探讨如何实现相应软硬件资源的共享应用。并针对用户管理、资源调度、作业发送、许可证管理等应用开发过程中遇到的网络通讯、数据库操作等技术问题开展了深入的探讨。
关键词:油藏数值模拟软件;并行计算服务器;资源共享
油藏数值模拟作为目前研究剩余油分布的最有效的手段,在油田开发中的应用越来越广泛。这类软件本身操作复杂、引进成本大,对配套硬件资源的要求也很高。目前,各油田大型专业软件和大型计算服务器资源一般都配置到各二级单位,由于缺乏相应的共享系统,这些软硬件的使用存在时间局部性、空间局部性,资源总体匮乏、局部富裕,造成了资源的浪费。另外多套软件资源的管理,以及与硬件资源的协同也是管理员面临的实际问题。设计一套大型油藏模拟软件网上共享管理系统对相应的软硬件资源进行管理是解决上述问题的有效手段。
一、技术思路
本文内容的研究背景是实现一套网上软硬件资源管理系统,主要针对现有的VIP、ECLIPSE油藏数值模拟软件和并行计算服务器资源探讨如何实现用户管理、资源调度、作业发送、许可证管理等技术应用。
目前现有大型油藏模拟软件的主要应用方式有两种:远程登录方式、网络浮动许可证方式。第一种方式用户通过网络远程登录到服务器上使用软件,这种应用方式对客户端的要求比较低,只要客户端能与服务器连通即可。所有的计算资源都使用远程服务器的计算资源。第二种方式使用本地的计算资源,只是在软件验证许可证时才需要与服务器通讯,对客户端的要求比较高,客户端必须有强大的计算能力。这种方式应用专业软件时,本地客户端必须安装专业软件,适合于大部分推出了微机版软件的专业软件。
通过研究试图解决以下问题:
(1)兼顾目前大型专业软件的两种应用方式,灵活地实现大型专业软件的网络共享,提高大型专业软件的利用率。
(2)实时监控服务器资源的使用情况,为资源分配提供依据,最大可能提高服务器的利用率,充分发挥服务器强大的计算性能。
(3)实现用户作业的申请、调度,记录用户作业的运行信息。
(4)采取有效措施保证用户数据及其他信息的安全。
(5)形成一套完整的大型专业软件网上应用管理系统。
从而达到改资源静态配置为动态配置、独享为共享的目的。
二、系统实现
通过对C/S和B/S模式的比较,本系统选择采用B/S模式下的客户端、服务器体系架构。如图1所示,其中客户端配置为油田局域网环境下的任意pc机,以保证不同单位研究人员的方便使用。服务端包括web服务器、数据库服务器、大型并行主机。管理员将为每个用户分配权限许可,这包括软件的许可证、硬件资源(可用CPU、硬盘资源)、使用时段、优先级等。授权用户可以在远程客户端发送作业,并监控作业运行状态,获取作业运行结果。服务端首先根据用户作业申请,登记作业信息、建立并监控作业队列,然后根据服务器的软硬件资源使用情况发送新的作业,最后根据用户需要将作业运行状态、运算结果发送回客户端。
在上述系统运行的基础上,实现对大型数模软件和服务器硬件资源的监控和管理。提供不同软件的使用频率;硬盘、cpu等资源的占用情况;不同用户、不同项目对资源的使用规律,为下一步资源的合理配置、领导决策提供依据。实现的功能如下:
(一)用户管理
用户管理采用角色管理机制,角色管理机制中共分为三种角色,1)、管理员角色;2)、全权用户;3)、预约用户。每个角色具有不同的权限,大型专业软件网上应用管理系统主要是通过角色管理机制完成软件共享的权限管理。
(二)作业管理
作业管理模块主要完成用户作业的申请、根据优先级和作业要使用的资源情况进行作业的调度、根据等待时间的长短适当提高作业的优先级以避免作业由于初始优先级低而无限等待以及作业运行状况(等待、执行、完成、中断、失败等)的监控,记录用户作业占用的CPU时间等信息。对一般用户来说,本模块功能为作业申请,作业查询,结果下载,状态查询,即时状态查询等本用户作业管理的功能。
(三)license管理
针对一般用户来说该模块的主要功能有本地许可证申请、浮动许可证申请、本地许可证状态、浮动许可证状态。本地许可证申请与浮动许可证申请相似,首先由用户选择将要申请的软件模块,选择完成后,填写许可证开始使用时间、许可证结束使用时间,等待管理员审批。用户可通过本地许可证状态、浮动许可证状态等模块查询本用户许可证申请审批情况。
(四)资源管理
资源管理模块主要功能是完成服务器端各种资源的监控、分配。包括如下模块:
资源监控、服务器资源历史统计、服务器资源总体统计、服务器资源阶段性统计、服务器资源即时状态等。
三、技术关键
(一)OCCI数据库访问技术
实施过程中,用户管理、服务器资源监控、进程监控等基本功能模块,都需要实现大量数据资料的存取、查询。同时,这种查询请求可能来自于客户端和服务器两处。这些功能需求必须使用数据库技术加以解决。从客户端(PC)的角度出发,无论是c/s模式,还是b/s模式,访问数据库的方式很多(如JDBC、ODBC、ADO等),对数据库系统也没有特别的要求。但服务端(IBM P690、微机集群)上运行的作业监控程序也需要访问数据库,这对软件的开发方案提出了特别的要求。由于IBM P690大型服务器,只能安装AIX环境下的C、C++编译器,给数据库的访问带来了不便。经过综合考虑,选用的数据库系统配置是PC /Window XP/ORACLE 9i。客户端对数据库的访问使用了ADO技术。针对服务端访问数据库的需求,笔者经过综合考察最终使用了OCCI技术。
(二)STL技术
AIX操作系统下的C++开发环境与Windows环境下的Visual c++开发环境,有着明显的差别,最重要的是MFC无法使用。如果使用纯粹的C++,开发进度必然受到影响,对于习惯了MFC的程序员尤其如此。经过相关的调研,我们知道STL(标准模版库)技术,现在已经成为标准C++的一部分。相对而言,其与MFC有着某种程度上的相似性,但更为通用,因此本软件系统的服务器监控模块自然的引入该技术。
(三)网络通讯编程技术
由于本项目的主要程序实现包含客户端、服务端两部分。这种框架结构决定了这两部分的通讯需要通过网络来实现。套接字(Sockets)编程是最为通用的网络通讯编程接口。它是支持TCP/IP网络通讯协议的基本操作单元。可以将套接字看作不同主机间的进程进行双向通讯的的端点。
套接字有两种不同的类型:流式套接字和数据报套接字。流式套接字提供双向的、有序的、无重复并且无记录边界的数据流服务,它适用于处理大量数据。数据报套接字支持双向的数据流,但并不保证数据传输的可靠性、有序性和无重复性。
由于本系统需要实现IBMP690大型主机与普通PC机之间的数据交换,因此也需要在客户端和服务端,分别用Win Socket和Unix Socket实现相应的编程接口。
四、系统的测试与应用
目前该套系统已经投入现场实际应用,涉及VIP、ECLIPSE串行、并行四个不同模拟器,7个不同规模的油藏模型利用该系统进行了运行,规模总计300万节点,应用效果良好。
相关热词搜索: 油藏 数模 管理系统 共享 设计