【IT168 专稿】随着研究人员探索的问题的复杂度逐步增加,对HPC的计算,带宽以及存储能力的要求也越来越高。问题规模的增加带来的结果就是HPC计算产生的数据呈爆炸式增长。传统的方法已不能探测信息中复杂的数据模型并对其进行细微的区别,而这却是假说信息(hypothesis formation)以及科学研究所不可或缺的。有趣的是,人的大脑具有不可思议的能力,当数据以可视化形式呈现时,大脑能够检测出其中的模式及相关差异。随着高分辨率显示进入商用而且分布式计算新技术的出现,使将显示聚合到显示矩阵中并区分图像渲染问题成为了可能,而采用这种方式显示图像的有效分辨率将大大增加。使用可视化技术对非常复杂的数据进行可视数据分析已经成为了现实,这为科学研究及工程设计开辟了新的途径。
数据可视化
视觉处理对我们如何理解天文现象以及周围的世界发挥了非常重要的作用。美国犹他州德克萨斯高级计算中心(UT/TACC)的Gaither博士强调了可视化在对数据进行深入了解时的重要性:“我们一直在使用某种可视化表示形式去理解周围的世界。我们使用的可视化技术已经发生了改变。之前我们使用钢笔和铅笔或者是木炭,现在我们使用数字表示法。当我们对数据进行分析时,可视化帮助我们处理多维数据。”人类视觉皮层的高度并行化以及眼睛及大脑在检测可视化模型及常态偏离时令人惊讶的能力在对数据进行分析及理解时的作用是无法估量的。利用机器模仿我们的视觉处理能力,再造视觉皮层即使并非不可能,但也非常困难。正如Gaither博士所说,“大脑皮层的百分之三十专门为视觉皮层服务。这就是我们如何处理,理解及分析信息的过程。”图1以复杂的分子形式举例说明了化学活性的可视化,该图显示了细节层次以及典型的科学可视化图像的复杂性。
▲图1.使用肌球蛋白对化学活性进行可视化展示
与之相反的是,分析HPC数据的传统方法通常基于统计及机器学习方法,并使用数据分析以及数据挖掘。路易斯维尔大学的Elmaghraby博士说:“这些方法没有考虑尽可能多的人类视角,由于这些局限性,用户的输入受到了制约。”
可视化,HPC与科学研究
在HPC中使用可视化已经成为科学研究的必备工具。可视化的使用跨越科学,工程研究以及设计等多个领域。例如, Wilgenbusch博士领导了位于佛罗里达州立大学(FSU)的一家实验室,该实验室进行天气物理学,分子动力学,地球,海洋以及大气模型方面的可视化研究。对他来说,可视化具有广泛的应用,其中之一就是分析大型时间维度内甚至是微型时间维度内的天文现象:“就气象模式而言,我们处理相当长的一段时间内发生的巨大的天文现象。为了欣赏这些天文现象,我们能使用可视化对事件进行加速,这样我们能够看到这些系统的进化过程。对分子动力学而言,我们基本上在做完全相反的事儿-对发生在一个非常小的物理空间内的一个非常快速的过程进行减速,这样我们能够开始欣赏发生的一切。”
图2显示了使用可视化对纽约曼哈顿的污染以及气流进行分析。插图显示帝国大厦周围气流的详细信息。
▲图2. 纽约曼哈顿的气流及污染物散布的可视化展示
HPC可视化存在的问题
将数据进行直观表示便构成了可视化。在本文中我们使用的HPC可视化(HPC visualization)这一术语指的是使用可视化对非常大的HPC数据进行分析。HPC可视化包括以下几个典型的阶段:(1)生成计算密集型数据;(2)对数据进行编码,减少传输用于可视化处理的数据对带宽的需求;(3)在非常大的显示设备上呈现数据,同时尽可能多的保留实际的空间分辨率,有效地增加总的图像分辨率;(4)从视觉上检查并分析可视化表示形式以检测模式以及感兴趣区域;(5)关注感兴趣区域更详细的计算并迭代这个过程。
正常情况下,计算在HPC计算集群中执行而且执行计算、创建用于检查的数据集可能花费数周或数月。处理集群中生成的HPC数据并将该数据发送到HPC可视化设备。计算和可视化组件之间的带宽需求可能非常大,需要采用相关技术对数据进行编码以降低高带宽的重要性。高分辨率图像同样也是带宽密集型的。图3显示了传统的整体架构。
▲图3. 可视化处理过程
两个方面会对上述通用架构的多种技术实现产生影响:(1)将单个图形流转变为多个图形流,这多个图形流能够发送到多个图形设备或者单个显示设备的多个屏幕区域。(2)缓存可视化数据并对其进行重新计算以允许在用于数据分析的可视化空间内漫游。第二种情况有些复杂,因为它可能需要提前渲染图形的计算部分,这样当用户移动进入这些区域时,系统能够立刻加载并渲染相应的可视化表示形式(visual representation)。
HPC存储与GPU计算
计算能力,高速存储以及带宽是所有HPC可视化解决方案的关键组件。既然HPC问题的规模与复杂性在急剧增加,那么就有必要处理,管理并存储科学可视化及分析所需要的大量数据。
HPC配置涉及三种存储:在线存储,用于存储日常的文件系统活动;使用高度并行的文件系统实现的高速暂时存储,在处理HPC问题时提供非常快速的文件I/O处理。归档存储用于长期保存中间及最终的结果集以便于快速引用及日后审计。虽然HPC存储早已成为可视化链条中用于计算的一个关键因素,但是直到最近存储与计算之间数据卷移动的增加,导致可视化集群需要存储为HPC解决方案提供计算及导航。并行文件系统能够达到这个目标并允许在容量及性能方面提供巨大的、接近线性的可扩展性。
计算能力同样发生了剧烈的变化。具有大量缓存的多核CPU的出现使真正的并行计算成为了可能。然而,在图形处理能力上的进步已经带来了最大的变化,具有最大的优势。在极限计算和高端计算比如逼真的视频游戏中需要高性能图形,而GPU已经用于生成这些高性能的图形。在科学研究中,GPU同样可以用来在用户的工作站生成分辨率非常高的图像。具有讽刺意味的是,GPU所具有的计算能力及并行性使其成为通用计算理想的候选方案。使用GPU你不仅可以生成质量非常高的图像,而且可以为传统的科学计算提供非常高的计算能力,这为GPU研究人员加速计算提供了一个全新的途径。GPU能够非常好的实现计算复杂性非常高的算法,这类算法每秒往往需要进行大量的浮点运算。GPU同样非常适合在大型算法及应用中加速小型内部循环。
在通用计算中使用GPU通常被称为GPU计算,在某些情况下也被称为混合计算,以反映CPU和GPU协作完成复杂的计算任务这一事实。HPC用户使用GPU计算用于图像渲染及分析。借助最新的技术进步,HPC用户能够使用GPU渲染并探究他们的实验数据。相对于仅仅使用传统处理器技术的传统方法,混合计算解决方案在性能上提升数个数量级。
总之,HPC存储及GPU计算在显著提高HPC的计算及可视化性能方面发挥了重要的作用。
HPC 可视化模型
高分辨率显示产品的出现已经给可视化带来了改变。虽然在几年之前高分辨率设备成本很高,但是在今天人们已经能买得起了。
接下来的问题是如何最好地将数据转化为图像。一种可能的方法是使用非常大的显示器,共享单个显示区域并使用时间并行,就像在电影中由不同的处理器生成不同的帧。帧的序列可以离线或在线生成,在线生成的情况下必须对生成的帧进行调整,确保显示在设备上的下一帧总能够按时可用。要达到这个效果需要有足够的计算能力提前对帧进行计算,保证显示设备从不处于等待状态。同时结合缓冲与每帧的边界计算能够达到平稳的帧速。图4更加详细地阐明了这个过程。
▲图4.在可视化中实现时间并行
HPC可视化基础设施图像端的最终目标是实现非常高的分辨率,非常大的显示。采用时间方法中使用的单个显示屏实现该目标存在诸多技术及成本的限制。因此当今的战略选择是利用不断增加的支付能力,高分辨率显示产品以及数据并行已经成为了。简单来讲就是不再使用非常大的显示器,而是使用一组高分辨率显示产品排列成一个矩形矩阵。
采用数据并行方法允许你增加显示区域,不用再担心非常大的单个显示器存在的局限性。但是该方法却引入了另一个挑战:以协调的方式管理显示流的生成。幸运的是,可视化计算节点及显示器的成本都很低。每个计算节点能够管理矩形矩阵中的多个显示,创建所谓的可视化墙(visualization wall)。这些计算节点被排列为高性能可视化集群(HPVC),在HPVC中,有一个集群控制器负责协调显示流,这样可视化墙就能够显示一幅清晰、连贯的图像。通过将源显示流分割为一组由集群控制器集中管理的并行流,就能够获得一幅分辨率非常高的图像。图像的有效分辨率指的是矩形显示矩阵的聚合分辨率,该分辨率要比单个显示的分辨率高很多。
通过提高分辨率,增加计算能力生成图像使以非常高的分辨率达到不可思议的可视化细节成为可能。正如美国犹他州德克萨斯高级计算中心(UT/TACC)的Gaither博士所说,“可视化墙是一个非常强大的工具,能够看到多维数据—也就是两个或多个事物之间的相互关系。”
图5显示了数据并行方法以及图像流渲染到可视化墙的方法之一。在图中每个集群节点显示它所控制的显示颜色,而且集群节点以及相关的显示通过相同的数字进行识别。
▲图5. 可视化中的数据并行
远程可视化
随着HPC集群生成的数据不断增加,从HPC存储或者计算集群迁移数据到可视化节点已经变得越来越困难,成本也在不断增加。对HPC用户来说,每天生成数GB数据集是很常见的。通过网络将数GB的数据集从计算节点传输到用户工作站的时间及资源成本是很高的。
尽管远程可视化本身并不是一个可视化模型,但是它被用来表示一种可视化架构,该架构允许用户远离可视化图形流生成的地理位置。在远程可视化情境中,使用共享的可视化资源对数据进行处理及可视化渲染,而且图形渲染被发送给远程用户,远程用户能够看到该图形并使用键盘和鼠标与其进行交互。
标准的可视化墙解决方案更多地从远程可视化中受益。使用远程可视化,可视化墙能够同时被本地及远程用户操作,而且能够在远程观看显示。这使不同地区的团队进行合作成为可能,为对HPC数据集进行远程分析以及可视化协同开启了一条新路。