徐 龙, 武殿梁, 程奂翀, 范秀敏
(1.上海交通大学计算机集成制造研究所,上海200240;2.上海市网络化制造与企业信息化重点实验室,上海200030)
为了解决当前科学计算可视化领域存在的高性能计算数据可视化依赖于高性能软硬件支持的问题,可以构建服务于各个应用领域的数据可视化服务平台,平台集成各类可视化分析工具和高性能计算硬件,向用户提供多种数据可视化分析服务,从而可以解决目前高性能计算数据的后处理瓶颈问题。
国内外一些高校与研究所在可视化服务平台方面已经做了一些探索,并在特定的领域对平台进行了验证。Zagreb大学的Bojan Blazon等[1]提出了一种基于Web Services的可视化服务平台概念,能够支持基于WebServices的远程可视化资源共享,使不同领域的科学工作者能够在异地直观地对了解特定行业的专业数据。Ninan等[2]开发了一种基于产品CAD及有限元模板文件的远程客户定制系统,该系统以Web为平台基础,集成用户需求实时地参与到产品设计过程中。Amsterdam大学的Spiros Koulouzis等[3]提出了一种基于Web服务的数据传输模式,用来向客户提供医学图像分析。中科院超级计算中心的单桂华[4]提出采用GOS作为网格中间件的远程可视化系统,通过实时可视化计算过程中输出的数据文件,可以实现计算过程的可视化跟踪和实时分析。然而目前的可视化服务平台面向特定的应用领域,只能支持少量可视化工具,无法满足多领域高性能计算数据可视化的需要;而且现有可视化平台与用户之间的接口非常简单,无法满足用户交互的需要。
因此,本文在总结现有可视化服务平台不足的基础上,提出一种远程交互操作可视化平台方案。应用远程可视化技术和实时交互技术实现客户端对远程服务器端的数据及可视化工具的实时操作,给出了系统任务调度、多任务仿真以及大数据精简等关键技术的解决方案,以此为基础开发出高性能计算数据远程交互可视化平台原型系统,并以科学计算数据和工程分析数据的远程实时交互可视化为例验证了该系统的有效性。
针对目前高性能计算数据可视化所需计算资源较大,普通客户软硬件环境难以满足需求,而目前主流的可视化工具软件无法提供远程服务等问题,计算数据远程可视化服务平台的功能需求主要包括:能够实现支持可视化任务的计算数据上传和可视化分析结果下载;能够将高性能计算数据类型转换为平台的可视化工具可以接受的数据格式;能够实现可视化软件资源的有效共享,支持用户在网络异地实时操作服务器上的可视化软件对上载的计算结果进行分析;能够支持多用户多可视化任务同时进行,实现可视化资源的有效调度和分配[5-9];能够实现支持大规模高性能计算数据实时交互可视化的数据精简[10-12]和调度技术[13-15]。
为了满足功能需求,可视化平台主要有Portal系统,任务调度系统、接口程序库、可视化工具库、平台数据库、客户端插件等几部分组成 (如图1所示),其中前几部分运行于服务器端,客户端插件运行于浏览器端。服务器可以放在一台单机上,也可以是一个局域网支持的PC机群。
图1 高性能数据远程交互可视化平台框架结构
Portal端管理用户的注册和登录,用户也可以通过Portal端上载计算数据,下载结果文件。
任务调度系统管理用户对可视化任务的申请,包括选择数据转换接口和可视化软件工具,建立新的可视化任务,监视可视化任务的运行情况等。
数据转换接口程序库存放各种数据类型的转换接口程序,每个接口程序都能够由平台的任务调度系统进行调用,对指定的数据文件进行解析。
可视化工具库管理多种数据可视化软件工具,工具可由平台的任务调度模块启动,对从转换接口或平台数据库获得的计算数据进行处理,可视化结果输出到可视化硬件环境,也可以以结果文件的形式保存到数据库中。
平台数据库用来存储用户提交的各种待处理的计算数据文件以及可视化任务产生的各种结果文件。
客户端安装在用户本地,为服务器上的可视化工具提供了一个映射窗口,用于处理用户实时交互信号,发送到远程可视化软件,同时接收远程可视化工具的即时界面信息。
高性能计算数据远程交互可视化平台的工作流程如图2所示,以多用户多任务为例描述平台工作流程:
(1)用户登录时平台Portal端获取用户名和密码,访问后台数据库,查询用户是否有操作权限。
(2)平台为每个登录用户在数据库中分配独立的存储空间,用来存放计算数据以及操作结果文件。出于安全考虑,用户和存储空间是一一对应的关系。
(3)用户通过Portal端上载计算数据到数据库,选择并提交可视化任务进入调度队列。
(4)平台的任务调度系统根据用户提交的任务信息寻找合适的可视化服务资源,然后启动资源服务,相关资源根据任务信息在数据库中查找计算数据,完成可视化场景的初始化。
(5)平台将可视化资源启动结果返回给用户,并根据启动结果控制平台客户端是否启动。
(6)在实时交互操作过程的每一帧中,用户在客户端窗口中移动鼠标/键盘进行各种分析操作,客户端的硬件信号处理功能捕获用户操作信息,编码为统一格式的操作指令发送到可视化服务资源模块;该模块对接收到的操作指令解码后映射到可视化软件中,控制可视化场景进行更新。
(7)可视化服务资源模块将场景中变化部分的图像编码后发送到客户端,客户端将图像解码后更新窗口。
(8)用户通过客户端发送指令结束可视化任务,可视化服务资源模块可根据用户指令结束自身运行,从而结束整个任务。
图2 平台工作流程
远程交互操作可视化技术可以解决当前可视化服务系统中存在的实时性不强,与用户交互接口过于简单的问题。该技术主要涉及远程交互操作可视化服务器VisServer和客户端VisClient之间的指令发送和图像传输。平台采用B-S与C-S混合架构实现远程交互操作可视化,如图3所示。首先通过B-S部分建立VisClient与VisServer之间的连接:调度系统根据可视化任务查找到合适的资源后启动可视化工具和VisServer,启动成功后向Portal端发送准备就绪的消息;Portal端通过浏览器启动客户端的VisClient,并将VisServer的连接信息传入VisClient;VisClient向VisServer发送连接请求。连接建立之后,采用C-S结构进行VisServer和VisClient之间的指令发送和图像传输。
图3 远程交互操作可视化实现方案
2.1.1 远程可视化实现方法
实时图像传输是实现远程可视化的基础。考虑到广域网复杂的网络条件以及服务器端的系统安全,平台进行图像传输有如下特点:
(1)可视化进程与可视化软件绑定:图像捕捉只返回和可视化软件关联的窗口,VisClient端用户交互操作限制在可视化软件窗口中;
(2)窗口的分块传输:VisServer将可视化软件界面自上而下分为几个部分,依次对各个部分进行对比更新,对无变化的部分不进行网络传输,从而节省网络流量。
(3)根据网络情况调整画质:平台在VisClient中实现了可以实时调整图像画质以及压缩比的功能以适应不同的网络条件。
2.1.2 远程交互操作实现方法
实时指令传输是实现远程交互操作的基础。用户在Vis-Clinet窗口中使用鼠标键盘进行可视化分析操作,VisClient捕获用户的鼠标键盘操作信息,编码为统一格式的指令,通过sokcet协议传输给VisServer,VisServer经过解码获得指令并映射到可视化工具中。
第二种迹象:微小的日常。一些艺术家已经抛开了所谓宏大叙述,转向了更加贴近自身的、细微的日常景观,展开更加深入、细腻的表达,提供了前所未有的独特视角。
系统支持不同类型的多个可视化任务同时运行。目前系统提供3种类型的服务:文件列表查询,数据类型转换,远程可视化交互操作。用户通过浏览器提交可视化任务,平台需要对用户提交的任务进行合理调度。调度过程如图4所示。
图4 多任务管理调度
任务生成:用户通过平台Portal端将可视化任务提交到系统的任务队列中,任务队列负责用户任务信息及其状态的维护,其中任务信息包括了用户ID,用户IP,任务类型,工具信息,数据文件信息等;
任务解析:任务调度按先到先服务原则从任务队列中获取任务作业,根据任务类型和工具信息,判断任务所需的服务资源种类和可视化工具类型;
资源服务查询:根据任务作业解析结果,查询服务器上合适的可视化服务资源,供调度决策进行决策处理;
调度决策生成:根据资源服务发现结果,采取先发现先分配的策略,在最先发现的合适的可视化服务资源上运行任务;
任务执行:根据任务决策结果启动相应的资源服务同时传入所需的任务信息;
结果返回:系统将资源启动的结果通知相应的用户,并根据资源启动情况,向该用户的客户端返回指令,控制客户端软件是否启动。
平台面向高性能计算数据,目前的可视化系统在处理高性能数据时采用的将全部数据读入内存进行处理的方法难以满足实时交互绘制的需要。系统为用户提供一个可以对大规模数据进行精简的插件,该插件对原始数据空间进行二叉树分割,二叉树每一层次的结点对应一个数据文件;可视化时根据调度策略将相关的文件加载到内存,从而可以提高计算绘制的效率。平台对高性能计算数据的处理为预处理和数据调度两步,如图5所示。
2.3.1 数据预处理
预处理是在可视化之前对外存上的高性能数据进行处理,分为数据分割和数据精简。
(1)数据分割
对高性能计算获取的有限元网格模型顶点进行空间分割,生成基于非均匀二叉树的分块离散点群。二叉树各节点对应三维空间中的AABB(轴对称)包围盒,仅最下层结点的包围盒具有自己的离散点群,其余各层结点均只有包围盒信息而没有离散点信息。
图5 高性能计算数据处理过程
(2)数据精简
数据精简目标是对已有的数据场建立分层次的 LOD模型。其基本原理是在空间分割的基础上进行自下而上的精简运算。精简开始后,除底层外,每层结点的离散数据点群总是在其直接孩子结点的点群基础上,进行稀疏化获得。
上述过程数学化表达如下:
数据精简开始后从二叉树底层往上递推,计算其它各层结点的D
2.3.2 基于多分辨率数据的实时调度策略
在对原始数据进行分割精简,生成多精度层次数据文件的基础上进行数据调度。将视锥按照距离视点的距离进行分区,分区数量与数据精度层次相等。设数据分为n个精度,则数据文件分为n层,视锥分区为n个,按照其距离视点的远近排列如下:1,2,…,n。依照视锥分区进行数据文件定位(如图6 所示)。
图6 视锥各分区与空间二叉树各层结点相交情况
第1视锥分区:依据空间二叉树查找方法定位文件层次树的底层(第n层)结点所代表的区域中与视锥分区相交的部分,获得相关结点对应的数据文件;
第i视锥分区(0
第n视锥分区:即为根结点(第1层)对应的最低精度数据文件。
显示时将按照视锥分区由近及远的顺序获得的数据文件加载到场景中。
我们以VC++8.0为开发工具,使用socket协议实现平台Portal系统,任务调度系统,客户端插件之间的通讯,使用VNC标准实现任务调度系统和客户端之间的实时图像传输和指令发送,并采用JSP、ActiveX控件技术和FTP协议开发了平台Portal和文件传输模块。通过集成各模块构建了高性能数据远程交互可视化平台系统。
下面以工程分析中整车碰撞仿真以及科学研究中飞机在气流场中的气动特性模拟为例对平台的有效性进行验证。测试环境由5台PC机搭建,其中两台作为平台客户端,另外3台作为服务器。测试使用的整车有限元模型大小为70M。
测试过程如下:①用户首先登录平台Portal,上载整车有限元计算结果文件到数据库;②通过平台的数据转换功能将LS-Dyna有限元计算结果转换成平台可视化工具能够接受的数据类型;③选择并提交可视化任务,如图7(a)所示,用户可以在客户端窗口中应用键盘鼠标对整车模型进行各种分析操作,如图7(b)、图7(c)所示;④用户可以将操作结果以图片、数据、视频等多种文件方式保存到数据库并进行下载。
飞机气动特性模拟仿真测试过程与前面类似,测试时使用的fluent类型数据大小为700M。对于一般的可视化软件,处理如此规模的数据有一定的延滞,因此我们采用平台提供的用于处理高性能数据的插件进行可视化。图7(d)为视点靠近气流场中心时飞机周围的气态特性,图7(e)为视点远离气流场时的气态特性。箭头代表该点的气流场方向。从图中可以看出,由于采用了基于视点的调度策略,视点离气流场中心越近箭头的密度越大。
通过该系统,工程技术人员能够远程操作计算中心的超级计算机对高性能计算数据进行可视化分析。经测试表明,高性能计算数据远程交互可视化平台可以实现计算资源的共享,满足用户实时异地交互操作的需要,同时能够对多用户多任务进行有效调度和资源分配。
本文在现有可视化平台的基础上提出了一种高性能计算数据远程交互可视化系统,能够有效集成和共享各种计算资源,满足高性能数据对大量计算资源的需求,为远程用户提供能够进行实时交互操作的可视化环境。通过该系统,用户可在网络异地操作服务器上的可视化工具对高性能计算数据进行处理,可以节约资源降低成本,从而为高性能计算结果数据的分析与处理提供了有效手段。
图7 平台应用案例
[1]Bojan B,Zeljka M.Visualization service based on web services[J].Journal of Computing and Information Technology,2007,4(1):339-345.
[2]Jiju A Ninan,Zahed Siddique.Finite element analysis template approach to support web based customer centric design[C].Salt Lake City:ASME Computers and Information in Engineering Conference,2004:451-460.
[3]Spiros Koulouzis,Elena Zudilova-Seinstra.Data transport between visualization web services for medical image analysis[J].Procedia Computer Science,2010,1(1):1727-1736.
[4]Shan Guihua,Chi Xuebin,Lu Zhonghua,et al.Remote real-time visualization system based on GOS[J].Application Research of Computers,2007,11(11):178-180.
[5]Steve Casera,Peter Kropf.Collaboration in scientific visualization[J].Advanced Engineering Informatics,2010,24(2):188-195.
[6]Wu Qishi,Gao Jinzhu,Chen Zizhong,et al.Pipelining parallel image compositing and delivery for efficient remote visualization[J].Journal of Parallel and Distributed Computing,2009,69(3):230-238.
[7]Yasuaki Kishimoto,Akihiro Sugahara,Li J Q.Remote collaboration system based on large scale simulation[J].Fusion Engineering and Design,2008,83(2-3):434-437.
[8]Scarpa M,Belleman R G,Sloot P M A,et al.Highly interactive distributed visualization[J].Future Generation Computer Systems,2006,22(8):896-900.
[9]Chu Chih-Hsing,Cheng Ching-Yi,Wu Che-Wen.Applications of the web-based collaborative visualization in distributed product development[J].Computers in Industry,2006,57(3):272-282.
[10]Soetebier I,Birthelmer H,Sahm J,et al.Managing large progressive meshes[J].Computers&Graphics,2004,28(5):691-701.
[11]Gao Shuming,Zhao Wei,Lin Hongwei,et al.Feature suppression based CAD mesh model simplification[J].Computer-Aided Design,2010,42(12):1178-1188.
[12]Guillaume L,Florent D,Atilla B.Curvature tensor based triangle mesh segmentation with boundary rectification[C].Crete:Proceedings of Computer Graphics International,2004:10-17.
[13]Yu Zhiwen,Wong Hau-San,Hong Peng,et al.An adaptive simplification method for 3D point-based models[J].Computer-Aided Design,2010,42(7):598-612.
[14]Shaffer E,Garland M.A Multiresolution representation for massive meshes[J].IEEE Transactions on Visualization and Computer Graphics,2005,11(2):139-148.
[15]Atul Thakur,Ashis Gopal Banerjee,Gupta K.A survey of CAD model simplification techniques for physics-based simulation applications[J].Computer-Aided Design,2009,41(2):65-80.