并行可视化软件的简介与部署

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
52
《高性能计算发展与应用》 2014年第四期 总第四十九期
并行可视化软件的简介与部署
徐 莹 上海超级计算中心 上海 201203
计算科学的发展使得人类记录,产生和存储数 据的规模呈爆炸式增长。在诸多大规模数据的处理 技术中,可视化通过视觉表现形式将信息提炼并呈 现给用户,并提供交互分析,数据量化分析手段, 帮助人们有效的分析,理解和探索复杂的数据。高 性能计算的迅速发展为科学计算提供了动力,随着 计算规模的日益增大,科学计算产生数据的可视化 与分析有了迅猛发展。 科学数据可视化利用计算机图形学来创建视觉 图像,帮助人们直观形象的理解以规模庞大的数字 形式呈现的科学概念或结果。可视化研究者为计算 科学提供了一系列可视化系统共工具。对不同科学 计算领域产生的大规模数据,国内外已经开发了一 系列可视化系统和工具 [1] 。第一代可视化系统的诞 生是1989年推出的AVS (Advanced Visual Systems)[2]系 统开始,此外还包括DataExplorer、OpenDX等。第 二代系统最具代表性的是VTK,还包括ParaView[3]、 VisIt[4]等,以及针对专门应用的EnSight等。国内近年 开发的科学可视化系统包括TeraVAP[5]等。 从国内外可视化系统的发展,系统支持的数据 类型和可视化方法越来越全面丰富。科学数据类型 包括标量场,矢量场,张量场数据等,这些数据定 义在各种网格上,包括规则网格、不规则网格、曲 边线性网格、AMR网格等。随着计算规模的不断增 长,可视化系统逐渐从单机扩展到并行分布式远程 平台,支持海量数据的可视化。开源可视化软件成 为业界标准,开放式的平台可以鼓励更多人参与和 开发新的功能等。 本文将主要结合VisIt和ParaView这两个基于 VTK的并行可视化系统,介绍其主要架构以及在集群 系统上的部署。
图1 ParaView的基本架构
在这个架构顶层是 ParaView的客户端应用程 序,第二层是用户界面 UI,包含 Qt 部件,Python 脚 本等,第三层是 ParaView 服务器,管理着用户界 面与可视化功能函数库之间的数据通信,第四层是 可视化核心算法库 VTK,最底层包含了基础的图形 库 OpenGL,用于并行计算的 MPI,用于图像合成 的 IceT 等等。 ParaView有三个逻辑部件:客户端(client)、 数据服务器(data server)和渲染服务器(render server)。ParaView可以作为单独的可视化软件,这 种情况下,三个部件在同一个硬件服务器上。用客 户/服务器模式,ParaView启动时链接pvserver,而 pvserver可以通过ssh通道在远程高性能计算资源上运 行,且并行使用多个处理器进行计算和内存资源。 ParaView服务器可以将数据服务器dataserver、渲染服 务器renderserver分在不同的处理器上,使用独立的
户界面和按钮,让用户选择可视化内容;可视化窗 口显示图形结果,并负责跟踪VisIt的状态,与VisIt的 其他组件通话等。图形界面和可视化窗口都是本地 运行的,可以充分利用客户端上的高速图形硬件。 余下的两个部件可以在客户端计算机上运行,但它 们通常在已经生成了数据文件的远程并行计算机或 集群上运行。数据服务器(Dataserver) 负责读取远程文 件系统。并行计算引擎将读取数据文件,对其进行 处理,并将图形或几何形状发回至可视化窗口。 VisIt支持的文件类型多元,常用的有HDF5, NETCDF,Exodus,PDB,vtk,silo等。其中silo基于 C的语言库,面向大部分数值模拟中使用数据结构(
1. 并行可视化软件ParaView和VisIt的介绍
1.1 ParaView的介绍与主要构架 ParaView是2000年由Kitware公司和美国LANL国 家实验室合作启动的项目,该项目最初由美国能 源部ASCI VIEW项目支持,并于2002年10月发布。
高性能计算应用
53
渲染硬件。这种运行方式对海量数据的处理较为有 效,若数据量较小,数据服务器与渲染服务器之间 频繁传输小量数据会极大增加通讯开销。 ParaView支持的数据文件类型多样,涵盖了 VTK,Ensight,PLOT3D等不同的可视化软件。由于 ParaView的数据操作基于VTK,因此VTK传统格式和 基于XML标签的VTK数据得到ParaView的全部支持。 1.2 VisIt的介绍与主要构架 VisIt是一个开源的并行可视化与图形分析工 具。最初是由美国能源部(DOE)的ASCI计划推 进的,主要针对万亿次模拟结果的可视化和分析。 2000年进行原型设计之后,最初的VisIt版本在2002年 发布。虽然VisIt的设计目标是为超大规模的科学计算 模拟和实验数据集的后处理提供并行通用的基础设 施,但VisIt也适合于对桌面系统仿真的较小规模数据 进行可视化。 VisIt充分利用了很多第三方软件库。Qt widget进 行了用户界面开发;Python用于命令行解释器;VTK (Visualization ToolKit)库提供了数据模型以及可视 化基本算法。VisIt的开发主要集中在大规模数据的 并行化,用户界面、实现自定义的数据分析程序以 及处理不标准的数据模型,例如自适应细化网格( AMR)和混合材料区域等。 VisIt主要支持客户端服务器模式,其中服务器 是并行运行的。这种模式能够在远端进行高效的可 视化,大规模数据的并行处理为用户的交互处理提 供了性能基础。VisIt已经能够处理260亿规则网格, 10亿粒子模拟结果,以及几亿至十几亿不规则, AMR和曲线网格。另一种VisIt的应用方式是在数值 模拟软件中调用“lib-VisIt”,这样可以在代码运行 时进行原位分析In Situ analysis。 VisIt由图形用户界面、可视化窗口、数据服务 器,并行计算引擎四个部分组成,其架构如图2所 示 。四个部分的主要功能有:图形用户界面提供用
VisIt提供了客户端/服务器的运行模式,并 且为用户常用的环境提供了标准配置模板。和 ParaView类似,VisIt的服务器配置文件以xml格 式,并存于.visit隐藏文件夹中。简单的远程调 用VisIt服务使用的xml文件主要分为两部分: <Object name=“MachineProfile”>和<Object name= “LaunchProfile”>,一个MachineProfile可以有若干 个LaunchProfile,例如串行调用,并行调用等。 MachineProfile中重要的字段包括:host, userName,hostAliases,directory。hostAliases是 主机名的别名,这是为并行调用时VisIt能够自 动解析主机的名字。directory字段设置VisIt的路 径。LaunchProfile的重要字段包括:parallel: 为bool值,设为true时,用MPI启动engine_par; numProcessors:为int值,设置并行启动MPI进程数; launchMethodSet,launchMethod:可以用于设置提 交batch作业的命令;timeLimit:batch作业的时间上 限。
图2 VisIt基本架构
2. 并行可视化软件ParaView和VisIt的部署
2.1 ParaView和Visit的安装 ParaView和VisIt都是开源的可视化软件,基于 Qt,VTK,Cmake等第三方开源软件库,因此在安装 ParaView前需要安装一系列辅助软件。ParaView的最 新版本4.2必需的第三方库包括: Cmake v2.8.8或者更高版本,用于ParaView的 配置和编译; Qt v4.8.*,用于用户界面的生产,如果只需 要pvserver,则可略去; Mesa 3D:当在没有硬件支持OpenGL的平台 上运行ParaView服务器时,MESA 3D可以用来模拟这 种硬件支持。 用于输出avi动画的ffmpeg库。 编译并行版本需要MPI库,支持命令行脚本需要 Python(版本2.7以上),安装ParaView前,需要安装 上面提到的第三方库。 VisIt的最新版本2.8.1需要的第三方库包括: Cmake,Qt,VTK,Silo。VisIt提供了第三方库的 集合以供下载。VisIt的下载、编译安装通过build_ visit[version].sh进行,其中方括号内是相对应的 VisIt版本号。所需的第三方库与该shell脚本在同一 个目录里,运行”build_visit[version].sh -prefix path/ install/visit -required --parallel”,这里silo选项打开 能够是VisIt支持silo数据库格式,如果需要支持其他
目前ParaView的最新版本为4.2。ParaView推出了对 浏览器的支持ParaViewWeb以及对掌上设备的支持 KiwiViewer。Sandia国家实验室针对ParaView做了如 下性能测试:六十亿结构化网格,2.5亿非规则网格 (2005);10亿AMR网格(2008);一兆网格进行 了可扩展性测试(2010)。 ParaView可视化包含三个基本的步骤:数据读 取,数据过滤和数据渲染。首先,可视化应用程序 ParaView读取数据;接着,根据分析需要选择若干 种过滤器filter来处理这些数据以获得具有某种特定 形式的子数据集数据特征;最后,在用户窗口界面 中,将这些数据特征以图形图像的方式渲染出来。 ParaView的基本架构见图1所示[6]。
ห้องสมุดไป่ตู้
54
《高性能计算发展与应用》 2014年第四期 总第四十九期
格式也可以打开,--prefix后是VisIt可执行文件安装 的路径。在安装过程中,推荐使用VisIt的SVN提供的 第三方软件。 2.2 ParaView服务的配置 通过客户端/服务端方式,链接ParaView数 据和渲染服务,需要进行ParaView服务的配置。 ParaView服务的配置有很多种方法,以下将做简单介 绍。 通过ssh链接远程服务器并启动ParaView服 务pvserver。链接ParaView服务时,需要手 工 启 动 p v s e r v e r 进 程 。 通 过 设 置 p v s c 文 件 的 < CommandStartup/>标签,设置ssh的用户名,远程服务 器的可执行文件的路径和名称。这里通过mpirun启动 4个MPI进程运行pvserver。 <Servers> <Server name="case6" resource="cs:// localhost:11111"> <CommandStartup> <Options> <Option name="SSH_USER" label="SSH Username" save="true"> <String default="someone" /> </Option> </Options> <Command exec=ssh delay="5"> <Arguments> <Argument value="-L11111:192.168.120.7:1 1111" /> <Argument value="192.168.120.7" /> <Argument value="-l" /> <Argument value="$SSH_USER$" /> <Argument value="mpirun -np 4 /opt/ParaView-bin /bin/pvserver" /> </Arguments> </Command> </CommandStartup> </Server> </Servers> 如果所需处理的文件规模较大,则在远程环 境中进行可视化处理能极大减少文件传输带来的 开销。获取大规模计算资源经常会用PBS,LSF, SLURM等作业调度系统。用户通常在本地台式机运 行ParaView客户端,并将得到的图形进行在本地进行 渲染和显示。 2.3 VisIt服务的配置
[7]
例如网格等)定义应用程序编程接口(API)。silo将 数据写入两种不同的底层文件结构:HDF5和PDB。 VisIt的模块化原型可以插入不同的数据库读入 组件(database reader),已经支持的数据格式有Star- CD的ccm输出文件,Cosmos++的cosmos格式输出文 件,天体模拟软件Gadget的输出文件,Fluent的cas文 件等,详细列表见[8]。
相关文档
最新文档