在大规模多元众核系统上进行的针对体绘制的混合并行 (Hybrid Parallelism for Volume Rendering on Large-, Multi-, and Many-Core Systems)

随着芯片上计算核数量的增长,许多HPC协会的人开始担心至今在单核的大规模并行系统上运行良好的并行编程语言,模型和执行框架会面临越来越小的收益。于是这篇文章探索了一种叫做光线投射体绘制的常用可视化算法在不同的并行编程模型上操作并且在六核CPU组成的大规模超级计算机和多核GPU集群上运行的性能和可扩展性。本文比较了一种传统的单纯基于消息传递的分布式内存操作和一种混合操作,这种混合操作混合了芯片之间的消息传递和CPU或GPU内部的共享内存并行。我们希望验证的是在混合内存操作中,在芯片内部使用共享内存并行可以增强性能和可扩展性。

figure6图1. 系统架构图解

系统的块层级架构如图1所示,初始的数据量S被分成n个并行的任务,每个任务读取S的1/n,在这个数据子区域上执行光线投射体绘制从而产生一系列图像片段,之后在图像合成阶段,图像互相交换并且结合成最终的图像。完成的图像被聚集到根任务上等待展示或者和存储进行I/O。

分布式内存和混合式内存操作在几个关键方面有不同,首先,在分布式内存任务中,光线投射体绘制算法是连续运行的,但是在混合式内存任务中是多线程运行的,其实,它们在图像合成阶段的通信方式也有一些不同,最后,数据分割给任务的方式有些不同,在分布式内存操作中,每个任务都是在解体的数据块上载入和操作的,而在混合式内存操作中,每个任务载入一个解体的数据块并且它的每个工作线程在那个数据块上用一种图像并行的分解方式来并行操作。

这篇文章的方法论主要是为了验证混合式内存操作存在着比分布式内存操作更优秀的性能和资源利用而设计的。用到的多核CPU检测系统JaguarPF是位于橡树岭国家实验室的超级计算机,最高理论性能达到了每秒2.3千万亿次浮点运算,系统有292TB的聚合内存大约每个核有1.3GB。众核GPU集群Longhorn位于德克萨斯高级计算中心,拥有256个主机节点和24GB内存。每个GPU有1.3GHz的时钟频率以及4GB的设备内存,可以同时执行30个CUDA线程块。我们主要从以下三个方面来研究,第一,强扩展性,对所有的并发级固定图像大小和数据集大小,第二,弱数据集扩展性,固定图像大小,但是数据集大小随着并发性增长,第三,弱扩展性,图像和数据集大小都增长。由于渲染时间是视点相关的,所以在10个不同的摄像位置执行每个光线投射相位10次,下面所报告的光线投射次数是所有位置的一个平均。在合成阶段,把合成实验限制在仅仅两个视图,也就是第一个和最后一个。

figure8表1. MPI初始阶段的内存使用情况

文章比较了MPI运行时期系统开销和对应的内存占用,如表1所示。数据块所需的绝对内存数量,如图2所示。光线投射和图像合成算法的可扩展性,由于没有涉及消息传递,在光线投射阶段所有的扩展性研究都表现出了很好的可扩展性,如图3所示。在合成阶段所需的通信资源,如图4所示。最后比较了六核CPU系统和众核GPU系统所得到的结果来分析共享内存和分布内存并行之间的平衡是如何影响整体性能的,如图5所示,可以看到在强扩展性时,混合式内存的优势会随着核的数量增长而变得越来越大,但是在弱数据集扩展性和弱扩展性时,混合式内存仍然比分布式内存占有优势,但是没有强扩展性那么明显,因为光线投射阶段占了主导地位。

figure9图2. 数据需求分析

figure10图3. 光线投射阶段和整体渲染时间的加速情况

figure10 figure11图4. 在合成阶段图像片段交换时发送的信息数量和总体数据

figure12图5. 分成光线投射和复合部件的渲染时间并在每个并发性级别归一化

这篇文章的研究结果表明对于光线投射体绘制来说,在由多核CPU和众核GPU组成的大规模超级计算机上,混合式并行可以比分布式内存获得更好的性能并使用更少的资源。主要的优势是减少了内存占用,MPI消耗和通信量。当将来每个CPU上的核数量变大从而每个核的内存大小和带宽减小的时候,这种优势很可能会更加明显。

[1] Mark Howison, E. Wes Bethel, Member, IEEE, and Hank Childs. (2012). Hybrid Parallelism for Volume Rendering on Large-, Multi-, and Many-Core Systems. Visualization and Computer Graphics, IEEE Transactions on, 18(1), 17-29.

评论关闭。