超级计算的飞速发展极大地推动了计算科学的进步,使得科学家们在进行物理仿真处理时可以得到前所未有的细节,此外,高端的计算机断层扫描(CT)系统、大规模的高能物理实验都可以产生庞大的数据。对TB乃至PB量级数据的分析和可视化已经成为现实的挑战。
大规模数据的可视化和绘制[3]主要是基于并行算法设计的技术,合理利用有限的计算资源,高效地处理和分析特定的数据集的特性。很多情况下,大规模数据可视化的技术通常会结合多分辨率表示等方法,以获得足够的互动性能。在面向大规模数据的并行可视化工作中,主要涉及四种基本技术:
- 数据流线化(Data Streaming)
- 任务并行化(Task Parallelism)
- 管道并行化(Pipeline Parallelism)
- 数据并行化(Data Parallelism)
数据流线化(Data Streaming)将大数据分为相互独立的子块后依次处理。在数据规模远大于计算资源时是主要的一类可视化手段。它能够处理任意大规模的数据,同时也可能提供更有效的缓存使用效率,并减少内存交换,但通常这类方法需要较长的处理时间,不能提供对数据的交互挖掘。离核渲染(Out-of-Core Rendering)是数据流线化的一种重要形式。任务并行化(Task Parallelism)是把多个独立的任务模块平行处理。这类方法要求将一个算法分解为多个独立的子任务,并需要相应的多重计算资源。其并行程度主要受限于算法的可分解粒度以及计算资源中节点的数目。管道并行化(Pipeline Parallelism)则是同时处理各自面向不同数据子块的多个独立的任务模块。以上任务并行化和管道并行化两类方法,如何达到负载的平衡是关键难点。数据并行化(Data Parallelism)是将数据分块后进行平行处理,通常称为单程序多数据流(SPMD)模式。这类方法能达到高度的平行化,并且在计算节点增加的时候可以达到较好的可扩展性。对于非常大规模的并行可视化,节点之间的通讯往往是制约因素。提高数据的本地性也可以大大提高效率。以上这些技术往往在实践中相互结合,从而构建一个更高效的解决方法。
可视化中图形的绘制是一个计算密集型的处理工作。在处理大规模数据时,使用可视化算法,以互动的速度来绘制图形已经超出了单一的CPU和GPU图形加速器的计算能力。数据并行绘制方法被普遍地用于提高可视化系统的交互速度。最普遍应用的并行绘制算法的分类是基于绘制流水线中图元排序的位置[4]。依据排序的先后,可以大致分为:首排序(Sort-first)、中排序(Sort-middle)和末排序(Sort-last)。
首排序(Sort-first)算法在绘制流水线的起点分配基本图元,通过分割输出图像区域,给每一个处理节点分配相应的区域。一旦这些基本图形分配完成后,每一个处理器会完成整个图形管线的处理而生成最终的子图像。先排序算法可以充分发挥每个节点图形硬件加速器的性能,处理器间的通讯要求低,从而能通过较低的开销获得更高的性能。先排序算法的主要缺点是工作量分配的不平衡问题。
中排序(Sort-middle)算法中,数据的分配发生在绘制流水线的几何处理和扫描转换阶段。绘制流水线的分裂是中排序方法的最大不足,在早期,它很难充分利用图形硬件加速器进行绘制。但随着可编程图形硬件加速器的发展,这部分问题可以得到部分解决。此外该方法也会有工作负载量不均衡的问题。
末排序(Sort-last)的方法把排序推迟到绘制流水线的最后阶段。基本图形的初始化分配是采用随机的方式,每一个处理器绘制其相应的最终图像。所有的这些子图最终复合成一个完整的图像。处理器间通过高速网络来满足交互绘制的需求。末排序可以完全利用整个图形处理器的渲染性能,并能较好均衡工作负载。其主要的缺点是在图像合成阶段,需要发送大量的数据。其中,二分交换合成法(Binary-Swap Compositing)[1]较好低利用了图像合成中有限的计算和通讯能力,是一种经典的方法。
近年来受到关注的一种针对模拟计算产生的超大规模数据的可视化模式被称为原位可视化(In Situ Visualization)[2]。它通过将模拟计算和可视化紧密结合,降低数据传输和存储的成本。如下图所示,通常的可视化模式将PB量级模拟产生的全部数据传递到存储设备,再经处理后用于可视化。数据传输是整个系统的瓶颈,I/O将占据绝大部分的计算时间。而在原位可视化模式中,数据直接在计算后原位被缩减与前处理,再用于随后的可视化与分析。经过缩减后的数据,通常比原始数据小多个数量级,能够极大地降低数据传递和存储的开支。
图2 (a) 传统可视化模式;(b)原位可视化模式 (基于[2])
我们需要注意到,图形硬件对于大规模数据可视化具有重要意义。最新的超级计算机大量地应用GPU作为计算单元。如何更好发掘最新的图形硬件潜力,提供更加灵活的大数据可视化和绘制的解决方法是具有重大意义的课题。除了科学计算数据外,我们也要关注信息可视化中大规模数据的涌现,研究此类工作的大规模分析处理方法将很快成为迫切的需求。
参考文献
- Kwan-Liu Ma, James S. Painter, Charles D. Hansen and Michael F. Krogh, “Parallel Volume Rendering Using Binary-Swap Compositing“. IEEE Computer Graphics and Applications, 14(4):59-68, 1994.
- Kwan-Liu Ma, “In Situ Visualization at Extreme Scale: Challenges and Opportunities“. IEEE Computer Graphics and Applications, 29(6):14-19, 2009.
- Patrick McCormick and James Ahrens, “Large-Scale Data Visualization and Rendering: A problem-driven Approach“. In The Visualization Handbook, Edited by C.D. Hansen and C.R. Johnson, Elsevier 2005.
- Steven Molnar, Michael Cox, David Ellsworth, Henry Fuchs, “A Sorting Classification of Parallel Rendering”. IEEE Computer Graphics and Applications, 14(4):23-32, 1994.
*注: 本文为所撰写《计算机百科全书》第三版条目,请勿转载。
评论关闭。